15-212: Principles of Programming

Schedule

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 ]


Michael Erdmann