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 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 ]


Michael Erdmann