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