This paper describes the change in software design strategies used by novice programmers over the course of one semester by using verbal protocol analysis. Our participants were nine first-year undergraduate students (novices), and two experts. Overall, we observed that two types of strategy were used by the novice programmers. The most common strategy observed in our participants, at the beginning of the semester, was a UI-based strategy that focused on system components from the user's perspective. This strategy is often overly simplified with little operational and technical details. Another type of strategy used by novices later in the study was a functional-centered strategy in which novices incorporated programming concepts into their design. Novices who used the latter strategy were able to provide more operational detail than when the UI-based strategy was used. We also found that, due to lack of experience, the designs were still very preliminary. In addition, the novices also exhibited opportunistic design behavior more often than systematic behavior (i.e., a top-down or bottom-up strategy) during the semester. We argue that teaching programming knowledge and skills alone will not develop students' software design knowledge effectively.
|Original language||English (US)|
|Number of pages||13|
|Journal||International Journal of Engineering Education|
|State||Published - Jan 1 2018|
All Science Journal Classification (ASJC) codes