This calendar provides the lecture topics for the course, along with links to corresponding lecture notes, problem sets, and quizzes. The pH Book reading assignments refer to the required textbook for the course:
Nikhil, Rishiyur S., and Arvind. Implicit Parallel Programming in pH. 1st ed. Boston, MA: Morgan-Kaufmann, 2001. ISBN: 1558606440.
LEC # | Topics | Readings | Due |
---|---|---|---|
Part I: Programming in pH and the ג-calculus | |||
1 | Expressing Parallel Computation |
pH Book, Chapter 1 |
|
2 | Implicitly Parallel Multithreaded Programming |
pH Book, Chapter 2 Hudak, A Gentle Intro to Haskell |
|
3 | The Lambda Calculus |
pH Book, Appendix A |
|
4 | The Lambda Calculus with Constants and Let Bindings, Part I |
pH Book, Chapter 4 |
|
5 | The Lambda Calculus with Constants and Let Bindings, Part II |
pH Book, Chapter 4 |
|
6 | Hindley Milner Type System |
Cardelli, Simple Polymorphic Typechecking |
PS 1 Due |
7 | Polymorphism and Overloading |
pH Book, Chapter 3 |
|
8 | Algebraic Types: Tuples and Lists |
pH Book, Chapter 5 |
|
9 | Pattern Matching and List Comprehensions |
pH Book, Chapter 6 |
|
10 | Arrays and Abstract Types |
pH Book, Chapter 7 |
|
11 | I-Structures and Open Lists |
pH Book, Chapter 9 |
PS 2 Due |
Midterm Quiz | |||
Part II: I/O, Side-effects and Nondeterminism | |||
12 | M-Structures, Part I |
pH Book, Chapter 10 |
|
13 | M-Structures, Part II |
pH Book, Appendix B |
|
14 | The Lambda-S Calculus with Side Effects |
TBD |
PS 3 Due |
15 | Monads and Monadic I/O, Part I |
pH Book, Chapter 8 Wadler, How to Declare an Imperative |
|
16 | Monads and Monadic I/O, Part II | ||
Part III: BlueSpec | |||
17 | Bluespec 1: A Language for Hardware Design, Simulation and Synthesis | PS 4 Due | |
18 | Bluespec 2: Compilation Model & Intro to Programming | ||
19 | Bluespec 3: The IP Lookup Problem | ||
20 | Bluespec 4: Modules and Type Classes | ||
21 | Bluespec 5 | ||
Miscellaneous Topics | |||
Bluespec Discussion (no notes) | |||
22 | Term Rewriting Systems, Part I | ||
23 | Term Rewriting Systems, Part II | ||
Project Presentations | |||
Project Write-Ups Due |