CS 111 (Intro to Computer Science)
Fall 2013, Carleton College


Basic Information

Course Materials:

Week 1:

Tuesday:  intro to CS and to CS 111.

  1. Reading:  Zelle §1.1–1.5 (post a comment/question by 12:01a Thursday; see ps01).
  2. More reading:  "the environment" section of the Hacker School User's Manual.
  3. Complete ps01 (on logistics and finding frequent words) by Thursday.

Thursday:  forum questions, more algorithms; pair programming; some simple Python.

  1. Do the reading (Zelle §1.6, §1.7, §2.1–2.5), and respond in the forum below.
  2. Complete ps02 (on Scrabble and making change) for Tuesday.
  3. Optionally, you may install Python (version 2.7) on your computer. (Or work in CMC 304/306/102! See lab assistant hours for times you can get help.)
Week 2:

Tuesday:  algorithms (3D word search & scrabble); simple Python; conditionals; ps03 walkthrough.

  1. Reading:  Zelle §3.1, §3.4, §3.6, §7.1–7.3 (and post a comment).
  2. Complete ps03 (on bike-sharing systems) for Thursday.

Thursday:  how computers work; control structures (conditionals); pop quiz!

  1. Reading:  Zelle §2.6, §3.3, §3.5, §4.1, §4.2, §4.4 (and post a comment).
  2. More reading:  the academic honesty policy, revised from your emails.
  3. Complete ps04 (on turning numbers into words) for Tuesday.
  4. Complete a peer evaluation for ps02 and ps03 before Tuesday.
Week 3:

Tuesday:  floats, strings, slicing strings (on Lake Chargoggagoggmanchauggagoggchaubunagungamaugg), lists, and loops.

  1. Reading:  Zelle §4.3, §4.6, §8.1–8.2 (and post a comment).
  2. Complete ps05 (on weather and energy) for Thursday.
  3. Complete a peer evaluation for ps04 before Tuesday.  (If there's no newsworthy difference between ps04 and the ps02/ps03 peer eval, you may skip this.)

Thursday:  loops, loops, loops.

  1. Reading for next Thursday:  Zelle §8.3, §6.1–6.2 (and post a comment).
  2. Complete ps06 (on encryption and decryption) for next Thursday, in your newly assigned partnership.
  3. Prelim #1 will be held on Tuesday, in class.  Any material that we've discussed in the class is fair game, including material in class, problem sets 1–5, and all assigned readings. 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 anything close to all of them, but these are good ones to try. From Zelle's first edition:
    Chapter Discussion Programming Exercises
    2 4 8,9
    3 1 (just say "int" or "float"),4 3,4,5,11,15
    4 1,2,3 3,5,10,15
    7 2 1,5,9,13
    8 3 2,8,9,11
Week 4:
Tuesday:  prelim #1!

Thursday:  loops and functions.

  1. Reading:  Zelle §6.4–6.6 (and post a comment).
  2. Complete ps07 (on the first play in Scrabble) before class on Tuesday.
  3. Complete a peer evaluation for ps06 before Tuesday.
Week 5:

Tuesday:  functions, formally (including parameters and return values); variable names; nested loops.

  1. Reading:  Zelle §8.4–8.5, and Arthur C. Clarke's "Nine Billion Names of God" (and post a comment).  Also review Zelle §8.3.
  2. Complete ps08 (on graphics and faces) before class on Thursday.

Thursday:  ending the world with loops (AAAAAAAAA -> ZZZZZZZZZ); classes, objects.

  1. Reading:  Zelle §10.1, §5.1–5.4 (and post a comment).
  2. Complete a peer evaluation for ps07 and ps08 by Tuesday.
  3. Complete ps09 (an individual assignment, on cityscapes) by Tuesday.
Week 6:

Tuesday:  examples of classes and objects; nested loops

  1. Reading:  Zelle §10.2–10.5 (and post a comment).
  2. Complete ps10 (on image processing) by Sunday at 11:59pm. 
  3. The second prelim will be held in class next Tuesday.  I've again identified some good practice exercises from the text. Certainly don't feel like you have to do anything close to all of them, but these are good ones to try. (The problems from exam 1 remain good practice!) It's also not a guaranteed-to-be-exhaustive list; there may be other kinds of questions. But these are potentially helpful review problems:
    Chapter Discussion Programming Exercises
    5 5,7,12,13
    6 1,3,4,5 1,4,7,12
    10 1,2,3 9,10,11

Thursday:  nested loops; image processing.

  1. Reading (for next Thursday):  Zelle §11.1–11.4 (and post a comment).
  2. Totally optional:  John Seabrook, "Game Master", The New Yorker, 6 November 2006.  (P. 96 talks about the advantages of object-oriented programming.)
  3. Reminder:  ps10 is due soon (Sunday/Thursday).  If you want to work on ps10 on your own computer, see these instructions.
  4. The final project assignment is now available.  Your proposal is due before class on Tuesday, November 4th; the project itself is due at the end of finals.
Week 7:
code.org video
Tuesday:  prelim #2!

Thursday:  image processing challenges; a visit from Matt Ginsberg (convo speaker).

  1. Reading:  Zelle §12.1, §12.4, §7.5.  (And post a comment.)
  2. Complete ps11 (more on images) before class next Thursday.
  3. Reminder:  your project proposal is due on Tuesday.
Week 8:

Tuesday:  image scaling wrapup; why subclasses might be useful; recursion (palindromes, summations); and –/—/-/etc.

  1. Reading:  Zelle §13.2.0–13.2.5 (and post as usual).
  2. Remember that ps11 is due Thursday.

Thursday:  linear and binary search; computational complexity; sorting algorithms.

  1. Reading:  Zelle §13.1, 13.2.6, 13.2.7. (And post, as usual.)
  2. Complete a peer evaluation for ps10 and ps11 before Tuesday.
  3. Complete ps12 (on fractals and recursion) by next Thursday.
  4. Keep cranking on your projects!

Week 9:

Tuesday:  many sorting algorithms (animationanimation #2, and dances!); computational complexity; more on recursion.

  1. Reading:  Zelle §13.3–13.4 (and post as usual).
  2. Remember that ps12 is due Thursday.
  3. Keep cranking on your projects!
  4. The last prelim will be held on Tuesday (first half). Any material that we've discussed in the class is fair game. As before, I've identified some good practice exercises from the text. (The ones listed for the first two exams remain good practice for this one!) A few extra practice problems are posted below. Certainly don't feel like you have to do anything close to all of them, but these are good ones to try.
    Chapter Discussion Programming Exercises
    11 1,2 5,6,8,11
    13 1,2,3,4 5,9,10,11

Thursday:  merge sort; quick sort & radix sort; course wrapup, and a tiny bit about why building a big website like healthcare.gov is hard.

  1. No new reading, no new assignments. 
  2. Work on your projects!  For extra help, bonus DLN office hours in the CMC after classes end:  Thur 11/21 10:00a–noon, Fri 11/22 1:30–3:30p.
  3. Exam Tuesday!
Week 10:

Tuesday:  prelim #3 (first half of class); ask me anything.

  1. Reminder:  come to CMC 306 at 7:00p on Saturday 11/23 for a project demo session/party.
  2. Reminder:  your projects are due at the end of finals (5:00p Monday 11/25).

Thursday/Friday:  bonus DLN office hours in the CMC.  Thur 11/21 10:00a–noon, Fri 11/22 1:30–3:30p.

Saturday, 7:00–9:30p: demo session for your (in-progress) final projects, in CMC 102.