CS 5010 F '09
Drill Club


When does it all start? Lectures (5010) start on Monday, 14 September 2009 @ 6pm (Shilman 105, Felleisen) and Tuesday, 15 September 2009 @ 6pm (Richards 458, Wand), respectively. The first (joint) lab session will be held on Thursday 17 Sept./Friday, 19 Sept. 2008. Rooms for the lab sessions will be announced.
What is the best preparation for this course? (1) Read part I of How to Design Programs, write down questions in the margin, and place stickies there.
What is the best preparation for this course? (2) Go get a CCIS account for using the Windows, Mac, and Unix computers in the College. These accounts are distinct from those that Northeastern University assigns to you. To obtain the CCIS account, go to the systems department on the third floor of WVH, read the instructions posted next to the door, an fill out a form.

The following link is helpful with this task:

CCIS Systems Welcome

What is the best preparation for this course? (3) 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. The second one is How to Design Classes. It is available at the Northeastern Reproduction as a bound manuscript; you may need to ask for the text for CS U 213.
Why can't I see the solutions? The on-line version of HtDP contains links to the solutions of the exercises. These solutions are password protected so that teachers at other institutions can reuse them. Also, many of the exercises are assigned as "warm up" exercises for the weekly homework sets. In order to participate in the weekly help sessions you must show attempts to solve those exercises. Copying the solutions from the web would defeat the point.
What can I do to get out of taking this course? Northeastern has created this course to equip all MS students with at least the minimal program design knowledge that the graduates of our BS program have. Based on experiences with past generations of MS students and based on recent feedback from co-op companies, we expect that this new course is closer to what MS students bring along and that it prepares MS students better for an internship than the old PPL course.

Exceptionally experienced students may discuss their personal situation with the instructor after the first lecture.

What is pair programming? Pair programming means that you and your partner work on the problem sets jointly. You read them together and you work on the solutions together. One of the lab's purposes is to teach you how to work in pairs effectively; indeed, pairs are provably more effective than individuals in programming. The rough idea is this: One of you plays pilot, the other co-pilot--looks. The pilot works on the keyboard and explains aloud what is going on; it is the co-pilot's responsibility to question everything. After a problem is solved to the satisfaction of both, you must switch roles.

last updated on Wed Dec 2 12:06:07 EST 2009generated with PLT Scheme