| Date |
Lecture Description |
Handouts |
Reading |
Remarks |
|
Part I: Programming in pH and the
l-calculus
|
Wed
September 4 |
Lecture 1 - Expressing Parallel Computation |
|
|
|
Mon
September 9 |
Lecture 2 - Implicitly
Parallel Multithreaded Programming |
|
|
|
Wed
September 11 |
Lecture 3 - The
Lambda Calculus |
|
|
|
Mon
September 16 |
Lecture 4 - The
Lambda Calculus with Constants and Let Bindings, Part I |
|
|
|
Wed
September 18 |
Lecture 5 - The
Lambda Calculus with Constants and Let Bindings, Part II |
|
|
|
Mon
September 23 |
Student
Holiday |
Wed
September 25 |
Lecture 6 - Hindley
Milner Type System |
|
- Cardelli, Simple Polymorphic Typechecking
|
PS 1 Due
|
Mon
September 30 |
Lecture 7 - Polymorphism and Overloading |
|
|
|
Wed
October 2 |
Lecture 8 - Algebraic
Types: Tuples and Lists |
|
|
|
Mon
October 7 |
Lecture 9 - Pattern
Matching and List Comprehensions |
|
|
|
Wed
October 9 |
Lecture 10 - Arrays
and Abstract Types |
|
|
|
Mon
October 14 |
Columbus
Day |
Wed
October 16 |
Lecture 11 - I-Structures
and Open Lists |
|
|
PS 2 Due |
Mon
October 21 |
Midterm Quiz |
|
|
|
|
Part II: I/O, Side-effects and Nondeterminism
|
Wed
October 23 |
Lecture 12 - M-Structures,
Part I |
|
|
|
Mon
October 28 |
Lecture 13 - M-Structures,
Part II |
|
|
|
Wed
October 30 |
Lecture 14 - The
Lambda-S Calculus with Side Effects |
|
|
PS 3 Due |
Mon
November 4 |
Lecture 15 - Monads
and Monadic I/O, Part I |
|
- pH Book,
Chapter 8
- Wadler, How to Declare an Imperative
|
|
Wed
November 6 |
Lecture 16 - Monads
and Monadic I/O, Part II
|
|
|
|
Mon
November 11 |
Veterans'
Day |
|
Part III: BlueSpec
|
Wed
November 13 |
Lecture 17 - Bluespec
1: A Language for Hardware Design, Simulation and Synthesis |
|
|
PS 4 Due |
Mon
November 18 |
Lecture 18 - Bluespec
2: Compilation Model & Intro to Programming |
|
|
|
Tue
November 19 |
Lecture 19 - Bluespec
3: The IP Lookup Problem |
|
|
|
Wed
November 20 |
Lecture 20 - Bluespec
4: Modules and Type Classes |
|
|
|
Thu
November 21 |
Lecture 21 - Bluespec
5 |
|
|
|
|
Miscellaneous Topics
|
Mon
November 25 |
Bluespec Discussion
(no notes) |
|
- Hughes, Compile-time Analysis
and Abstract Interpretation
- Marriott, Frameworks for Abstract
Interpretation
|
|
Wed
November 27 |
No
Class
|
|
|
|
Mon
December 2 |
Lecture 22 - Term Rewriting Systems, Part I
|
|
|
|
Wed
December 4
|
Lecture 23 - Term Rewriting Systems, Part II
|
|
|
|
Mon
December 9
|
No Class
|
|
|
|
Wed
December 11 |
Project Presentations |
|
|
|
Fri
December 13
|
Project Write-Ups
Due at 5PM
|
|
|
No extensions!
|