CS111 (Introduction to Computer Science)
Spring 2008, Carleton College


[Jump to current week]

Basic information:

Course Materials:

Week 0:
There is an anonymous feedback form available for any comments that you have about the course. If you have any suggestions or comments on the class (style, content, workload, etc.), please feel free to use this form to let me know.
The CS department has an email newsletter, the Carleton Sentinel, that we use for occasional updates on things that might be of interest. Sign up here!
There is a form for office-hours scheduling available. Please fill it out by the Thursday before the first day of classes and I'll schedule office hours soon thereafter. (Be sure to include your email address!)
Week 1: course overview; intro to CS
Part I of PS1, on some general logistical stuff and some familiarization with the tools we'll use in the course, is due on Wednesday. Be sure the bring back the background survey on Wednesday. You should complete this lab to introduce you to the Linux and the CS computing environment by Wednesday, too.
Part II of PS1, on Romeo and Juliet, is due on Friday.
Read this description of pair programming and its benefits, and this description of how to deal with partners who aren't pulling their weight. Always remember that you have my permission to split up with your assigned partner if the team isn't working out.
Prefecting sessions have been scheduled. They'll be on Thursdays and Sundays, both 8:00–9:00p in CMC 210.
Part I of PS2, on some simple Python and figuring out who you can date, is due on Sunday, 6 April 2008.
Week 2: expressions and computation
Part II of PS2, on making change, is due on Tuesday, 8 April 2008. (There was a typo that said Thursday, 8 April 2008, on the handout—sorry!)
PS3, on writing out numbers, is due on Thursday, 8 April 2008 Sunday, 13 April 2008.
Week 3: functions, loops, lists
Part I of PS4, on LiveJournal, is due on Wednesday, 16 April 2008.
Part II of PS4 is due on Thursday, 17 April 2008.
If you're looking for python documentation, you can take a look at docs.python.org.
Week 4: loops, lists, functions
Peer evaluations for PS4 are due on Sunday, 20 April 2008.
I will be shuffling partnerships early next week. If you would like to opt out of having a partner, please let me know. Also, if you're neutral about having a partner, please let me know that as well. Having a few people who don't care either way is helpful in dealing with odd numbers. Please email me by Sunday, 20 April 2008, if you are either opting out or neutral; if I haven't heard from you, I'll assume that you want a partner.
Part I of PS5, on Scrabble, is due on Sunday, 20 April 2008.
Part II of PS5 is due on Monday, 21 April 2008.
The first midterm will be held on Wednesday, 23 April 2008. Any material that we've discussed in the class is fair game, which means anything in class through Monday, 21 April; problem sets 1–5, and Chapters 1–4 and 6–8 (except for a few isolated sections). I've gotten a request to pull together some exercises from the book that would be good practice for the exam. Here are some that I've identified. Certainly don't feel like you have to do all of them, but these are good ones to try.
ChapterDiscussionProgramming Exercises
248,9
31,43,4,5,11,15
41,2,3(a-d)3,5,10,15
61,3,4,51,4,7,12
721,5,9,13
832,8,9,11
The utterly optional part III of PS5 is due on Thursday, 24 April 2008.
The documentation for the graphics class is here.
Week 5: classes and objects
PS6, on some practice with graphics, faces, and objects, is due on Monday, 28 April 2008.
Part I of PS7, on cities, classes, and objects, is due on Sunday, 4 May 2008.
My office hours on Wednesday, 30 April, are rescheduled. They will be held 3:30–5:00p.
Week 6: midterm break; more on loops and object-oriented design
Part II of PS7 is due on Tuesday, 6 May 2008.
Part I of PS8, on image processing, is due on Friday, 9 May 2008, before class.
The documentation for images.py can be found here.
If you're working on your home computer, you'll also need to install the Python Imaging Library (PIL), which images.py uses. Follow these instructions for installing PIL under Windows XP or Mac OS X. We already have PIL installed on the department Linux machines.
Week 7: midterm #2, applications of CS to recommender systems
Instead of my usual office hours on Tuesday, 13 May 2008, I'll have office hours from 3:00p to 4:00p on Monday, 12 May 2008, and from 9:45a to 10:45a on Tuesday, 13 May 2008.
The second midterm will be held on Wednesday, 14 May 2008. Any material that we've discussed in the class, that you've read, or that has been on the assignments is fair game, though you can expect a heavier emphasis on more recent material. I will try to pull together some practice problems over the weekend.
Part II of PS8 is due on Monday, 12 May 2008, before class.
Peer evaluations for the second block of partnerships are due by Friday, 16 May 2008.
Week 8: recursion, seaching and complexity, and sorting
Part I of PS9, on some more image processing, is due on Wednesday, 21 May 2008, before class.
Part II of PS9 is due on Friday, 23 May 2008, before class.
Week 9: sorting, recursion
Part I of PS10, on recursion, is due on Wednesday, 28 May 2008, before class.
Part II of PS10, on fractals, is due on Friday, 30 May 2008 Monday, 2 June 2008, before class.
Because of Ron Rivest's visit to Carleton this week, both my office hours and Elizabeth's prefect sessions will be shuffled around. Keep an eye on your email for updates, and, as always, feel free to contact me if you have questions or if you want to make an appointment. Please include times that you are free if you're requesting an appointment.
Week 10: assorted applications and wrapup; midterm #3
Finals Period:
Final projects are due on the last day of finals, 9 June 2008.