1. | 1/13 | Concurrent programming concepts; overview of course |
2. | 1/18 | Techniques for parallelizing programs |
3. | 1/20 | Synchronization, atomic actions, await statements |
4. | 1/25 | Pthreads library and MPD language |
5. | 1/27 | Formal semantics; avoiding interference; properties |
6. | 2/1 | Critical sections: spin locks |
7. | 2/3 | Critical sections: efficient locks; fair solutions; wait-free synchronization |
8. | 2/8 | Parallel programming; bag of tasks paradigm |
9. | 2/10 | Semaphores: basic concepts and uses |
10. | 2/15 | Semaphores: the method of passing the baton |
11. | 2/17 | Semaphores: scheduling; use in Pthreads |
12. | 2/22 | Parallel scientific computing |
13. | 2/24 | Barrier synchronization |
14. | 3/1 | Multiprocessor implementations; review for exam |
15. | 3/3 | EXAMINATION 1 |
16. | 3/8 | Monitors: basic concepts |
17. | 3/10 | Monitors: synchronization techniques |
--- | Spring Break | |
18. | 3/22 | Monitors: programming in the large; tools |
19. | 3/24 | Message passing: basic concepts and examples |
20. | 3/29 | Message passing: clients and servers |
21. | 3/31 | Message passing: interacting peers |
22. | 4/5 | Message passing in Java, MPD, and MPI |
23. | 4/7 | Remote operations: RPC and rendezvous |
24. | 4/12 | Remote operations: tools; implementation; Java RMI |
25. | 4/14 | Programming distributed systems |
26. | 4/19 | Peer-to-Peer computing |
27. | 4/21 | Broadcast algorithms; token-passing algorithms |
28. | 4/26 | Distributed parallel programming; review for exam |
29. | 4/28 | EXAMINATION 2 |
30. | 5/3 | Summary; hot topics and coming attractions |
Homework sets (4) | -- 40 points each, 40% of grade |
Projects (2) | -- 60 points each, 30% of grade |
Examinations (2) | -- 60 points each, 30% of grade |
The total for all assignments and exams is 400 points. Your final grade will be determined by how well you do. If you get at least 90% of the possible points, you will get an A; if you get at least 80% you will get a B; and so on. The final lines might be drawn slightly below these levels.
Homework 1 | assign 1/25 | due 2/8 |
Homework 2 | assign 2/10 | due 2/22 |
Parallel Project | assign 2/22 | due 3/10 (programs) and 3/29 (report) |
Examination 1 | Thursday, March 3 | |
Homework 3 | assign 3/31 | due 4/12 |
Homework 4 | assign 4/14 | due 4/26 |
Distributed Project | assign 4/14 | due 4/19 (proposal) and 5/10 (demo or paper) |
Examination 2 | Thursday, April 28 |
You may discuss the meanings of problems with classmates, but you must develop your own answers and programs. All work that you turn in must be your own. The one exception is that you will be allowed to work with one other classmate on the two projects. If in doubt, refer to the University's "Code of Academic Integrity" or ask the instructor.
Assignments must be turned in during class on the dates they are due, unless you have received permission in advance for an extension. Examinations must be taken in class on the date they are given, unless you have received permission in advance.
Email. See the instructor or send him email when you have questions about the lectures, homework assignments, grading etc. See the TA or send him email when you have questions about homework grading.
Newsgroup. The class newsgroup is cs.course422. Subscribe to it now. You may use it to post general questions about assignments. We will use it to post answers, updates on assignments, etc.
Class Directory. The home directory for the class is /home/cs422. Copies of handouts, programs, and other information are stored there.
Class Web Page. The home page for the class contains course-related information, including links to this syllabus, information on hardware and software tools, and copies of all assignments. The URL is
http://www.cs.arizona.edu/classes/cs422/spring05/
Book Web Page. The home page for the textbook contains lots of information that you might find useful, including source code for all the programs in case study sections. There is a link on the class home page. The URL is
http://www.cs.arizona.edu/people/greg/mpdbook