G107 F '08
Texts

CS G 107: Program Design Paradigms

logo

CS G 107 is the mandatory introductory course for students in the MS program. The course has two distinct objectives. First, it will ensure that all MS students have the same background in designing programs. This encompasses the entire design cycle, from problem analysis to the development of test suites. Second, the course will also introduce students to programming as a people discipline. Students will work in pairs, present code to panels, sit on review panels, and learn to cope with an evolving code basis. The course will require a serious commitment to practical hands-on programming from the student.

The course comes with a lab course, called CS G 108. Students must register for both courses to receive credit.


What is the best preparation for this course? In short: learn to speak about technical issues in front of small and large groups of peers. Here is a slightly longer explanation, including a justification. Design is about thinking. When we think on our own without feedback for a long time, it is easy to make mistakes early, to overlook them for a long time, and to trust in all the decisions we have made from the very beginning. We therefore consider it imperative that you learn to articulate your thoughts about programs, that you are able to explain why you decided to use one strategy and not the other, that you can justify your actions on the spot. Only when people articulate their thoughts and decision making process can others help them recognize and correct mistakes.
What can I read to prepare myself? The course uses two text books. The first one is How to Design Programs, a book on design in a functional language context. Both text books are (or will be) available at the book store. The HtDP text is also on-line and includes numerous exercises. If you have time, start solving the exercises.

last updated on Wed Aug 20 11:03:14 EDT 2008generated with PLT Scheme