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. 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
Last revised May 4, 2012