Week 1

Introduction to Unix, and a little Python.

Making introductions.
Due 9:40AM Friday, 1/6.
Getting to know Unix.
Do this by class on Friday, 1/6. There's nothing to hand in.
Counting lines in a file.
Due 11:59PM Monday, 1/9.
Reading: Please read the course information page.
Do this as soon as possible. I will assume you have done so.
Reading: Enbody & Punch, Chapters 0 and 1
For best results, read these chapters by Friday, 1/7.

Week 2

More introductory Python, including functions, conditionals, and loops.

A lab about miscellaneous Python stuff
In class Monday, January 9. But you can do it on your own if you missed class. Nothing to hand in.
A first small program from scratch: making change
Due by 11:59PM Wednesday, January 11.
Read sections 2.1-2.2 (if statements and loops), 5.1-5.3 (functions), and 6.1-6.2 (lists).
As soon as possible.
A Caesar Cipher function.
Due 11:59PM Tuesday, January 17.

Week 3

More Python fundamentals. including functions, conditionals, and loops.

Read sections 4.1-4.5 (strings).
As needed, but no later than Friday.
A lab about miscellaneous Python stuff
In class Friday, January 20. You can do it on your own if you miss class.
Combine the ideas in loops.py and menu.py to create a better menu-driven program.
Due 11:59PM Tuesday, January 24.

Week 4

More Python. Data representation.

Data representation exercises.
Due on paper 9:50AM Monday, 1/30. brief notes on hexadecimal numbers may be helpful for a couple of these questions. Also, Wikipedia has some very long and detailed pages that have good information: binary numbers, two's complement integer representation, ASCII, and Unicode. The two's complement discussion is in considerable depth--you might want to focus on the subsections entitled "Calculating two's complement" and "Addition."

Week 5

Exam. Start graphics.

Read Chapters 11 (intro to classes and objects) and 12 (more on classes and objects).
Start soon, but definitely by Friday, February 10.
A lab on graphics, plus some homework (drawing a face).
In class, Friday, February 3.
Write a program to draw a face.
Hand in as face.py by 9:50 Wednesday, February 8.

Week 6

Objects, classes, and Python modules.

A graphical prairie, with mountains and buffalo.
Due 11:59PM Tuesday, 2/14.
Have you read Read Chapters 11 and 12 yet?
You should.
Read Chapter 16 on recursion, especially 16.1-4.
There will be a recursion assignment after the prairie assignment.

Week 7

Classes, recursion.

A lab on debuggers and recursion.
In class, Wednesday, February 15.
Drawing a fractal square.
Due 11:59PM Monday, 2/20.

Week 8

Image processing. Algorithm analysis.

Some image processing.
Due 5:00PM Friday, 2/24.
Image processing extra credit, should you care to give it a try.
Due 5:00PM Friday, 2/24.

Week 9

Algorithm analysis. Takehome exam. Other neat stuff.

Take-home exam
Due on paper (plus some code handed in as usual) 9:40AM, Friday, March 2.
Final project.
Description due 11:59PM Monday, 3/5. Code and documentation due 5:00PM Wednesday, March 14.

Week 10

Running time data collection. Wrapping things up.

A lab about sorting running times
In class Monday, March 5.