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 24
Introduction to algorithms
 
Drawing smiley faces
HW 1

Tue Jan 25
Introduction to Linux
Grinnell's Linux environment Getting started with Linux  

Wed Jan 26
Introduction to the GIMP The GNU Image Manipulation Program Getting started with the GIMP  

Fri Jan 28
Introduction to Scheme Beginning Scheme
The MediaScript Programming Environment
How Scheme Evaluates Expressions (version 1)
Starting Scheme Lab writeup 1;
Quiz 1 
2 Mon Jan 31
Tools for scripting the GIMP Programming with GIMP tools Scripting the GIMP tools
Lab partners assigned
 

Tue Feb 1
Numbers & symbols Basic types Numeric values  

Wed Feb 2
Drawings as values SNOW DAY
Drawings as values  
HW2
(extended to Thu)

Fri Feb 4
Drawings as values Drawings as values Drawings as values
New lab partners
Quiz 2
3 Mon Feb 7
Writing your own procedures Writing procedures  Writing procedures Lab writeup 2

Tue Feb 8
Design & color None! Web resources:
Color Theory (Color Matters)

Color Scheme Designer
Guest: Matt Kluber, Art
 

Wed Feb 9
Documentation Documenting procedures Class discussion
Example: modulo
HW 3;
Exam 1 assigned

Fri Feb 11
Raster graphics & RGB colors Raster graphics and RGB colors Raster graphics and RGB colors
New lab partners
Lab writup 3;
Quiz 3
4 Mon Feb 14
Transforming colors Transforming RGB colors  Transforming RGB colors Lab writeup 4

Tue Feb 15
Transforming images Transforming images Transforming images
New lab partners
 

Wed Feb 16
Homogeneous lists Making and manipulating homogeneous lists Making and manipulating lists of drawings Exam 1 due

Fri Feb 18
Turtle graphics Turtle graphics Turtle graphics Lab writeup 5;
Quiz 4
Week   Date Topic Reading Lab Assignments
5 Mon Feb 21
Exam 1 discussion None!
Class discussion
 

Tue Feb 22
Anonymous procedures Anonymous procedures Anonymous procedures
New lab partners
  

Wed Feb 23
Iteration Iteration Iteration HW 4

Fri Feb 25
Naming local values Naming values with local bindings Naming values with local bindings
New lab partners
Lab writeup 6;
Quiz 5
6 Mon Feb 28
Boolean values and predicate procedures Boolean values and predicate procedures Boolean values and predicate procedures Lab writeup 7

Tue Mar 1
Conditionals Conditionals Conditionals
New lab partners
 

Wed Mar 2
Heterogeneous lists Building data structures with heterogeneous lists Exploring lists  HW 5

Fri Mar 4
Recursion over lists Recursion basics Recursion basics
New lab partners
Quiz 6
7 Mon Mar 7
Recursion over lists, continued Review Recursion basics Recursion basics (continued)  

Tue Mar 8
Helper recursion Recursion with helper procedures  Recursion with helper procedures  

Wed Mar 9
More patterns for list recursion List recursion, revisited  List recursion, revisited
New lab partners
HW 6;
Exam 2 assigned

Fri Mar 11
Pause for breath
None!
List recursion, revisited (continued) Lab writeup 8
Quiz 7 
8 Mon Mar 14
Verifying preconditions Verifying preconditions Verifying preconditions
New lab partners

Tue Mar 15
Unit testing Testing procedures Unit testing  

Wed Mar 16
Naming local procedures Local procedure bindings and recursion Local procedures and recursion
New lab partners
Exam 2 due


Fri Mar 18
Iterating over positions Building images by iterating over positions Building images by iterating over positions Quiz 8;
Lab writeup 9
Spring Break 
Week   Date Topic Reading  Lab  Assignments
9 Mon Apr 4
Numeric recursion Numeric recursion Numeric recursion
New lab partners
 

Tue Apr 5
Geometric art through numeric recursion Geometric art Geometric art

Wed Apr 6
Vectors Vectors Vectors
New lab partners
HW 7

Fri Apr 8
Pairs and pair structures Pairs and pair structures Pairs and pair structures Quiz 9;
Lab writeup 10
10 Mon Apr 11
Trees Trees Trees   

Tue Apr 12
Project design  Elements and principles of 2D design Guest: Matt Kluber, Art  

Wed Apr 13
Project kickoff Project ideas Project ideas
Work in project teams
HW 8;
Project assigned

Fri Apr 15
Randomized drawing Randomized drawing Randomized drawing
Work in project teams/subteams
Lab writeup 11
Quiz 10
11 Mon Apr 18
Characters and strings Characters and strings  Characters and strings
New lab partners
 

Tue Apr 19
Analyzing procedures Analyzing procedures Analyzing procedures Lab writeup 12

Wed Apr 20
Association lists Association lists

Association lists

Project proposal due

Fri Apr 22
Project work time None!
Work in project teams Quiz 11
12 Mon Apr 25
Higher-order procedures Higher-order procedures Higher-order procedures
New lab partners 
 

Tue Apr 26
Binary search Search algorithms Binary search  

Wed Apr 27
Introduction to sorting None!
Class activity
Project due;
Exam 3 assigned

Fri Apr 29
Insertion sort Sorting Insertion sort
New lab partners 
Lab writeup 13
Quiz 12
Week   Date Topic Reading Lab Assignments
13 Mon May 2
Merge sort Merge sort Merge sort  

Tue May 3
Project assessment: Images View project images
Class discussion
Guest: Matt Kluber, Art
 

Wed May 4
Project assessment: Procedures  Review projects Class discussion
Exam 3 due

Fri May 6
Implementing turtles: Objects in Scheme  Building Objects in Scheme Building objects in Scheme
14 Mon May 9
Implementing turtles: Objects in Scheme Building Objects in Scheme Building objects in Scheme  

Tue May 10
Review for final
 
 
 

Wed May 11
What is computer science? Revisited  
 
 

Fri May 13
Wrap-up & course evaluations
 
 
 

Wed
May 18
Final exam (OPTIONAL), 9 a.m.

Janet Davis (davisjan@cs.grinnell.edu)

Created August 2007
Last revised May 2, 2011