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 | |
|---|---|---|---|---|---|---|
| 0 | Fri | Aug 31 | Introduction to algorithms | Drawing smiley faces | ||
| 1 | Mon | Sep 3 | Introduction to CSC 151 | Grinnell's Linux environment | Getting started with Linux | Due: HW 1 |
| Tue | Sep 4 | Introduction to Scheme | The DrFu programming environment; Beginning Scheme |
The DrFu Programming Environment | Due: HW 2 | |
| Wed | Sept 5 | Raster graphics | Raster graphics | Raster graphics | ||
| Fri | Sept 7 | RGB colors | RGB colors | RGB colors | Due: HW 3 | |
| 2 | Mon | Sept 10 | Design & color | None! |
Guest instructor: Matt Kluber, Art | |
| Tue | Sept 11 | Transforming colors | Transforming RGB colors | Partners assigned Transforming RGB colors |
Due: HW 4 | |
| Wed | Sept 12 | Transforming images |
Transforming images | Transforming images | ||
| Fri | Sept 14 | Writing your own color transformations | Anonymous procedures and fancier filters | Writing anonymous procedures | Due: HW 5 | |
| 3 | Mon | Sept 17 | Computing with numbers | Numeric values | New partners Writing more complex color transformations |
|
| Tue | Sept 18 | Iterating over positions | Building images by iterating over positions | Building images by iterating over positions | Due: HW 6 | |
| Wed | Sept 19 | Booleans & predicates | Boolean values & predicate procedures | Boolean values & predicate procedures | ||
| Fri | Sept 21 | Conditionals |
Conditional evaluation in Scheme | Conditionals | Due: HW 7
Out: Exam 1 |
|
| Week | Date | Topic | Reading | Lab | Assignments | |
| 4 | Mon | Sept 24 | Conditionals, revisited |
None! |
Continue Conditionals | |
| Tue | Sept 25 | Lists | Representing data as lists | New partners Lists |
||
| Wed | Sept 26 | Iterating over lists | Iterating over lists | Iterating over lists | ||
| Fri | Sept 28 | Recursion | Recursion basics | Recursion basics | Due: Exam 1 |
|
| 5 | Mon | Oct 1 | Tail recursion | Tail recursion | Tail recursion | |
| Tue | Oct 2 | Recursion, revisited | Recursion, revisited | New partners Recursion, revisited |
Due: HW 8 | |
| Wed | Oct 3 | Recursion, re-revisited | None! | Recursion, revisited | ||
| Fri | Oct 5 | Documenting programs & procedures | Documentation | Class exercise: Writing documentation | Due: HW 9 | |
| 6 | Mon | Oct 8 | Verifying preconditions | Verifying preconditions |
Verifying preconditions | |
| Tue | Oct 9 | Testing procedures | Testing procedures | New partners (for the last time) Testing procedures |
Due: HW 10 | |
| Wed | Oct 10 | Analyzing procedures | Analyzing procedures | Analyzing procedures | ||
| Fri | Oct 12 | Numeric recursion | Numeric recursion | Numeric recursion | Due: HW 11 | |
| 7 | Mon | Oct 15 | Evaluating Scheme expressions | None! | EBoard, Sample Code | |
| Tue | Oct 16 | Local bindings | Local bindings | Local bindings EBoard, Sample Code |
Due: HW 12 | |
| Wed | Oct 17 | Local bindings for recursive procedures | Local procedure bindings | Local procedure bindings EBoard, Sample Code |
|
|
| Fri | Oct 19 | Fun with the GIMP | GIMP tools | GIMP tools EBoard, Sample Code |
|
|
| Fall Break | ||||||
| Week | Date | Topic | Reading | Lab | Assignments | |
| 8 | Mon | Oct 29 | Randomness |
Randomized drawing | Random drawing | |
| Tue | Oct 30 | Geometric art through numeric recursion | Geometric art | Geometric art | ||
| Wed | Oct 31 | Characters and strings | Characters and strings in Scheme | Characters and strings in Scheme | |
|
| Fri | Nov 2 | Drawing with text |
None! | Drawing with text | Due: HW 13 Out: Exam 2 |
|
| 9 | Mon | Nov 5 | Storing data in files | Files | Files | |
| Tue | Nov 6 | Storing image data in files | Pixel maps | Storing images with pixmaps | ||
| Wed | Nov 7 | Storing image data more efficiently |
Pixel maps, revisited | Representing images with binary data | ||
| Fri | Nov 9 | Storing image data more efficiently, continued | None! | Representing images with binary data, continued | Due: Exam 2 | |
| 10 | Mon | Nov 12 | Color palettes | Palettes |
Drawing with palettes | |
| Tue | Nov 13 | Representing color palettes with vectors | Vectors | Vectors | Due: HW 14 | |
| Wed | Nov 14 | Pairs & pair structures | Pairs & pair structures | Pairs & pair structures | ||
| Fri | Nov 16 | Deep recursion | Deep recursion | Deep recursion | Due: HW 15 | |
| 11 | Mon | Nov 19 | Deep recursion, revisited |
None! | Finish Deep recursion, work with explorations | |
| Tue | Nov 20 | Association lists & searching | Association lists | Association lists | Due: HW 16 | |
| Wed | Nov 21 | Writing higher-order procedures | Design patterns and higher-order procedures | Higher-order procedures | ||
| Fri | Nov 23 | No Class: Thanksgiving | ||||
| Week | Date | Topic | Reading | Lab | Assignments | |
| 12 | Mon | Nov 26 | Binary search |
Search algorithms | Binary search | |
| Tue | Nov 27 | Introduction to sorting | None! | |||
| Wed | Nov 28 | Insertion sort | Sorting | Insertion sort | ||
| Fri | Nov 30 | Merge sort | Merge sort | Merge sort | Due: Project Out: Exam 3 |
|
| 13 | Mon | Dec 3 | Stacks and queues | Keeping track of tasks with restricted access collections |
Stacks, queues, and priority queues | |
| Tue | Dec 4 | Project assessment: Images | Browse project images | |||
| Wed | Dec 5 | Binary search trees |
None! | |||
| Fri | Dec 7 | Project assessment: Programs | Due: Exam 3 | |||
| 14 | Mon | Dec 10 | The abacus | |||
| Tue | Dec 11 | What is computer science?, revisited | ||||
| Wed | Dec 12 | Wrap-up | ||||
| Fri | Dec 14 | Review for final | ||||
| Tue | Dec 18 | Final exam (OPTIONAL), 2 p.m. | ||||
Janet Davis (davisjan@cs.grinnell.edu)
Created August, 2007