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