Rice University

COMP 210: Principles of Computing and Programming

Lectures       Fall 2003

Notice

These are, in general, the notes from which I lecture. 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.

Lesson #

Date

Subject

Welcome! Administrivia, computing, simple programs
Expressions and functions in Scheme, contracts
Hand evaluation, design recipe, conditionals/booleans, conditional evaluation
 
Mon 9/1/03
Labor DayHoliday -- no classes!
More design recipe work, symbols and structures
More structures, templates, abstract data, revised design recipe
Compound data structures, abstraction/encapsulation, inheritance/composition
Functions on compound data structures, intro to lists
Recursion, examples of functions on lists
Recursive construction of lists, Law of Scheme, lists of mixed data
Mixed data cont., Natural numbers
accumulator algorithms
Review
Exam #1 -- in class
Review of templates for structures, Family Trees
Family Trees cont., Functions of Two Non-Trivial Arguments, Process Flow Analysis
Mutual Recursion: Descendent Trees, more Process Flow
More mutual recursion: Whole-part hierarchies
Locals
More local, closures, functions as objects
More closures, lambda functions, higher order functions
 
10/13/03-10/14/03
MIDTERM RECESS!!!
Mapping, folding & visiting
Visitors cont.
Review
Review -- Exam 2: Time-limited take-home, due by Monday.
Generative recursion: Divide-and-conquer -- Sorting
Generative recursion: Sierpinski gaskets
Sierpinski gaskets continued.
Sierpinski gaskets continued, incl. functional-style drawing of fractals
Depth and Breadth-first traversals
set-[struct]-[field]! and mutable data
Mutable data continued, graphs, depth-first traversal
set!, using locals, factories and closures to control mutation
breadth-first traversal; why to use set!
Restricted Access Containers
RACs and tree traversals
State Design Pattern
Mutable lists: LRStruct
Review
Review. Take-home Exam 3
 
11/27/03-11/28/03
THANKSGIVING RECESS!!!
Strategy Designs, GUIs in Scheme
To infinity...and beyond! (representing infinite lists -- lazy evaluation)
Last day of classes!! Exam 3 due, Exam 3 solution discussion, lazy prime numbers

 

You can also look at the lecture notes from last spring or even earlier.

 

©2003 Stephen Wong