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 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
Last revised May 5,
2009