CSC375
Instructor: Doug Lea
Class: T-Th 8:00
Office/Lab hours: XXXX (TBA)
Overview
Parallel computing was once confined to the use of specially crafted
parallel computers. However, increasingly, the two essential
ingredients of parallelism -- concurrency (programming
constructs that deal with logically parallel avtivities) and
distribution (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.
Textbooks
- Herlihy, Maurice and Nir Shavit, The Art of Multiprocessor
Programming, Morgan Kaufmann 2008. ISBN-13: 978-0123705914.
See also
book companion site.
- Goetz, Brian, et al. Java Concurrency in Practice.,
Addison-Wesley 2006. ISBN-13: 978-0321349606.
See also Book supplement site.
Requirements
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.
- Assignment 1
- Assignment 2
- Assignment 3/4
Useful Links
Doug Lea