Week 1

Introduction to Unix, and a little Python.

Making introductions.
Due by Wednesday, 4/1 (no fooling).
Getting to know Unix.
Do this by Wednesday, 4/1, but don't hand anything in.
Reading: Zelle, Chapters 1-3 and sections 4.1-4.5.
Read Chapters 1-2 and sections 4.1-5 by Friday, 4/3. Read Chapter 3 by Monday, 4/6. Zelle's book is best read while you have access to a Python interpreter, so you can experiment with the examples given in the book. Note that it will take some time to absorb the material in these chapters, so you should write down your main questions as you go, and ask me or Reid Gilman about them in class, prefect sessions, or office hours.
Writing and running a Python program.
Do this by Friday, 4/3, but don't hand anything in.
A lab about strings, plus some homework.
Hand in the homework by 11:59PM Wednesday, April 8.

Week 2

Loops, conditionals, functions.

A menu-driven program.
Due by 8:30AM Monday, 4/13.
Read chapters 6, 7, and 8.
By Monday.

Week 3

Objects, modules, and Zelle's graphics module.

Read chapter 5.
By Wednesday.
Lab: Playing With Graphics
Wednesday, 4/15, in CMC306. Faces due 5:00PM Friday, 4/17.

Week 4

Files, lists, etc.

Read sections 4.6 (files) and 11.1-4 (lists).
By Wednesday.
A spell-checker
Due 8:30AM Monday, 4/27.

Week 5

Midterm exam, starting on the City assignment.

Nothing new

Week 6

Object-oriented programming, data representation

Read the Wikipedia articles on ASCII, Unicode, and two's complement integers.
By Friday, May 8.
A graphical city
Due 8:30AM Monday, 5/11.

Week 7

Data representation, algorithms.

Read sections 13.1 and 13.3
By Monday, 5/18
Some binary arithmetic
Due on paper at 8:30AM, Friday, 5/15.

Week 8

Algorithms and their analysis. Image processing.

An image processing program.
Due 11:59PM Friday, May 22.

Weeks 9, 10, and finals

More algorithms, recursion, and misc.

Your takehome exam.
Due on paper 8:30AM Friday, May 29.
Your final project.
Due 5:00PM Monday, June 8.