Week 1

Python, and our first project.

Fred Brooks's essay The Tar Pit (available only from on campus--please don't post elsewhere).
This short essay is great all the way through, but I particularly love the section entitled "The Joys of the Craft." Worth a read.
Reading: High-Quality Routines and Developer Testing from Code Complete, 2nd edition by Steve McConnell.
Be ready to discuss in class on Friday, September 20.
A web crawler program, written in Python.
Submit to your Courses/cs257-f13-00/Hand-in/yourname directory by 11:59 PM Monday, September 23.

Week 2

Getting started on a web application.

The first code review.
Exchange e-mails (and, if possible, your code) during class on September 25. The code review sessions will be in class on Friday, September 27.
Revision of the web crawler
Note the changed due date (and see my e-mail to the class mailing list for an explanation). Hand in via your Courses folder by 8:30 AM Friday, October 4.
The first phase of a database-driven web application.
Submit your web-app-plan.pdf file to your Courses hand-in directory by 8:30 AM Wednesday, October 2.

Week 3

Getting started on the web application.

Some steps I took to build a simple database.
Try doing this with your own data before Friday, when we'll discuss database design in class.
Phase 2 of the web application.
Due 8:30AM Wednesday, Oct 9.

Week 4

More web app. SQL, CSS, and other miscellanea.

A more sophisticated sample web application
Check it out. Now with comments, functions, and everything.
Accessing PostgreSQL from Python
This is a quick demo as a little web application. Here's an even simpler command-line version
Phase 3 of the web application.
Due 5:00PM Friday, Oct 11.
Final phase of the web application.
Due 8:30AM Friday, Oct 18.

Week 5

Finish web app. Comments, assertions, Javascript, JSON, etc.

Reading: The Commento from Code Complete, 2nd edition by Steve McConnell.
Be ready to discuss in class on Monday, October 14.

Weeks 6, 7

Brief introductions to IDEs, version control, UML, and design patterns.

Phase 1 of the sprites-in-a-box project
Due 5:00PM Friday, Oct 25
Phase 2 of the sprites-in-a-box project
Due 11:59PM Monday, Oct 28
Phase 3 of the sprites-in-a-box project
Due 11:59PM Wednesday, Oct 30
Reading: Chapter 1 (Introduction) of Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
Be ready to really discuss in class on Wednesday, October 30. What is a design pattern? What are they for? Why would you want a catalog of them? What's confusing about this chapter? etc.
Reading: Chapter 2 (A Case Study) and the Strategy section of Chapter 5 (Behavioral Patterns) of Design Patterns.
Be ready to discuss in class on Monday, November 4.
Visitor: Matt Ginsberg
In class on Friday, November 1. You can read about him in the convo announcement, in the Carleton news, and in this CS Department announcement. I've asked him to say a few things about his experience as a software entrepreneur, but mostly, we'll try to just have a conversation. So bring your questions so he'll feel welcome.

Week 8

Design patterns, final project, testing

Phase 1 of the final project
Due via e-mail to jondich by 5:00PM Wednesday, November 6.
Design pattern examples
Due as designpatterns.pdf in your Courses Hand-in directory by 5:00PM Friday, November 8.
Phases 2 and 3 of the final project will assigned in the next couple days
Due next week.
PyUnit/unittest lab
In class Nov 6.

Week 9

UI design

Phase 2 of the final project
Due by 11:59PM Monday, Nov 11.
Reading: "Guiding Principles" from Don't Make Me Think, by Steve Krug.
I'll start talking about this in class on Nov 8. Read this section while preparing your mockups for Phase 2 of the project.
Threading lab
In class Nov 15.

Week 9

Wrapping up

Phase 3 of the final project
Due by 5:00PM Monday, Nov 25.