Providing meaningful programming assignments for students who are just learning how to write software is an important task. Problematic issues that arise include programs which are too small or too well-defined to be relevant to real-world software development, assignments which do not relate implementation to design in any significant way, assignments which ignore the importance and motivational aspects of team programming, and assignments which are simply not challenging or fun to write. Perhaps the most egregious error is assigning programs which do not require students to synthesize and reflect on earlier learning. Capstone projects are frequently used in other computer science courses for the purpose, but are not often cited in connection with CS1 courses. This paper documents a project given to a CS1 class which took the second half of the semester to complete and addressed most, if not all of the issues cited. In essence, the project was a small capstone project for beginning software developers. A discussion of the motivation, design, problems and successes experienced during the project are presented.
[1]
Carl Alphonce,et al.
Green: a pedagogically customizable round-tripping UML class diagram Eclipse plug-in
,
2005,
eclipse '05.
[2]
Tony Greening.
Students seen flocking in programming assignments
,
2000,
ITiCSE '00.
[3]
David Reed.
The use of ill-defined problems for developing problem-solving and empirical skills in CS1
,
2002
.
[4]
Charles E. McDowell,et al.
Program quality with pair programming in CS1
,
2004,
ITiCSE '04.
[5]
Laurie A. Williams,et al.
Improving the CS1 experience with pair programming
,
2003,
SIGCSE.
[6]
Daniel E. Stevenson,et al.
Developing real-world programming assignments for CS1
,
2006,
ITICSE '06.