Comp 50CP:
Concurrent Programming


In the real world, there are many events whose relative timing is unconstrained. They may even be simultaneous. For example, you and I may both have lunch indepedently; we may eat at the same time, but we may also eat one before the other; our lunch times may overlap or not. We call such events concurrent.

Concurrent programming is an essential skill for a modern computing professional, because the world is concurrent, because computer systems include multiple physical entities, because modern computing environments include distributed components (on multiple, different computers), and because of the rise of multicore processors whose individual cores are no longer getting exponentially faster.

This course poses the questions:

Specifically, by taking this course, a student will:

There may be some exposure to other programming models, especially data parallelism, if there is time and interest.

Prerequisite: Comp 15, spirit of adventure, sense of humor.

Mark A. Sheldon (
Last Modified 2019-May-23