This schedule is tentative. Readings and labs will be posted as the semester progresses. Check this page frequently for updates.
Readings should be completed before the class for which they are assigned. Assignments are due at the start of class.
Skip to week: Current 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Final
| Week | Date | Topic | Reading | Lab | Assignments | |
|---|---|---|---|---|---|---|
| 1 | Mon | Jan 19 | Introduction to algorithms | Drawing smiley faces | ||
| Tue | Jan 20 | Introduction to CSC 151 | Grinnell's Linux environment | Getting started with Linux | HW 1 | |
| Wed | Jan 21 | Introduction to the GIMP | The GNU Image Manipulation Program | Getting started with the GIMP Choose your own partners. Write up this lab! |
||
| Fri | Jan 23 | Introduction to Scheme | Starting Scheme | Starting Scheme Partners from Wed. |
Lab write-up 1 due; Quiz 1 |
|
| 2 | Mon | Jan 26 | Programming with GIMP tools | Programming with GIMP tools | Scripting the GIMP tools New lab partners assigned |
|
| Tue | Jan 27 | Drawings as values | Drawings as values | Drawings as values | ||
| Wed | Jan 28 | Writing your own procedures | Writing procedures | Writing your own procedures New lab partners assigned Write up this lab! |
HW 2 | |
| Fri | Jan 30 | Numbers & symbols | Numeric values Symbolic values Basic documentation |
Numeric values | Lab write-up 2 due; Quiz 2 |
|
| 3 | Mon | Feb 2 | Turtle graphics | Turtle graphics | Turtle graphics New lab partners assigned Write up this lab! |
|
| Tue | Feb 3 | Documentation | Documenting procedures | In-class exercises | Lab write-up 3 due | |
| Wed | Feb 4 | Raster graphics & RGB colors | Raster graphics & RGB colors | Raster graphics & RGB colors New lab partners assigned |
HW 3 | |
| Fri | Feb 6 | Design & color (Guest lecturer: Matt Kluber, Art) |
Transforming RGB colors | Guest lecture | Quiz 3; Exam 1 assigned |
|
| 4 | Mon | Feb 9 | Transforming colors | Transforming RGB colors (review) | Transforming RGB colors New lab partners assigned |
|
| Tue | Feb 10 | Transforming images | Transforming images | Transforming images | ||
| Wed | Feb 11 | Naming local values | Naming local values | Naming values with local bindings New lab partners assigned Write up this lab! |
Exam 1 due | |
| Fri | Feb 13 | Boolean values & predicate procedures | Boolean values & predicate procedures | Boolean values & predicate procedures | Lab write-up 4 due; Quiz 4 |
|
| Week | Date | Topic | Reading | Lab | Assignments | |
| 5 | Mon | Feb 16 | Exam 1 discussion | None! | Class discussion | |
| Tue | Feb 17 | Conditionals | Conditional evaluation in Scheme | Conditionals New lab partners assigned |
||
| Wed | Feb 18 | Iterating over positions | Building images by iterating over positions | Building images by iterating over positions | HW 4 | |
| Fri | Feb 20 | Representing images as lists of spots | Representing images as lists of spots | Representing images as lists of spots New lab partners assigned |
Quiz 5 | |
| 6 | Mon | Feb 23 | Lists, continued | Review Representing images as lists of spots | Continue Representing images as lists of spots | |
| Tue | Feb 24 | Iterating over lists | Iterating over lists | Iterating over lists New lab partners assigned |
Lab write-up 5 due | |
| Wed | Feb 25 | Recursion over lists | Recursion basics | Recursion basics Write up this lab! |
HW 5 | |
| Fri | Feb 27 | Recursion, continued | Review How Scheme evaluates expressions (version 2) | Recursion basics, continued | Quiz 6 | |
| 7 | Mon | Mar 2 | Helper recursion | Recursion with helper procedures | Recursion with helper procedures New lab partners assigned |
Lab write-up 6 due |
| Tue | Mar 3 | Other forms of list recursion | List recursion, revisited | List recursion, revisited | ||
| Wed | Mar 4 | Verifying preconditions | Verifying preconditions | Verifying preconditions New lab partners assigned |
HW 6 | |
| Fri | Mar 6 | Randomized drawing | Randomized drawing | Randomized drawing Write up this lab! |
Quiz 7 | |
| 8 | Mon | Mar 9 | Naming local procedures | Local procedure bindings and recursion | Local procedures and recursion New lab partners assigned |
Lab write-up 7 due |
| Tue | Mar 10 | Numeric recursion | Numeric recursion | Numeric recursion | ||
| Wed | Mar 11 | Geometric art through numeric recursion | Geometric art | Continue Numeric recursion Start Geometric art |
HW 7 | |
| Fri | Mar 13 | Geometric art, continued |
Review Geometric art | Continue Geometric art | Quiz 8 | |
| Spring Break | ||||||
| Week | Date | Topic | Reading | Lab | Assignments | |
| 9 | Mon | Mar 30 | Characters and strings | Characters and strings | Characters and strings New lab partners assigned |
|
| Tue | Mar 31 | Storing data in files | Files | Files | ||
| Wed | Apr 1 | Storing images in files | Pixel maps: A technique for storing images in files | Storing images with pixmaps New lab partners assigned Write up this lab! |
HW 8 | |
| Fri | Apr 3 | More efficient storage | Pixmaps, revisited: Encoding data more efficiently | Representing integers as characters | Lab write-up 8 due; Quiz 9; Exam 2 assigned |
|
| 10 | Mon | Apr 6 | Still more efficient storage | Review Pixmaps, revisited | Representing integers as characters, continued | |
| Tue | Apr 7 | Color palettes | Palettes | Palettes Choose your own lab partners! |
||
| Wed | Apr 8 | Vectors | Vectors | Vectors Write up this lab! |
Exam 2 due | |
| Fri | Apr 10 | Analyzing procedures | Analyzing procedures | Analyzing procedures Partner poll |
Lab write-up 9 due; Quiz 10 |
|
| 11 | Mon | Apr 13 | Pairs & pair structures | Pairs & pair structures | Pairs & pair structures New lab partners assigned |
|
| Tue | Apr 14 | Trees | Trees | Trees | ||
| Wed | Apr 15 | Project kick-off | Project ideas |
Project ideas Work in project teams. |
HW
9; Project assigned |
|
| Fri | Apr 17 | Testing procedures | Testing procedures | Unit testing | Quiz 11 | |
| Week | Date | Topic | Reading | Lab | Assignments | |
| 12 | Mon | Apr 20 | Association lists | Association lists | Association lists New lab partners assigned |
|
| Tue | Apr 21 | Higher-order procedures, revisited | Design patterns and higher-order procedures | Higher-order procedures | ||
| Wed | Apr 22 | Higher-order procedures, continued | None! |
Higher-order procedures, continued | Project due | |
| Fri |
Apr 24 | Binary search | Search algorithms | Binary search New lab partners assigned |
Lab write-up 10 due; Quiz 12 |
|
| 13 | Mon | Apr 27 | Binary search, continued | Review Search algorithms | Binary search, continued | Exam 3 assigned |
| Tue | Apr 28 | Introduction to sorting | None! | Designing search algorithms (with Prof. Weinman) |
||
| Wed | Apr 29 | Insertion sort | Insertion sort | Insertion sort | ||
| Fri | May 1 | Project discussion: Images (Guest lecturer: Matt Kluber, Art) |
Browse project images | Discuss project images | ||
| 14 | Mon | May 4 | Project discussion: Code | Browse project images | Discuss project code | Exam 3 due |
| Tue | May 5 | Merge sort | Merge sort | Merge sort | ||
| Wed | May 6 | Exciting opportunity! | None! | |||
| Fri | May 8 | Wrap-up & course evaluations | Reflect on what you've learned in this course. | |||
| Wed |
May 13 | Final exam (OPTIONAL), 9 a.m. | ||||
Janet Davis (davisjan@cs.grinnell.edu)
Created August 2007