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

Note that this schedule is subject to change during the semester.
Supplementary readings are from: Lawrence C. Paulson, * ML for the Working
Programmer*, **2nd edition**, Cambridge University Press,
1996. **Notes** include references to the on-line introduction
*Programming in
Standard ML* by Robert Harper.

Date | Topic | Supplementary Reading | Notes | Code |
---|---|---|---|---|

25 Aug | Evaluation & Typing | 2.1-2.6, 2.11-2.12, evaluation.ps | Lecture 1 | lecture01.sml |

27 Aug | Binding, Scope, Functions | 2.14-2.16, 2.20-2.22 | Lecture 2 | lecture02.sml |

1 Sep | Recursion & Induction | 6.1-6.3, induction.ps | Lecture 3 | lecture03.sml |

3 Sep | Datatypes & Patterns | 2.7-2.8, 4.1-4.4 | Lecture 4 | lecture04.sml |

8 Sep | Tail Recursion, Structural Induction | 3.1-3.6, 6.4-6.5, structural.ps | Lecture 5 | lecture05.sml |

9 Sep | Assignment 1 due |
Proofs | Solution 1 | |

10 Sep | Data Structures | 4.10-4.13, 7.1-7.6 | Lecture 6 | lecture06.sml |

15 Sep | Representation Invariants | 4.14-4.16 | Lecture 7 | lecture07.sml |

17 Sep | Continuations | continuations.ps | Lecture 8 | lecture08.sml |

22 Sep | Regular Expressions | 5.1-5.11, regexp.ps | Lecture 9 | lecture09.sml |

23 Sep | Assignment 2 due |
Proofs | Solution 2 | |

24 Sep | Exceptions | 4.5-4.9 | Lecture 10 | lecture10.sml |

29 Sep | Review |
|||

1 Oct | Midterm (in class) |
|||

6 Oct | Modularity: Signatures and Functors | 7.7-7.11 | Lecture 12 | lecture12.sml |

7 Oct | Assignment 3 due |
Solution 3 | ||

8 Oct | Game Tree Search | Lecture 13 | lecture13.sml | |

13 Oct | References and State | 8.1-8.3 mutable.ps | Lecture 14 | lecture14.sml |

15 Oct | Ephemeral Data Structures | 8.4-8.6 | Lecture 15 | lecture15.sml |

20 Oct | Lazy Evaluation and Streams | 5.12-5.16 | Lecture 16 | lecture16.sml |

21 Oct | Assignment
4 due |
Solution 4 | ||

22 Oct | Streams, Laziness and Memoization | 5.12-5.16 | Lecture 17 | lecture17.sml |

27 Oct | Lexical Analysis | 9.1 | Lecture 18 | lecture18.sml |

29 Oct | Grammars and Parsing | 9.2-9.3 parsing.ps | Lecture 19 | lecture19.sml |

3 Nov | Interpreters | 9.10-9.13 | Lecture 20 | lecture20.sml |

5 Nov | Type Checking | interpret.ps | Lecture 21 | lecture21.sml |

10 Nov | Assignment 5 due |
Solution 5 | ||

10-12 Nov | Operational Semantics and Recursion | interpret.ps | Lecture 22 | lecture22.sml |

17-19 Nov | Computability | computability.ps | Lecture 24 | lecture24.sml |

24 Nov | Assignment 6 due |
|||

24 Nov | Systems Programming | FoxNet Home Page | ||

26 Nov | No Class (Thanksgiving) |
|||

1-3 Dec | Concurrency | Lecture 27 | lecture27.sml | |

8 Dec | Final, 8:30-11:30am, Porter Hall 100 |

Frank Pfenning fp@cs