The first time I used the published version of the book was in my Spring 2000 class at The University of Arizona. The preface of the book describes how my class fits into our curriculum at Arizona. More information and additional ways to use the book are also available.
The syllabus for the Spring 2000 class follows. It includes links to my notes for each lecture.
The class met two times a week for a semester; each lecture and examination was 75 minutes long. I generally present new material on the board and use transparencies for larger examples that illustrate the use of new material. The transparencies are figures from the book or other programs that I hand out and place in the class directory.
You might also wish to visit the
homepage
for my Arizona class.
It contains the syllabus, homework assignments,
projects, and exams for the most recent offering of the class.
Be forewarned, however, that it evolves each spring as I teach
the class.
Spring Semester, 2000
1. | Concurrent programming concepts; overview of course |
2. | Introduction to the SR programming language |
3. | Concurrent programming in SR |
4. | Techniques for parallelizing programs |
5. | Synchronization, atomic actions, and await statements |
6. | Semantics of concurrent programs; ways to avoid interference |
7. | Safety and liveness properties; Critical sections: spin locks |
8. | Critical sections: efficient spin locks; fair solutions |
9. | Parallel programming concepts; bag of tasks paradigm; Pthreads library |
10. | Barriers: counter, coordinator, combining tree |
11. | Symmetric barriers; data parallel algorithms |
12. | Parallel scientific computing |
13. | Semaphores: mutual exclusion, signaling, split binary, resource counting |
14. | Semaphores: dining philosophers, readers/writers |
15. | Semaphores: passing the baton, resource allocation and scheduling |
16. | Implementations: kernels, multiprocessors; review for midterm |
17. | MIDTERM 1 |
--- | Spring Break |
18. | Monitors: basic concepts, signaling disciplines |
19. | Monitors: synchronization techniques |
20. | Monitors: larger examples; use in Java, Pthreads, and SR |
21. | Message passing: basic concepts and examples |
22. | Message passing: clients and servers |
23. | Message passing: file servers, interacting peers |
24. | Message passing in SR, MPI, and Java; manager/workers paradigm; Linda |
25. | Distributed parallel programming: heartbeat algorithms; pipeline algorithms |
26. | Remote operations; RPC; Java RMI |
27. | Rendezvous; full SR language; distributed readers and writers |
28. | Distributed programming: replicated files, dining philosophers, distributed file systems |
29. | MIDTERM 2 |
30. | Review of key concepts; distributed programming paradigms |
The total for all assignments and exams is 360 points for undergrads, 430 points for honors students, and 510 points for graduate students.
Your final grade will be determined by how well you do relative to your peer group. 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 somewhat below these levels.
Homework 1a | assign 1/20 | due 2/1 |
Homework 1b | assign 1/27 | due 2/8 |
Homework 2 | assign 2/10 | due 2/22 |
Parallel Project | assign 2/22 | due 3/7 (programs) and 3/23 (reports) |
Homework 3 | assign 3/23 | due 4/4 |
Homework 4 | assign 4/6 | due 4/18 |
Distributed Project | assign 4/13 | due 4/20 (proposal) and 5/9 (demo or paper) |
Copies of these are available online.
You are responsible for all material covered in lectures.
You may discuss assignments with classmates, but all work you turn in must be your own. 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.
If you do not already have an account on Lectura, apply for one immediately. Later in the term you will be given accounts on parallel and distributed machines.
Email. Send email to (or see) the instructor when you have questions about the lectures, homework assignments, grading etc. We will later establish a class-wide email list so that we can quickly communicate with all of you.
Home Directory. The home directory for the class is /home/cs522. Copies of handouts, programs, and other information will be stored there.
Home Web Page. The home page for the class contains course-related information, including links to information on SR and links to Postscript copies of all assignments. It is reachable by either of the following URLs:
http://www.cs.arizona.edu/classes/cs422/ http://www.cs.arizona.edu/classes/cs522/