15-212: Principles of Programming |
Readings are from: Hansen and Rischel,
Introduction to Programming Using SML.
Notes include references to the on-line textbook
Programming in Standard ML by
Professor Robert Harper, as well as
links to the older webnotes.
Notes also include links to handouts and sample code.
This schedule is an approximate plan, and is subject to change during the semester.
Lecture # | Day | Date | Topic | Reading | Notes |
1 | T | 11 Jan | Introduction; Evaluation & Typing | Chapter 1 | Lecture 1 |
Recitation | W | 12 Jan | Practice; Style; Hints. | ||
2 | R | 13 Jan | Binding, Scope, Functions | Chapter 2 | Lecture 2 |
3 | T | 18 Jan | Recursion & Induction | see Notes | Lecture 3 |
Recitation | W | 19 Jan | Scoping in recursive functions; Complete induction. | ||
4 | R | 20 Jan | Datatypes & Patterns; Lists | Chapters 3, 5, 7.1-7.5 | Lecture 4 |
5 | T | 25 Jan | Structural Induction and Tail Recursion | Chapter 17 | Lecture 5 |
- | W | 26 Jan | Assignment 1 due | Solution 1 | |
Recitation | W | 26 Jan | Lists; Equality types. | ||
6 | R | 27 Jan | Higher Order Functions and Staged Computation | Chapter 9 | Lecture 6 |
7 | T | 1 Feb | Data Structures | Chapters 8, 10, 11.1-11.3 | Lecture 7 |
Recitation | W | 2 Feb | Currying, folding, and mapping. | ||
8 | R | 3 Feb | Representation Invariants | as above | Lecture 8 |
9 | T | 8 Feb | Continuations | see Notes | Lecture 9 |
- | W | 9 Feb | Assignment 2 due | Solution 2 | |
Recitation | W | 9 Feb | Tail Recursion vs Continuations. | ||
10 | R | 10 Feb | Regular Expressions | see Notes | Lecture 10 |
11 | T | 15 Feb | Review | ||
Recitation | W | 16 Feb | Practice for the midterm. | ||
- | R | 17 Feb | Midterm | Midterm sample solution | |
12 | T | 22 Feb | Combinators | Lecture 12 | |
Recitation | W | 23 Feb | Searching, failing, and stopping early. | ||
13 | R | 24 Feb | Exceptions, n-Queens | Sections 7.6-7.7 | Lecture 13 |
14 | T | 1 Mar | Functors and Substructures | Chapter 11 | Lecture 14 |
- | W | 2 Mar | Assignment 3 due | Solution 3 | |
Recitation | W | 2 Mar | Ascription, where, and functors. | ||
15 | R | 3 Mar | Game Tree Search | Lecture 15 | |
- | T | 8 Mar | No Class (Spring Break) | ||
- | W | 9 Mar | No Recitation (Spring Break) | ||
- | R | 10 Mar | No Class (Spring Break) | ||
16 | T | 15 Mar | Mutation and State | Chapter 18, 5.5 | Lecture 16 |
Recitation | W | 16 Mar | Arrays and mutable state. | ||
17 | R | 17 Mar | Ephemeral Data Structures | as in previous lecture | Lecture 17 |
18 | T | 22 Mar | Streams, Demand-Driven Computation | Chapter 14 | Lecture 18 |
- | W | 23 Mar | Assignment 4 due | Solution 4 | |
Recitation | W | 23 Mar | Operations on streams; Sequences and flip-flops. | ||
19 | R | 24 Mar | Streams, Laziness and Memoization | Lecture 19 | |
20 | T | 29 Mar | Lexical Analysis & Grammars | also look at next lecture | Lecture 20 |
Recitation | W | 30 Mar | Languages | ||
21 | R | 31 Mar | Grammars & Parsing | also look at next lecture | Lecture 21 |
22 | T | 5 Apr | Evaluation, Interpreters, and Recursion | see code for lectures 23&24 | Lecture 22 |
- | W | 6 Apr | Assignment 5 due | Solution 5 | |
Recitation | W | 6 Apr | TBA | ||
23 | R | 7 Apr | Language Properties | Lecture 23 | |
24 | T | 12 Apr | Interpreters and Recursion | Lecture 24 | |
Recitation | W | 13 Apr | TBA | ||
- | R | 14 Apr | No Class (Spring Carnival Break) | ||
25 | T | 19 Apr | Computability, Part I | see Notes | Lecture 25 |
Recitation | W | 20 Apr | Decidability, tractability, and tiling. | ||
26 | R | 21 Apr | Computability, Part II | see lecture 25 material | none |
- | F | 22 Apr, 5pm | Assignment 6 due | Solution 6 | |
27 | T | 26 Apr | Review for the FINAL | ||
Recitation | W | 27 Apr | Review for the FINAL | ||
28 | R | 28 Apr | Categories, Topology, and Adversarial Games | ||
- | M | 2 May | Final sample solution |
Legend: T=Tuesday, W=Wednesday, R=Thursday.
[ CS 15-212 Home page | schedule | language | assignments | handouts | hints etc ]