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
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
EBoardSample 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
EBoardSample 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
Last revised
December 3, 2007