CS117 (Introduction to Computer Science)
Spring 2006, Carleton College


[Jump to current week]

Basic information:

Announcements:

Overly Ambitious Estimated Approximate Rough Tentative Schedule (subject to change):

Course Materials:

Week 0 (Big Bang through 26 March 2006):
There is a form for office-hours scheduling available. Please fill it out by Wednesday, 22 March 2006, and I'll schedule office hours on Thursday or Friday. (Be sure to include your email address!)
Office hours are now scheduled: M 2:00–3:00p, T 2:30p–4:00p, and F 12:00–1:00p.
Week 1 (27 March through 2 April 2006):
Class is cancelled on Friday for the campus-wide Katrina event. There will be a make-up lab assigned over the weekend, due late on Sunday night.
The survey distributed in class on Monday is due at the beginning of class on Wednesday. If you would like to opt out of being assigned a partner for pair-programming assignments, please send me email by 7:00p Monday night.
Complete Lab 1, on Linux and the CMC computing labs, before class on Wednesday. (It's an individual assignment.)
Code from classes is available in /Accounts/courses/cs117/dlibenno/ on the mathcs machines.
As of 29 March 2006, class will meet in CMC 210.
Partnerships for the first block of assignments were sent out by email in the afternoon of Wednesday, 29 March 2006.
Lab 2, on some simple Java, is due on Sunday, 2 April 2006, at 11:59p. It's a pair assignment, which means that the two of you should both be present and actively working on the assignment for the entire time. Try to split up the typing about 50/50.
Week 2 (3 April 2006 through 9 April 2006):
Lab 3, on using classes and drawing pretty pictures, started in class on Monday, 3 April 2006, is due on Tuesday, 4 April 2006 Thursday, 6 April 2006, at 11:59p.
Paul's prefecting sessions will be held every week on Thursdays and Sundays from 9:00p to 11:00p in CMC 306.
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.
Bug fix! Some of your classmates uncovered a subtle problem related to one of the, er, simplications through omission that I've perpetrated on you thus far in the course. To make things work properly, I've made a very minor change to Canvas.java. You should redownload Canvas.java for Lab 3. (The updated version was posted on Wednesday, 5 April 2006, at 4:28p. The new version is version 1.7.1—look at the top of Canvas.java.) The only change is that the method that was called wait() in the old version is now called pause(), so if you haven't used wait(), nothing about your code should change. If you did use wait(), just change the name to pause() and you'll be all set. As always, please get in touch if you have any questions!
Please complete a peer evaluation for Labs 2 and 3 by Sunday, 9 April 2006, at 5:00p.
Week 3 (10 April 2006 through 16 April 2006):
Problem Set 1, on making change, assigned in class on Friday, 7 April 2006, is due on Tuesday, 11 April 2006, at 11:59p.
Your book may have an error regarding how to create Scanner objects in Java. This webpage describes the error and the correction. There are a handful of copies of the book left in the bookstore; if you want to exchange your buggy book for a newer version (first come, first served), you can drop by there and ask. (There should be an erratum sheet just inside the front cover if your copy of the book has this error.)
As the first exam gets closer, some people have been asking for some extra exercises to help practice with course material. Here are a few that I particularly recommend: Programming Projects 2.6 and 2.7 (p. 109), all the Chapter 3 Self-Review Questions (p. 152), and Programming Project 3.1 (p. 153). I'll try to post more recommended exercises as we go.
I will be shuffling partnerships on Wednesday/Thursday of this week. If you would like to opt out of having a partnership, or opt in to having one, 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 Wednesday, 12 April 2006, at 5:00p, if you'd like to change your partnership status from the first cycle.
Problem Set 2, on reversing the curse, was distributed in class on Wednesday, 12 April 2006, and is due by Thursday, 13 April 2006, at 11:59p. It's an individual assignment. If you lost the hard copy of the assignment, there's a pdf saved in /Accounts/courses/cs117/dlibenno/ps2/. You can view it by typing "acroread ps2.pdf" in that directory.
Please complete a peer evaluation for Problem Set 1 by Friday, 14 April 2006, at 5:00p.
Partnerships for the second block of assignments were sent out by email in the afternoon of Thursday, 13 April 2006.
Complete Lab 4, on writing classes, by Sunday, 16 April 2006, at 11:59p. (It's a pair assignment, to be done in your new group. If you missed class on Friday, you should complete the lab on your own.)
Week 4 (17 April 2006 through 23 April 2006):
Prefecting schedule change for this week: there will be a session Tuesday night at 9:30p instead of the normal Thursday session. Instead of the session on Sunday 23 April, there will be an additional session next Tuesday.
Some more good practice problems to try: Exercise 4.1 and Programming Projects 4.4, 4.5, and 4.6 (pp. 195–196); Programming Projects 5.1, 5.2, 5.7, 5.13 (pp. 279–281).
PS3, distributed in class on 19 April 2006, is due on Sunday, 23 April 2006, at 11:59p. Here is documentation for the EzText class. You can find the code for the assignment, as well as a pdf version of the assignment, in /Accounts/courses/cs117/dlibenno/ps3/.
Update (21 April 2006, 12:33p): I've made a minor change to EzText.java to prevent any problems associated with empty words, which might cause problems with some of your methods for PS3. (Some empty words occur in the Shakespearean EzText.) You should recopy EzText.java from the aforementioned directory.
You may find the Java documentation handy.
Week 5 (24 April 2006 through 30 April 2006):
Prefecting schedule for this week: instead of the session on Sunday 23 April, there will be a session Tuesday night at 9:30p.
Review session: there will be a review session for the midterm in CMC 210 starting at 8:15p on Monday night. We'll stay until either of the following happens: the clock strikes 9:30p or you run out questions to ask. So bring a list of things that are puzzling!
The first midterm exam is scheduled for Wednesday of this week.
Week 6 (1 May 2006 through 7 May 2006):
Midterm break is on Monday—enjoy!
The usual Sunday prefecting session has been rescheduled for Tuesday (so it's not during midterm break).
PS4, assigned in class on 28 April 2006, is due in two parts on Thursday, 4 May 2006, and Sunday, 7 May 2006. Here is documentation for the EzImage class. You can find the code for the assignment, as well as a pdf version of the assignment, in /Accounts/courses/cs117/dlibenno/ps4/.
Week 7 (8 May 2006 through 14 May 2006):
Please complete a peer evaluation for your second partnership by Tuesday, 9 May 2006, at 5:00p.
I will be shuffling partnerships on Wednesday/Thursday of this week. Please email me by Wednesday, 10 May 2006, at 5:00p, if you'd like to change your partnership status from the second cycle.
Problem Set 5, on dithering and blurring, was distributed in class on Monday, 8 May 2006, and is due by Thursday, 11 May 2006, at 11:59p. It's an individual assignment. Here is documentation for the EzImage class.
UPDATE! You are only required to submit only one of blur() and dither(), plus a paragraph description of how you would attack the other method. If you submit completed versions of both, you'll get appropriate extra credit.
Partnerships for the third block of assignments were sent out by email in the evening of Thursday, 12 May 2006.
Lab 5, on binary search, is due on Mother's Day (Sunday, 14 May 2006), at 11:59p. It's to be done in your newly assigned partnership.
Week 8 (15 May 2006 through 21 May 2006):
Problem Set 6, on scratch removal and median filtering, was distributed in class on Monday, 15 May 2006, and is due by Sunday, 21 May 2006, at 11:59p.
The final project was distributed on Monday, 15 May 2006. Contact me if you'd like to discuss your game plan (so to speak).
Week 9 (22 May 2006 through 28 May 2006):
Lab 6, on the differences between int and Integer, was assigned in class on Monday, 22 May 2006. It's due on Tuesday, 23 May 2006, at 11:59p.
PS 7, on recursion, was assigned in class on Wednesday, 24 May 2006 (sneak preview in selected cities on Monday, 22 May 2006). It's due on Sunday, 28 May 2006, at 11:59p. It's short! Get it out of the way early.
Week 10 (29 May 2006 through 31 May 2006):
Review session: there will be a review session for the midterm in CMC 210 starting at 7:00p on Monday night. We'll stay until either of the following happens: the clock strikes 8:30p or you run out questions to ask. So bring a list of things that are puzzling!
The second midterm exam is Wednesday. I'll show up at 8:00a so that you can start early if you want to avoid feeling crunched for time. The exam is designed to be completed in a normal class period; you are under no obligation to show up early if you prefer not to wake up early.
Please complete a peer evaluation for your last partner by Tuesday, 30 May 2006, at 5:00p.
Some more good practice problems from the book: Self-Review Questions 6.6–6.8, Exercises 6.1–6.5, 6.10, 6.11, and Programming Project 6.5; Self-Review Questions 7.1–7.9, Exercises 7.3–7.5, and Programming Projects 7.1–7.3; Self-Review Questions 8.1–8.6, Programming Projects 8.1 and 8.2; Programming Project 9.1, code binary search, sequential search, insertion sort, selection sort, bubble sort, and merge sort from scratch; Self-Review Questions 11.1–11.5, Exercises 11.2 and 11.3, Programming Project 11.2; Exercises 12.1 and 12.3, Programming Projects 12.3 and 12.4. (There are some questions from Chapters 2 through 5 listed in Week 3 and Week 4 above.)
Finals Period (1 June 2006 through 5 June 2006):
I'll be around the CMC Thursday afternoon (ballpark 1:00p to 3:00p).
Final projects are due on the last day of finals, Monday, 5 June 2006, at 5:00p. But I'm going to be totally swamped with getting grades done for the senior-grade deadline, so to give myself a little extra time, I'll treat you to dinner during our finals slot on Sunday, 4 June 2006, if you've handed in your project by then.