Lecture & Recitation Notes
If the notes for a particular lecture or section are
not yet posted, DO NOT email us about it. We will post notes as soon
as they are ready.
- Lecture 1 [22 Jan]: Overview
of the course and background on ML
- Section 1 [23 Jan]:
Introduction to SML syntax
- Lecture 2 [24 Jan]: SML
introduction - recursive functions, qualified names
- Section 2 [29 Jan]:
Pattern matching for tuples and records, introducing datatypes
- Lecture 3 [30 Jan]: Recursive
datatypes
- Section 3 [31 Jan]:
Side-effect sequences, higher order functions, and ML lists
- Lecture 4 [1 Feb]: More
pattern matching and polymorphic types
- Section 4 [5 Feb]:
Constructing binary trees and polynomial arithmetic
- Lecture 5 [6 Feb]:
Introduction to modules: structures and signatures
- Section 5 [7 Feb]:
Curried functions
- Lecture 6 [8 Feb]: More on
modules (see the notes for Lecture 5)
- Section 6 [12 Feb]:
Signatures, structures, and ADTs
- Lecture 7 [13 Feb]: ...
- Section 7 [14 Feb]:
Stacks and queues, handling exceptions
- Lecture 8 [15 Feb]:
Understanding asymptotic complexity
- Section 8 [19 Feb]:
Data structures, folding, and currying
- Lecture 9 [20 Feb]: Asymptotic
complexity of programs
- Section 9 [21 Feb]:
Proving running times and asymptotic complexity
- Lecture 10 [22 Feb]:
Implementing sets efficiently with red-black trees
- Section 10 [26 Feb]:
Other balanced trees
- Lecture 11 [27 Feb]:
The Substitution Model for ML (see also the handout).
- Section 11 [28 Feb]: Examples of the substitution model
- Lecture 12 [1 Mar]: More on the
Substitution Model
- Section 12 [5 Mar]: More examples of the substitution model
- Lecture 13 [6 Mar]: Pattern
matching in the Substitution Model (see also the handout).
- Section 13 [7 Mar]: Examples of substitution model with
pattern matching.
- Lecture 14 [8 Mar]: Mutable
data structures in ML (refs and arrays).
- Section 14 [12 Mar]: Review of Prelim I
- Lecture 15 [13 Mar]: 7 flavors of Queues (hope you went to
lecture...)
- Section 15 [14 Mar]: Hash
tables
- Lecture 16 [15 Mar]:
Introduction to the Environment Model
- Section 16 [26 Mar]:
Type-checking
- Lecture 17 [27 Mar]: Box and
pointer diagrams in the environment model
- Section 17 [28 Mar]: More examples of the environment model
- Lecture 18 [29 Mar]: More box
and pointer diagrams
- Section 18 [2 Apr]: Details of PS5
- Lecture 19 [3 Apr]: More details of PS5, and copying garbage
collection
- Section 19 [4 Apr]: More garbage collection techniques
- Lecture 20 [5 Apr]: Garbage collection details
- Section 20 [9
Apr]: Graph representations, BFS and DFS
- Lecture 21 [10 Apr]: Thunks and
streams
- Section 21 [11
Apr]: Shortest path using Djkstra's and Floyd-Warshall
- Lecture 22 [12 Apr]: Debugging
by proving
- Section 22 [16 Apr]: Review for prelim
- Lecture 23 [17 Apr]: Heaps and
Priority queues
- Section 23 [18 Apr]: Review of Prelim II
- Lecture 24 [19 Apr]: Huffman
compression
- Section 24 [23 Apr]: LZ compression and PS6 overview
(Brandon's birthday)
- Lecture 25 [24 Apr]: Overview of image encodings
- Section 25 [25 Apr]: Suffix trees
- Lecture 26 [26 Apr]: Object encoding in SML
- Section 26 [30 Apr]: Section Cancelled
- Lecture 27 [1 May]: Threading
and Concurrent
ML
- Section 27 [2 May]:
- Lecture 28 [3 May]: