16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Tradeoffs: This is an area where there are numerous tradeoffs, including:<br />

• The use of “safer” or more managed languages and environments can help scaffold<br />

students’ learning. But, such languages may provide a level of abstraction that obscures<br />

an understanding of actual machine execution and makes is difficult to evaluate<br />

performance trade-offs. The decision as to whether to use a “lower-level” language to<br />

promote a particular mental model of program execution that is closer to the actual<br />

execution by the machine is often a matter of local audience needs.<br />

• The use of a language or environment designed for introductory pedagogy can facilitate<br />

student learning, but may be of limited use beyond CS1. Conversely, a language or<br />

environment commonly used professionally may expose students to too much complexity<br />

too soon.<br />

Software Development Practices<br />

While programming is the means by which software is constructed, an introductory course may<br />

choose to present additional practices in software development to different extents. For example,<br />

the use of software development best practices, such as unit testing, version control systems,<br />

industrial integrated development environments (IDEs), and programming patterns may be<br />

stressed to different extents in different introductory courses. The inclusion of such software<br />

development practices can help students gain an early appreciation of some of the challenges in<br />

developing real software projects. On the other hand, while all computer scientists should have<br />

solid software development skills, those skills need not always be the primary focus of the first<br />

introductory programming course, especially if the intended audience is not just computer<br />

science majors. Care should be taken in introductory courses to balance the use of software<br />

development best practices from the outset with making introductory courses accessible to a<br />

broad population.<br />

Tradeoffs: The inclusion of software development practices in introductory courses can help<br />

students develop important aspects of real-world software development early on. The extent to<br />

which such practices are included in introductory courses may impact and be impacted by the<br />

target audience for the course, and the choice of programming language and development<br />

environment.<br />

- 43 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!