Instructor: Doug Lea
Class: T-Th 8:00
Office/Lab hours. Normally M-F 11-12


Parallel computing was once confined to the use of specially crafted parallel computers. However, increasingly, the two essential ingredients of parallelism -- programming constructs that deal with logically parallel activities, and communication across physically separate computers, are available just about everywhere. This course will mainly focus on concepts, theory, design, and implementation of concurrent and distributed software that can be employed across a variety of platforms (in particular, using Java). However, we will also discuss some classic parallel algorithms that apply only to special parallel computers.

See also the CS and College course policies and resources.


The course does not follow these books in sequence, but they provide additional background and coverage that will be assigned as needed.


Subject to minor change:
Two exams (40%)
The second one during finals period
Class participation (20%)
Especially during the first half of the course, we will do many in-class programming exercises, with students showing sample solutions and discussing alternatives.
4 programming assignments (40%)
Programs may not be submitted unless they successfully run according to specification. You must demo your program to me within 2 days of submitting it. Five percent credit is taken off per day late.
  1. Assignment 1
  2. Assignment 2
  3. Assignment 3
  4. Assignment 3B

If you have a disabling condition, which may interfere with your ability to successfully complete this course, please contact the Office of Disability Services.

SUNY Oswego is committed to Intellectual Integrity. Any form of intellectual dishonesty is a serious concern and therefore prohibited. The full policy can be found at

Doug Lea