Comp210: Principles of Computing and Programming
Fall 2004 -- Schedule    


Notice about class materials

These are, in general, the notes from which I lecture and present labs. They are, at best, only fairly complete. They certainly are not a substitute for attending class, taking notes, attending lab lecture, and reading the book. Their only purpose here is to help remind you of what was covered in class.

TAKE COMPLETE AND ACCURATE NOTES!!

The material in these notes may not correspond exactly to what was discussed in class due to the nature of class discussions, modified examples, and time constraints. You are responsible for all material whether presented in class or on the web pages.

 

General information about the labs

General information about the assignments

All assignments given immediately following the due date of the previous assignment.   HW01 is assigned on the first day of class.    Always check when the next assignment is due!

NEW!  Homework solutions

Date

Lecture

Lab

Assignment Due

Mon. 8/23/04 Lec01: Welcome! Administrivia, computing, simple programs    
Wed. 8/25/04 Lec02: Expressions and functions in Scheme, contracts Lab01: Getting Started: DrScheme, Design Recipe  
Thurs. 8/26/04    
Fri. 8/27/04
Lec03: Hand evaluation, design recipe, conditionals/booleans, conditional evaluation
   
       
Mon. 8/30/04 Lec04: More design recipe work, symbols and structures   HW01: Getting to know Scheme
Wed. 9/1/04 Lec05: More structures, templates, abstract data, revised design recipe Lab02: Simple data definitions: cond, structs  
Thurs. 9/2/04    
Fri. 9/3/04 Lec06: Compound data structures, abstraction/encapsulation, inheritance/composition    
       
Mon. 9/6/04 Labor Day--No Classes    
Wed. 9/8/04
Lec07: Functions on compound data structures, intro to lists
Lab03: Lists HW02: Conditionals and Structures
Thurs. 9/9/04
 
 
Fri. 9/10/04 Lec08: Recursion, examples of functions on lists    
       
Mon. 9/13/04
Lec09: Recursive construction of lists, Law of Scheme, lists of mixed data
  HW03: Compound Data Structures-Lists
Wed. 9/15/04
Lec10: Mixed data cont., Natural numbers
Lab04: Natural numbers  
Thurs. 9/16/04    
Fri. 9/17/04
Lec11: Accumulator algorithms
   
       
Mon. 9/20/04 Lec12: Review   HW04: More lists, Hand Evaluation, Natural Numbers, Accumlator algorithms
Wed. 9/22/04 Lec13: Exam #1 -- in class Lab05: More Accumulators  
Thurs. 9/23/04    
Fri. 9/24/04
Lec14: Review of templates for structures, Family Trees
   
       
Mon. 9/27/04 Lec15: Family Trees cont., Functions of Two Non-Trivial Arguments, Process Flow Analysis    
Wed. 9/29/04
Lec16: Mutual Recursion: Descendent Trees, more Process Flow
Lab06: Mutually Recursive Data HW05: Family Trees and Lists of Lists
Thurs. 9/30/04    
Fri. 10/1/04
Lec17: More mutual recursion: Whole-part hierarchies
   
       
Mon. 10/4/04 Lec18: Locals   HW06: Family Tree and Functions of Two Non-Trivial Inputs
Wed. 10/6/04
Lec19: More local, closures, functions as objects
Lab07: local and scope  
Thurs. 10/7/04    
Fri. 10/8/04
Lec20: More closures, lambda functions, higher order functions
   
       
Mon. 10/11/04 Mid-term recess--No Classes    
Wed. 10/13/04
Lec21: Mapping, folding & visiting
Lab08: Abstract functions  
Thurs. 10/14/04    
Fri. 10/15/04 Lec22: Visitors cont.   HW07: local and lambda
       
Mon. 10/18/04 Lec23: Review    
Wed. 10/20/04
Lec24: Review -- Exam 2: Time-limited take-home, due by Friday.
Lab09: Visitors  
Thurs. 10/21/04    
Fri. 10/22/04
Lec25: Generative recursion: Divide-and-conquer -- Sorting
   
       
Mon. 10/25/04
Lec26: Generative recursion: Sierpinski gaskets
  EXAM 2

HW08: Map, Fold and Visit

Wed. 10/27/04
Lec27: Sierpinski gaskets continued.
Lab10: Generative Recursion  
Thurs. 10/28/04    
Fri. 10/29/04
Lec28: Sierpinski gaskets continued, incl. functional-style drawing of fractals
   
       
Mon. 11/1/04
Lec29: Depth-first and breadth-first traversals
   
Wed. 11/3/04
Lec30: set-[struct]-[field]! and mutable data
Lab11: State and a Little I/O HW09: TreeFractals
Thurs. 11/4/04    
Fri. 11/5/04
Lec31: Mutable data continued, graphs, depth-first traversal
   
       
Mon. 11/8/04
Lec32: set!, using locals, factories and closures to control mutation
   
Wed. 11/10/04
Lec33: breadth-first traversal; why to use set!
Lab12: More state  
Thurs. 11/11/04    
Fri. 11/12/04
Lec34: Restricted Access Containers
  HW10: Generative Recursion: Missionaries and Cannibals 
       
Mon. 11/15/04
Lec35: RACs and tree traversals
   
Wed. 11/17/04 Lec36: State Design Pattern Lab13: Sharing Local State  
Thurs. 11/18/04    
Fri. 11/19/04
Lec37: Mutable lists: LRStruct
   
       
Mon. 11/22/04
Lec38: Review
   
Wed. 11/24/04
Lec39: Review. Take-home Exam 3

CANCELLED

 
Thurs. 11/25/04 Thanksgiving break--No Classes    
Fri. 11/26/04 Thanksgiving break--No Classes    
       
Mon. 11/29/04
Lec40: Strategy Designs, GUIs in Scheme
   
Wed. 12/1/04
Lec41: To infinity...and beyond! (representing infinite lists -- lazy evaluation)
Lab14: Strategies for Project Extra Credit EXAM 3
Thurs. 12/2/04    
Fri. 12/3/04
Lec42: Last day of classes!! Exam 3 solution discussion, lazy prime numbers
   
       
Mon. 12/6/04    

Final Project: Connect-N

Wed. 12/8/04 - Wed. 12/15/04 Final exam period    
       
       

Last Revised Friday, 03-Dec-2004 03:44:49 CST

©2004 Stephen Wong and Dung Nguyen