## CS 15-212: Fundamental Principles of Computer Science II |

Supplementary readings are from:
Lawrence C. Paulson, * ML for the
Working Programmer*,
**2nd edition**, Cambridge University Press, 1996.

Date | Topic | Supplementary Reading | Code |

27 Aug | Evaluation & Typing | 2.1-2.6, 2.11-2.12 | lecture01.sml |

29 Aug | Binding, Scope, Functions | 2.14-2.16, 2.20-2.22 | lecture02.sml |

3 Sep | Recursion & Induction | 6.1-6.3 | lecture03.sml |

5 Sep | Products, Datatypes, Patterns | 2.7-2.8, 4.1-4.4 | lecture04.sml |

10 Sep | Tail Recursion, Structural Induction | 6.4-6.5 | lecture05.sml |

11 Sep | Assignment 1 due |
Solution 1 | |

12 Sep | Data Structures | 3.1-3.6, 4.10-4.13 | lecture06.sml |

17 Sep | Representation Invariants | 4.14-4.16 | lecture07.sml |

19 Sep | Regular Expressions | none | lecture08.sml |

24 Sep | Higher-Order Functions, Continuations | 5.1-5.11 | lecture09.sml |

25 Sep | Assignment 2 due |
Solution 2 | |

26 Sep | Exceptions | 4.5-4.9 | lecture10.sml |

1 Oct | Review |
lecture11.sml | |

3 Oct | Midterm |
Sample Solution | |

8 Oct | Modularity: Signatures and Functors | 7.7-7.11 | lecture12.sml |

9 Oct | Assignment 3 due |
Solution 3 | |

10 Oct | Game Tree Search | None | lecture13.sml |

15 Oct | A Concrete Game | None | lecture14.sml |

17 Oct | Mutation and State | 8.1-8.3 | lecture15.sml |

22 Oct | Games Revisited | 5.17-5.20 | lecture16.sml |

24 Oct | Streams, Demand-Driven Computation | 5.12-5.16 | lecture17.sml |

25 Oct | Assignment
4 due (Note Extension) |
Solution 4 | |

29 Oct | Streams, Laziness and Memoization | 5.12-5.16 | lecture18.sml |

31 Oct | Lexical Analysis | 9.1 | lecture19.sml |

5 Nov | Grammars and Parsing | 9.2-9.3 | lecture20.sml |

6 Nov | Assignment 5
due |
Solution 5 | |

7 Nov | Interpreters | 9.10-9.13 | lecture21.sml |

12 Nov | Type Checking | None | lecture22.sml |

14 Nov | Operational Semantics and Recursion | Related Notes | lecture23.sml |

19 Nov | Computability | computability.ps | lecture24.sml |

21 Nov | Computability | computability.ps | lecture25.sml |

26 Nov | Assignment 6 due |
Solution 6 | |

26 Nov | Systems Programming (Foxnet) | LFP'94 Paper | Foxnet Code |

28 Nov | No Class (Thanksgiving) |
||

3 Dec | Scheme | Scheme Home Page | lecture27.sml |

5 Dec | Review |
lecture28.sml | |

17 Dec | Final , 8:30am-11:30am, MM 103 |
Sample Solution |

Carsten Schuermann (carsten@cs.cmu.edu)

Iliano Cervesato (iliano@cs.cmu.edu)