CS 312 Schedule Spring 2002

The notes linked below are not a substitute for attending lecture and recitation. If the notes for a particular lecture or recitation are not posted, please do not email us about it.

Meeting Date Topic
Lec. 1 Jan. 22 Course overview and background on ML
Rec. 1 23 Introduction to SML syntax
Lec. 2 24 Recursive functions and qualified names in SML
Rec. 2 28 Tuples, records, datatypes, and pattern matching
Lec. 3 29 Recursive datatypes and lists
Rec. 3 30 Higher-order functions and datatype constructors
Lec. 4 31 Polymorphism and parameterized types
Rec. 4 Feb. 4 Side effects, datatype pitfalls, and polymorphism
Lec. 5 5 Modules and ADTs
Rec. 5 6 Folding, currying, mapping, and exceptions
Lec. 6 7 Specifying functions and signatures
Rec. 6 11 Writing stacks and queues in functional style
Rec. 7 13 Association lists
Lec. 7 14 Documenting implementations
Rec. 8 18 Programming with rep invariants
Lec. 8 19 Asymptotic analysis
Rec. 9 20 Proving running times with induction
Lec. 9 21 Reasoning about correctness and complexity
Rec. 10 25 Binary search trees, functors
Lec. 10 26 Implementing sets efficiently: red/black trees
Rec. 11 27 Mutable data structures: refs and arrays
Lec. 11 28 Hash tables
Rec. 12 Mar. 4 PS4: Tries and Lempel-Ziv compression
Lec. 12 5 Testing
Rec. 13 6

Prelim I review

Lec. 13 7 Prelim I review
March 7 Preliminary Exam 1, Hollister B14, 7:30–9:00PM
Rec. 14 11 Prelim I recap
Lec. 14 12 Substitution model
Rec. 15 13 Substitution model examples
Lec. 15 14 Substitution model: definitional interpreter
Spring Break
Rec. 16 25 Introduction to environment model
Lec. 16 26 Environment model: refs, closures, and recursion [PDF]
Rec. 17 27 Environment model examples, PS5
Lec. 17 28 Type checking
Rec. 18 April 1 Subtyping, objects, and PS5
Lec. 18 2 Type inference and unification
Rec. 19 3 Graph representations and traversal
Lec. 19 4 Heaps, priority queues, Huffman coding
Rec. 20 8 PS6 overview
Lec. 20 9 Dijkstra's shortest path algorithm
Rec. 21 10 Minimax search and alpha-beta pruning
Lec. 21 11 Lazy evaluation, thunks, and streams
Rec. 22 15 Prelim II review PS6 design reviews
April 15–19
Lec. 22 16 Prelim II review
April 16 Preliminary Exam 2, Hollister B14, 7:30–9:00PM
Rec. 23 17 Prelim II recap
Lec. 23 18 Memory management
Rec. 24 22 Copying garbage collection
Lec. 24 23 Ordered collections: treaps
Rec. 25 24 Locality: splay trees and B-trees
Lec. 25 25 String matching
Rec. 26 29 Regular expressions
Lec. 26 30 Concurrency
Rec. 27 May 1 Y-combinator and self-reference
Lec. 27 2 Continuations
May 14 Final Exam, Kimball B11, 3:00-5:30PM