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. Lab writeups are due at the start of class. Homework and exams are due at 11:59 p.m.
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 23 |
Introduction to algorithms | Making paper airplanes | HW1 (due 11:59 p.m.) | |
| Tue | Jan 24 |
Introduction to Linux | Parts
of Algorithms Grinnell's Linux environment |
Getting started with Linux | ||
| Wed | Jan 25 |
Introduction to the GIMP | The GNU Image Manipulation Program | Getting started with the GIMP | ||
| Fri | Jan 27 |
Introduction to Scheme | Starting Scheme | Starting Scheme | Quiz 1 | |
| 2 | Mon | Jan 30 |
Tools for scripting the GIMP |
Programming with GIMP tools | Scripting the
GIMP tools [partners] |
Lab writeup 1: Starting Scheme |
| Tue | Jan 31 |
Numbers & symbols | Basic types | Numeric values | HW2 | |
| Wed | Feb 1 |
Drawings as values | Drawings as values | Drawings as values [partners] | ||
| Fri | Feb 3 |
Writing your own procedures | Writing procedures | Writing procedures | Lab writeup 2; Quiz 2 |
|
| 3 | Mon | Feb 6 |
Documentation | Documenting procedures | Exercises [code from class] |
|
| Tue | Feb 7 |
Raster graphics & RGB colors | Raster graphics and RGB colors | Raster graphics and RGB colors [partners] | HW3 | |
| Wed | Feb 8 |
Transforming colors | Transforming RGB colors | Transforming RGB colors | Exam 1 assigned | |
| Fri | Feb 10 |
Transforming images | Transforming images | Transforming images | Quiz 3 |
|
| 4 | Mon | Feb 13 |
Design & color | Design & color | Guest lecturer: Jennelle Nystrom '14 |
Lab writeup 3 |
| Tue | Feb 14 |
Homogeneous lists | Making and manipulating homogeneous lists | Making and manipulating lists of drawings [partners] | Exam 1 due | |
| Wed | Feb 15 |
Anonymous procedures | Anonymous procedures | Anonymous procedures | ||
| Fri | Feb 17 |
Pause for breath | None! |
Anonymous
procedures, cont. |
Quiz 4 |
|
| Week | Date | Topic | Reading | Lab | Assignments | |
| 5 | Mon | Feb 20 |
Exam 1 discussion | None! |
Lab writeup 4 |
|
| Tue | Feb 21 |
Turtle graphics | Turtle graphics | Turtle graphics [partners] | HW4 | |
| Wed | Feb 22 |
Iteration | Iteration | Iteration | ||
| Fri | Feb 24 |
Boolean values and predicate procedures | Boolean values and predicate procedures | Boolean values and predicate procedures [partners] | Quiz 5 |
|
| 6 | Mon | Feb 27 |
Conditionals | Conditionals | Conditionals | Lab writeup 5 |
| Tue | Feb 28 |
Naming local values | Naming values with local bindings | Naming values with local bindings [partners] | HW5 |
|
| Wed | Feb 29 |
Heterogeneous lists | Building data structures with heterogeneous lists | Exploring lists | ||
| Fri | Mar 2 |
Iterating over positions | Building images by iterating over positions | Building images by iterating over positions | Lab writeup 6; Quiz 6 |
|
| 7 | Mon | Mar 5 |
Recursion over lists |
Recursion basics | Recursion
basics [partners] |
|
| Tue | Mar 6 |
Helper recursion |
Recursion with helper procedures | Recursion with helper procedures | HW6 |
|
| Wed | Mar 7 |
More patterns for list recursion | List recursion, revisited | List
recursion, revisited [partners] |
Exam 2 assigned | |
| Fri | Mar 9 |
Pause for breath |
None! |
Work on extras from recursion labs |
Quiz 7 |
|
| 8 | Mon | Mar 12 |
Verifying preconditions | Verifying preconditions | Verifying
preconditions [partners] |
|
| Tue | Mar 13 |
Naming local procedures | Local procedure bindings and recursion | Local procedures
and
recursion [example: index-of] |
Exam 2 due | |
| Wed | Mar 14 |
Numeric recursion | Numeric recursion | Numeric
recursion [partners] |
||
| Fri | Mar 16 |
Geometric art through numeric recursion | Geometric art | Geometric art | Lab writeup Quiz 8 |
|
| Spring
Break |
||||||
| Week | Date | Topic | Reading | Lab | Assignments | |
| 9 | Mon | Apr 2 |
Pairs and pair structures | Pairs and pair structures | Pairs and pair structures [partners] |
|
| Tue | Apr 3 |
Trees | Trees | Trees (Guest Lecturer) | HW7 | |
| Wed | Apr 4 |
Trees, continued | None! |
Trees (continue) | ||
| Fri | Apr 6 |
Randomized drawing | Randomized drawing | Randomized drawing [partners] |
Quiz 9 |
|
| 10 | Mon | Apr 9 |
Vectors | Vectors | Vectors Vector examples from class |
Lab writeup |
| Tue | Apr 10 |
Characters and strings | Characters and strings | Characters and strings | HW8 | |
| Wed | Apr 11 |
Project design | Elements and principles of 2D design Project: A procedure is worth 1000 pictures |
Class discussion |
Project assigned |
|
| Fri | Apr 13 |
Project workshop | Project ideas | Project ideas or begin work on project [with project team] |
Quiz 10 |
|
| 11 | Mon | Apr 16 |
Analyzing procedures | Analyzing procedures | Analyzing
procedures [partners] |
|
| Tue | Apr 17 |
Association lists | Association lists | Association lists | Proposal due |
|
| Wed | Apr 18 |
Higher-order procedures | Higher-order procedures | Higher-order procedures | ||
| Fri | Apr 20 |
Project workshop | None! |
Work on project |
Lab writeup Quiz 11 |
|
| 12 | Mon | Apr 23 |
Binary search | Search algorithms | Binary search | |
| Tue | Apr 24 |
Introduction to sorting | None! |
Class exercise |
Project due |
|
| Wed | Apr 25 |
Insertion sort | Sorting | Insertion sort [partners] |
Exam 3 assigned | |
| Fri | Apr 27 |
Merge sort | Merge sort | Merge sort | Quiz 12 |
|
| Week | Date | Topic | Reading | Lab | Assignments | |
| 13 | Mon | Apr 30 |
Project discussion: Images |
Browse project images |
Class discussion Guest: Jennelle Nystrom '14 |
|
| Tue | May 1 |
Project discussion: Code |
Browse project images and code | Class discussion | Exam 3 due |
|
| Wed | May 2 |
Unit Testing | Testing procedures | Unit testing | ||
| Fri | May 4 |
Objects in Scheme |
Building objects in Scheme | Building objects in
Scheme [examples from class] |
||
| 14 | Mon | May 7 |
Objects in Scheme (cont.) |
Building objects in Scheme (review) | Building objects in Scheme (continue) |
|
| Tue | May 8 |
Pause for breath | ||||
| Wed | May 9 |
What is computer science? Revisited | ||||
| Fri | May 11 |
Wrap-up & course evaluations | ||||
| Thu |
May 17 |
Optional
final exam, 9 a.m. |
||||
Janet Davis (davisjan@cs.grinnell.edu)
Created January 12, 2012