Week 1

Unix and Python.

Don't know Python?
For a brief introduction, try working through my Python examples. For a more thorough introduction, most people love Dive Into Python, by Mark Pilgrim. In any case, set aside a few hours to get familiar with the basic structures of Python (especially variables, loops, conditionals, functions, classes, lists, and dictionaries). Do this by Wednesday, January 9. Nothing to hand in, but do bring me questions.
Unix scavenger hunt
Due on paper, 9:50 AM Wednesday, January 9.
Reading: McConnell, Chapters 5-7.
Chapter 7 by Wednesday, January 9. Chapters 5 and 6 by Monday, January 14.

Week 2

Command-line and functional interfaces

An e-mailbox summarizer
Due 9:50 AM Monday, January 21.
I bet you haven't read last week's reading assignment yet...Reading: McConnell, Chapters 5-7.
Chapter 7 by Monday, January 14. Chapters 5 and 6 by Wednesday, January 16.

Week 3

Tools, style, etc.

Reading: McConnell, Section 32.3, Chapter 11, and Chapter 8.
By Wednesday, January 23.
Lab exercises on make and subversion.
By Friday, January 25.

Week 4

Code review, miscellaneous Python, assertions

Mailbox summarizer revision
Due 9:50 AM Wednesday, February 6.

Week 5

Testing, software development processes.

Reading: McConnell, Chapter 22.
By Friday, February 8.
An exercise in building test infrastructures.
Part 1 (the tester) due 9:50 AM Monday, February 11. Part 2 (the program being tested) due 9:50 AM Wednesday, February 13.

Weeks 6, 7

Use cases, intro to UML, intro to design patterns

Getting to know the eclipse IDE
In class, Wednesday, February 13.
Reading: Craig Larman's Use Cases, sections 6.1-6.8. (Want an opinion piece on use cases? This one by Alistair Cockburn is good.)
By Friday, February 15.
Reading: Read through an introductory tutorial on UML. Here's one I like pretty well, and this one's OK, too.
By Monday, February 18.
Use cases.
Due on paper by 9:50 AM Monday, February 18.
Reading: Freeman & Freeman, Chapters 1 & 2.
By Wednesday, February 20.
Reading: Freeman & Freeman, Chapter 4.
By Friday, February 22.

Week 8

Design patterns, user interface design.

Reading: Freeman & Freeman, Chapter 12 (espcially pages 526-564).
By Monday, February 25.
MVC with a simple M.
Due 5:00PM Friday, February 29.

Final Exam

The takehome exam
Due 5:00PM Saturday, March 15, 2008