Skip to main content



Schedule

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
Introduction to Functional Programming
Week 1
08/26/14 Lecture 1 Introduction to CS 3110 [Slides] [Code
08/26/14 PS 0 issued [PS 0
08/26/14 OCaml demo session, 7:30–9:30PM, Upson B7
08/27/14 Recitation 1 Introduction to OCaml syntax [Notes
08/27/14 OCaml demo session, 7:30–9:30PM, Phillips 318
08/28/14 Lecture 2 Introduction to OCaml semantics [Slides] [Notes
08/28/14 OCaml demo session, 7:30–9:30PM, Upson B7
Week 2
09/01/14 No class: Labor Day
09/02/14 Lecture 3 Functions and data [Slides] [Notes] [Code
09/03/14 Recitation 2 Testing and debugging [Notes
09/04/14 Lecture 4 Lists and more data [Slides] [Notes] [Code
09/04/14 PS 1 issued [PS 1
Week 3
09/08/14 Recitation 3 Higher-order functions [Notes
09/09/14 Lecture 5 Pattern matching [Slides] [Notes] [Code
09/10/14 Recitation 4 Datatypes review [Notes
09/11/14 Lecture 6 Map and fold [Slides] [Notes] [Code
09/11/14 PS 1 due [PS 1
09/11/14 PS 2 issued [PS 2
Week 4
09/15/14 Recitation 5 Folding and tail recursion [Notes
09/16/14 Lecture 7 The dynamic environment [Slides
09/17/14 Recitation 6 PS1 discussion [Git tutorial
09/18/14 Lecture 8 Closures [Slides
09/18/14 PS 2 due [PS 2
Week 5
09/22/14 Recitation 7 Examples of evaluation [Notes
Modular Programming
09/23/14 Lecture 9 Modules [Slides] [Notes
09/23/14 PS 3 issued [PS 3
09/24/14 Recitation 8 Functional data structures [Notes] [Code
09/25/14 Lecture 10 Functors [Slides] [Notes] [Code
Week 6
09/29/14 Recitation 9 Examples of functors [Notes
09/30/14 Lecture 11 Documenting abstractions [Slides] [Notes
10/01/14 Recitation 10 Red–black trees [Notes
10/02/14 Lecture 12 Imperative features [Slides] [Notes
10/02/14 PS 3 due [PS 3
Week 7
10/06/14 Recitation 11 Functional arrays [Notes
10/07/14 Lecture 13 Hash tables [Slides] [Notes
10/08/14 Recitation 12 Prelim 1 review
10/09/14 No class: Study for Prelim 1
10/09/14 Prelim 1, 5:30–7:00 pm and 7:30pm–9:00 pm, Phillips 101 and 203, and Upson B17
10/09/14 PS 4 issued [PS 4
Week 8
10/13/14 No class: Fall Break
10/14/14 No class: Fall Break
10/15/14 Recitation 13 Prelim 1 discussion, PS4 overview
Advanced Topics in Functional Programming
10/16/14 Lecture 14 Static vs. dynamic typing [Slides
Week 9
10/20/14 No class: Recitation cancelled
10/21/14 Lecture 15 Concurrency (Prof. Foster) [Notes
10/22/14 Recitation 14 Programming in Async [Notes
10/23/14 Lecture 16 Advanced Async (Prof. Foster) [Slides] [Notes] [Code
10/23/14 PS 4 due [PS 4
10/24/14 PS 5 issued [PS 5
Week 10
10/27/14 Recitation 15 Socket programming in Async [Notes
10/28/14 Lecture 17 Dependent types (Prof. Constable) [Notes
Reasoning about Correctness
10/29/14 Recitation 16 Assurance [Notes
10/30/14 Lecture 18 Verification [Slides] [Notes
Week 11
11/03/14 Recitation 17 Examples of verification [Notes
11/04/14 Lecture 19 Logic [Slides] [Notes
11/05/14 Recitation 18 Examples of proof [Notes
11/06/14 Lecture 20 Effective OCaml (Dr. Minsky)
Week 12
11/10/14 No class: Recitation cancelled
11/11/14 Lecture 21 Logic, part 2 [Slides] [Notes] [Proof rules
11/12/14 Recitation 19 More examples of proof [Notes
11/13/14 Lecture 22 Mechanized logic in Coq [Slides] [Notes] [Code
11/13/14 PS 5 due [PS 5
11/14/14 PS 6 issued [PS 6
Week 13
11/17/14 Recitation 20 PS 6 overview [PS 6
11/18/14 Lecture 23 Formal verification in Coq [Slides] [Notes] [Code
11/19/14 Recitation 21 Prelim 2 review
11/20/14 No class: Study for Prelim 2
11/20/14 Prelim 2, 5:30–7:00 pm and 7:30pm–9:00 pm, Olin 155, 165, and 255
11/20/14 Optional PS 7 issued [PS 7
Week 14
11/24/14 Recitation 22 Prelim 2 discussion
Reasoning about Performance
11/25/14 Lecture 24 Efficiency [Slides] [Notes
11/26/14 No class: Thanksgiving Break
11/27/14 No class: Thanksgiving Break
Week 15
11/24/14 Recitation 23 Recurrences [Notes
11/25/14 Lecture 25 Amortized analysis [Slides] [Notes] [Code
11/24/14 Recitation 24 Recurrences, part 2 [Notes
THE END
11/25/14 Lecture 26 Victory lap [Slides
12/04/14 PS 6 due [PS 6
12/06/14 3110 Tournament, 5:00 pm, Gates G01
Finals
12/11/14 Optional PS 7 due [PS 7
12/16/14 Final, 9:00–11:30 am, Olin 155, 245, and 255