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