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.