Week 1

Python, and our first project.

Reading: Chapters 7 (High-Quality Routines) and 22 (Developer Testing) from Code Complete, 2nd edition by Steve McConnell.
Be ready to discuss in class on Monday, April 2.
A web server log summarizer program, written in Python.
Submit to your Courses/cs204-s12-00/Hand-in/yourname directory by 9:40 AM Friday, March 30.

Week 2

Getting started on a web application.

The first phase of a database-driven web application.
Submit your PDF file to your Courses hand-in directory by 9:50 AM Wednesday, April 4.
The second phase of your web application.
Submit as described in the assignment by 9:50 AM Monday, April 9.

Week 3

Debugging, testing, and MySQL in the context of your web application.

The first code review.
Exchange URLs on April 9 in class. The code review sessions will be in class on Wednesday, April 11.
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.
The third phase of your web application.
Hand in by 11:59PM Monday, April 16.

Week 4

Finish web app. Style, assertions, other miscellanea.

Finish your web application.
Hand in by 5:00PM Friday, April 20.
Reading: Chapter 8 (Defensive Programming) and Section 32.3 (The Commento) from Code Complete, 2e.
Be ready to discuss in class on Wednesday, April 18.

Week 5

Hodgepodge week: encoding, XML, REST, make, etc.

Reading: learn what you can about UTF-8, UTF-16, ISO 8859-1, and Python facilities for manipulating them.
Wikipedia is a good place to start, but there's lots more out there.
Reading: learn what you can about REST (Representational State Transfer).
We'll discuss this in class on Monday, April 23. The Wikipedia article isn't great, so see if you can find something else containing a clear, brief summary.
Reading: take a look at Python's xml.dom.minidom module.
We'll work with the minidom in lab on Wednesday.
Two programs: encoding and XML.
Hand in via Courses Hand-in by 5:00PM Friday, April 27.
encoding.py, xmltraverse.py, and animals.xml.
You might find these samples handy (including a very small XML file for use when testing xmltraverse.py).
class notes from 4/23
I'll try to keep posting these...

Week 6

Midterm break. Design patterns. Getting started with the Java API.

Reading: Chapters 1 and 2 of Head First Design Patterns.
There are lots of design patterns. We'll spend some time talking about a few important ones: observer, singleton, abstract factory, model-view-controller.
Sprite-based animation in Java
Hand in via Courses by 5:00PM Monday, May 7.
Get a copy of Eclipse IDE for Java Developers.
Install it and try using it to create and debug a Java program. We'll discuss it in class.

Week 7

More design patterns. Unit testing. A visitor.

Code review and revision: DELAYED UNTIL NEXT WEEK
More later...
Reading: Chapters 4, 5, and 12 of Head First Design Patterns.
Read by class time Wednesday, May 9. In Chapter 12, focus on Model-View-Controller.
Unit tests with unittest/PyUnit
Hand in via Courses by 9:50AM Monday, May 14.

Week 8

MVC. Getting started on UI design. Code reviews

Reading: "Don't Make Me Think" by Steve Krug. Read the "Read me first" section, and Chapters 1-6, 9, and 10. (It's an awfully short book and an easy read, though, so you might just read the whole thing if you find it interesting.)
1-6 by Wednesday, May 16. The rest by Monday, May 21.
A code review and a revision
Hand-in and due dates listed in the assignment itself. (UPDATE: revision now due Monday, May 28, not Friday, May 25. But sooner is probably better in any case.)
Final project
Due dates described in the assignment. Final code due 5:00PM Monday, June 4.

Week 9

Projects. Introduction to CSS/Javascript/AJAX

Some simple samples of CSS, Javascript, and AJAX.
Demonstrated in class May 23.

Week 10

Wrapping up

An example for setting and using cookies in server-side Python scripts. Here's the source code and here's the executable version to test.
Use as you see fit.
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 quick read.