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