Schedule

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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Final

Week   Date Topic Reading Lab Assignments
0 Fri Aug 29 Introduction to algorithms   Drawing smiley faces
1 Mon Sept 1 Introduction to CSC 151 Grinnell's Linux environment Getting started with Linux HW 1
Tue Sept 2 Introduction to the GIMP The GNU Image Manipulation Program Getting started with the GIMP  
Wed Sept 3 Introduction to Scheme Starting Scheme Starting Scheme  
Fri Sept 5 Programming with GIMP tools Programming with GIMP tools Programming with GIMP tools Quiz 1 
2 Mon Sept 8 Turtle graphics Turtle graphics Turtle graphics
New lab partners assigned
 
Tue Sept 9 Drawings as values Drawings as values Drawings as values  
Wed Sept 10 Writing your own procedures Defining Scheme procedures &
How Scheme evaluates expressions (version 2)
Writing your own procedures
New lab partners assigned
HW 2
Fri Sept 12 Numbers & symbols Numeric values & Symbolic values Numeric values Quiz 2
3 Mon Sept 15 Representing images as lists of spots Representing images as lists of spots Representing images as lists of spots
New lab partners assigned 
 
Tue Sept 16 Representing images as lists of spots, continued None!
Continue Representing images as lists of spots  
Wed Sept 17 Design & color (Guest lecturer: Matt Kluber, Art) None!   HW 3
Fri Sept 19 Raster graphics & RGB colors Raster graphics & RGB colors Raster graphics & RGB colors
New lab partners assigned 
Quiz 3;
Exam 1 assigned
Week   Date Topic Reading Lab Assignments
4 Mon Sept 22 Documentation Documenting procedures    
Tue Sept 23 Boolean values & predicate procedures Boolean values & predicate procedures Boolean values & predicate procedures  
Wed Sept 24 Conditionals Conditional evaluation in Scheme Conditionals
New lab partners assigned
Exam 1 due
Fri Sept 26 Iterating over lists Iterating over lists Iterating over lists Quiz 4
5 Mon Sept 29 Exam 1 discussion None!    
Tue Sept 30 Naming local values Naming local values Naming values with local bindings
New lab partners assigned
 
Wed Oct 1 Transforming colors Transforming RGB colors Transforming RGB colors HW 4
Fri Oct 3 Transforming images Transforming images Transforming images Quiz 5
6 Mon Oct 6 Iterating over positions Building images by iterating over positions Building images by iterating over positions
New lab partners assigned
 
Tue Oct 7 Recursion over lists Recursion basics Recursion basics  
Wed Oct 8 Recursion over lists, continued Review How Scheme evaluates expressions (version 2) Continue Recursion basics
Revised lab partner assignments
HW 5
Fri Oct 10 Helper recursion Recursion with helper procedures Recursion with helper procedures Quiz 6
7 Mon Oct 13 Other forms of list recursion List recursion, revisited List recursion, revisited
New lab partners assigned
 
Tue Oct 14 Verifying preconditions Verifying preconditions Verifying preconditions  
Wed Oct 15 Naming local procedures Local procedure bindings and recursion Local procedures and recursion
New lab partners assigned
HW 6
Fri Oct 17 Randomized drawing Randomized drawing Randomized drawing Quiz 7
Fall Break
Week   Date Topic Reading Lab Assignments
8 Mon Oct 27 Numeric recursion Numeric recursion Numeric recursion
New lab partners assigned
Exam 2 assigned
Tue Oct 28 Geometric art through numeric recursion Geometric art Geometric art  
Wed Oct 29 Geometric art, continued
None!
Continue Geometric art  
Fri Oct 31 Characters and strings Characters and strings Characters and strings
New lab partners assigned
Exam 2 due
9 Mon Nov 3 Storing data in files Files Files  
Tue Nov 4 Storing images in files Pixel maps: A technique for storing images in files Pixel maps  
Wed Nov 5 More efficient storage Pixmaps, revisited: Encoding data more efficiently Representing integers as characters
New lab partners assigned
HW7
Fri Nov 7 Still more efficient storage None! Continue Representing integers as characters Quiz 8
10 Mon Nov 10 Color palettes Color palettes Encoding images with color palettes
New lab partners assigned
 
Tue Nov 11 Vectors Vectors Vectors  
Wed Nov 12 Analyzing procedures Analyzing procedures Analyzing procedures
New lab partners assigned
HW 8
Fri Nov 14 Testing procedures
Testing procedures
Unit testing Quiz 9
Week   Date Topic Reading Lab Assignments
11 Mon Nov 17 Pairs & pair structures Pairs & pair structures Pairs & pair structures
New lab partners assigned
 
Tue Nov 18 Deep recursion Deep recursion Deep recursion  
Wed Nov 19 Project kick-off Project ideas Project ideas
Choose your own groups for the project!
HW 9;
Project assigned
Fri Nov 21 Association lists Association lists Association lists
New lab partners assigned
Quiz 10
12 Mon Nov 24 Higher-order procedures, revisited Design patterns and higher-order procedures Higher-order procedures  
Tue Nov 25 Higher-order procedures, continued None!
Higher-order procedures, continued  
Wed Nov 26 Binary search Search algorithms Binary search
Choose your own lab partners
Project due
Fri Nov 28 Thanksgiving Break 
13 Mon Dec 1 Browse the project imagesIntroduction to sorting None! Class activity Exam 3 assigned
Tue Dec 2 Insertion sort Insertion sort Insertion sort  
Wed Dec 3 Merge sort Merge sort Merge sort  
Fri Dec 5 Project discussion: Images Browse the project images Discuss the project images Exam 3 due
14 Mon Dec 8 Project discussion: Code Review the project images Discuss project code  
Tue Dec 9 TBA None!    
Wed Dec 10 Burning questions Make note of your burning questions (if any) Grading script - grade files were emailed
(display-grade-report filename)
 
Fri Dec 12 Wrap-up & course evaluations None!     

Wed
Dec 17 Final exam (OPTIONAL), 2 p.m.

Janet Davis (davisjan@cs.grinnell.edu)

Created August 2007
Last revised December 10,
2008