15-212: Principles of Programming

Schedule

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 ]


Michael Erdmann