CSc 422: Introduction to Parallel and Distributed Programming

Spring 2026  ·  University of Arizona  ·  David K. Lowenthal

Basic Info Lectures & Examples Due Dates Grading Topics Reading Communications Academic Integrity Full Syllabus (original)
Course Description

Concepts and applications of parallel and distributed programs. Process interaction using shared variables and message passing; parallel computing; development of correct programs; general problem solving techniques; scientific computing; distributed systems. Programming assignments on multiple processor machines.

Prerequisites: CSc 252, 345, and 352

Open D2L Course Site →
Topics Covered
  • Writing parallel programs
  • Shared-memory synchronization: critical sections, locks, semaphores, monitors, barriers
  • Distributed-memory communication: message passing, rendezvous
  • Shared- and distributed-memory programming paradigms
  • Applications: peer-to-peer computing, map/reduce, data-parallel computing
  • Languages and libraries for parallel computing
Course Objectives & Outcomes

The course covers how to write concurrent and parallel programs, how to ensure correct concurrent program behavior through synchronization, and various parallel and distributed computing application areas.

At the end of the course, students will understand multithreaded, parallel, and distributed programming and related concepts such as synchronization and communication.