| Date | Topics | Reading | Due dates |
|---|---|---|---|
| January 14 (Th) | No class | ||
| January 19 (T) | About the course (Notes) | ||
| January 21 (Th) | Overview of hardware, programming models (Notes) | 1 (skim), 2.1 through 2.7 | |
| January 26 (T) | Overview of application development; multithreaded programming and OpenMP (Notes) | A.1 through A.8 | |
| January 28 (Th) | Multithreaded programming and OpenMP, continued (Notes) | ||
| February 2 (T) | Message passing and MPI (Notes) | B.1 through B.7 | |
| February 4 (Th) | Multithreaded programming and Java (Notes) | C.1 through C.7 | Homework 1 (OpenMP program) |
| February 9 (T) | No class | ||
| February 11 (Th) | No class | ||
| February 16 (T) | Multithreaded programming and Java, continued; more about message passing and MPI (Notes) | Homework 1 (MPI program) | |
| February 18 (Th) | Design patterns; overview of pattern language; example applications (Notes) | 4.3 | Homework 1 (Java program) |
| February 23 (T) | Homework 1 revisited (Notes) | ||
| February 25 (Th) | Finding Concurrency patterns (Notes) | 3.1 through 3.8 | |
| March 2 (T) | No class | ||
| March 4 (Th) | Finding Concurrency patterns, continued (Notes) | ||
| March 9 (T) | Algorithm Structure patterns (Notes) | 4.1 through 4.9 | |
| March 11 (Th) | Supporting Structures patterns (Notes) | 5.1 through 5.7 | |
| March 16 (T) | Spring break | ||
| March 18 (Th) | Spring break | ||
| March 23 (T) | No class | ||
| March 25 (Th) | Supporting Structures patterns, continued (Notes) | 5.8 through 5.11 | Homework 2 |
| March 30 (T) | Example application(s) (Notes) | ||
| April 1 (Th) | Example application(s), continued (Notes) | ||
| April 6 (T) | Example applications, continued (Notes) | ||
| April 8 (Th) | Example applications, continued (Notes) | Homework 3 | |
| April 13 (T) | Example applications, continued (Notes) | ||
| April 15 (Th) | Example applications, continued (Notes) | ||
| April 20 (T) | Implementation Mechanisms (Notes) | 6 | |
| April 22 (Th) | Multithreaded programming with POSIX threads (Notes) | Homework 4 | |
| April 27 (T) | Distributed-memory programming in Java (Notes) | ||
| April 29 (Th) | Course wrap-up and evaluations (Notes) | Project proposal | |
| May 8 (Sa), noon | Project presentations | Project presentation, report, and code |