This paper presents a philosophy underlying CS-1 programming projects, and illustrates this philosophy with a concrete example. Integral to the philosophy is the use of Ada packages (or Modula-2 modules, or Pascal units) and the stepwise-enhancement programming method. The example project specifies a simple program that controls a simulated cardioverter-defibrillator; the first appendix shows a program that meets these specifications. The packages and programs in this paper are written in Ada (the programming language that we use at the University of Washington in our introductory programming courses), but they could be easily transliterated into any language that included the package/module/unit feature. 1 Project Philosophy In the beginning of a programming course, students must learn the syntax and semantics of a programming language; they must also learn how to build programs, given their specifications, using the language features studied. Programming projects ensure that, studen...
Richard E. Pattis