# Lecture Notes

The notes linked below are required reading, but they are not a substitute for attending lecture and recitation. The lectures and recitation sections are tightly coupled: Lectures will assume knowledge from previous sections, and vice-versa. These notes should be read sequentially (Monday's section, Tuesday's lecture, Wednesday's section, Thursday's lecture, etc.).

Lecture topics and assignment due dates are subject to change.

DATE | EVENT | TOPIC | LINKS |
---|---|---|---|

01/28 | Lecture 1 | Introduction to OCaml syntax and evaluation | [Notes] [Textbook] |

02/02 | Lecture 2 | OCaml Syntax and Semantics | [Notes] [Resource 1] [Resource 2] [Resource 3] |

02/04 | Lecture 3 | The OCaml Type System | [Notes] |

02/05 | PS1 due at 11:59PM Friday, February 12 | [PS1] [Release code] | |

02/09 | Lecture 4 | OCaml Type System Continued -- Partial types | [Notes] |

02/11 | Lecture 5 | Modules for Rational Numbers | [Notes] |

02/17 | PS2 due at 11:59PM Thursday, March 3 | [PS2] [Release code] | |

02/18 | Lecture 6 | Modules | [Notes] |

02/23 | Lecture 7 | OCaml Type Theory | [Notes] |

02/25 | Lecture 8 | OCaml Type Theory Continued | [Notes] |

03/01 | Lecture 9 | Specifications | [Notes] |

03/03 | Lecture 10 | Guest Lecture by Abhishek Anand on Cyber-Physical Systems | [Notes] |

03/04 | PS3 due at 11:59PM Thursday, March 24 | [PS3] [Release code] | |

03/08 | Lecture 11 | Introduction to the Constructive Reals | [Notes] [Bishop book] |

03/10 | Lecture 12 | Developing Constructive Analysis | [Notes] |

03/15 | Lecture 13 | Developing Constructive Analysis Continued | [Notes] |

03/17 | Prelim 1 held in class. | ||

03/22 | Lecture 14 | Specifications, Computational Evidence, and Cantors Theorem from Bishop | [Notes] |

03/24 | Lecture 15 | Guest Lecture by Mark Bickford: Calculus in OCaml | [Notes] |

03/29 | PS4 due at 11:59PM Thursday, April 14 | [PS4] [Release code] | |

04/05 | Lecture 16 | Computational Geometry | [Notes] |

04/07 | Lecture 17 | Computational Geometry Continued | [Notes] |

04/12 | Lecture 18 | Binary Search Trees | [Notes] |

04/14 | Lecture 19 | Binary Search Tree Theory | [Notes] |

04/15 | PS5 due at 11:59PM Thursday, April 28 | [PS5] [Release code] | |

04/19 | Lecture 20 | Fixed Point Operators | [Notes] |

04/21 | Lecture 21 | Elements of Type Theory | [Notes] |

04/26 | Lecture 22 | Distributed Computing with Functional Processes | [Notes] |

04/28 | Lecture 23 | Distributed Computing with Functional Processes Continued | [Notes] |

04/29 | PS6 due at 11:59PM Wednesday, May 11 | [PS6] [Release code] | |

05/03 | Lecture 24 | Guest Lecture by Yaron Minsky from Jane Street | |

05/05 | Lecture 25 | Event Logic | [Notes] |

05/10 | Lecture 26 | Course Overview | [Notes] |

05/17 | Final Exam 9:00-11:00am, Uris G01. |