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.
|