Week 1

Unix and Python.

Read, test, and play around with the programs available at my Python page.
Nothing to turn in. Bring questions to class on Wednesday, January 6.
Reading: The Tar Pit by Fred Brooks. Available via Moodle.
By ready to discuss in class on Wednesday, January 6.
Unix miscellany
Due on paper, 8:30 AM Friday, January 8.

Week 2

Functional and command-line interfaces. Style.

Readings: Functions from Clean Code by Robert C. Martin, and High-Quality Routines and The Commento from Code Complete by Steve McConnell,
Posted on Moodle. Read by Monday, January 11.
A Python warm-up
Hand in via Collab by 8:30AM Wednesday, January 13
Taking over the world with an RSS feed filter.
Due 8:30AM Wednesday, 20 January 2010. You may work with a partner. We will have code reviews for this assignment.

Week 3

Catch-up & code reviews.

Reading: Assert Yourself by Steve Maguire. Available via Moodle.
Read it soon.
Code reviews and RSS revision.
Reviews will be Thursday and Friday Jan 21-22. Revision due Wednesday, Jan 27.

Weeks 4 and 5

Testing & tools.

Test-driven development: test cases for Mancala.
Submit via e-mail to Jeff by 8:30AM Monday, February 1.
Test-driven development part 2: Mancala implementation.
Have ready to test by 8:30AM Friday, February 5.
Mancala lab.
Final program plus report due by the end of the day Sunday.

Weeks 6, 7

Object-oriented design

An animation with a class hierarchy of sprites.
New due date: 8:30AM Monday, February 22
Reading: Freeman and Freeman, Chapters 1 and 2.
Soon. We'll start discussing this on Monday.

Week 8

Design patterns and a visitor

Send me via e-mail at least two ideas for a final project.
End of the day Wednesday, Feb 24
A stock market viewer. This assignment has been cancelled.
Due date: 8:30AM Monday, March 1.
Reading: Freeman and Freeman, Chapters 4 (factories) and 12 (model-view-controller).
Soon. We'll discuss both in class Wednesday, and your assignment for March 1 is based on Chapter 12.

Week 9

User interface design. Use cases.

The final project
Description and interface diagrams due Monday, March 1 in class on paper. Final product due 5:00PM Monday, March 15.
Reading: Tidwell, Preface and Chapter 01.
We'll be talking about this on Monday, and go deeper into the book later next week.
Reading: Tidwell, Chapters 03 (navigation) and 05 (actions).
Of the programs you use, what has good navigation? Bad navigation? Where does the good/bad navigation experience come from? How could you replicate the good? (Same questions for actions.) Let's talk on Wednesday.