| Week | Material |
| 8/23-8/26 | Preliminaries. Overview of Parallel Computing. |
| 8/29-9/2 | Basic C. Functions in C. |
| Homework 1 due Friday, 9/2. |
| 9/6-9/9 | Pointers and arrays in C. |
| Homework 2 due Friday, 9/9. |
| 9/12-9/16 | The preprocessor, strings and structs in C. |
| Program 1 due Wednesday, 9/14. |
| Homework 3 due Friday, 9/16. |
| 9/19-9/23 | Dynamic memory allocation and linked lists in C. |
| Homework 4 due Friday, 9/23. |
| 9/26-9/30 | Basic MPI and the cluster. |
| Homework 5 due Friday, 9/30. |
| 10/3-10/7 | Basic I/O in distributed memory programs. |
| Program 2 due Monday, 10/3. |
| Midterm 1, Wednesday, 10/5. |
| 10/12-10/14 | Collective communication in MPI. Bitwise operations in C. |
| Homework 6 due Friday, 10/14. |
| 10/17-10/21 | More collective communications. |
| Homework 7 due Friday, 10/21. |
| 10/24-10/28 | Two-dimensional arrays in C. Data distributions. |
| Program 3 due Wednesday, 10/26. |
| Homework 8 due Friday, 10/28. |
| 10/31-11/4 | Sorting on distributed memory systems. Basic Pthreads. |
| Homework 9 due Friday, 11/4. |
| 11/7-11/11 | Critical sections, mutexes and semaphores. |
| Homework 10 due Friday, 11/11. |
| 11/14-11/18 | Cache Coherence. |
| Program 4 due Monday, 11/14. |
| Midterm 2, Friday, 11/18. |
| 11/21-11/23 | Tree search and TSP. |
| 11/28-12/2 | Barriers, condition variables and thread safety. |
| Homework 11 due Friday, 12/2. |
| 12/5-12/7 | CUDA. |
| Program 5 due Monday, 12/5. |
| Homework 12 due Wednesday, 12/7. |