NDAK13000U Extreme Multiprogramming
Multithreaded programming is often considered complex, and
classic concurrency problems, such as race conditions and deadlocks
occur frequently in multithreaded programs. The overall purpose of
this course is to enable the student to use threading as the
primary design mechanism for large, maintainable, and
The course will equip the student with the tools, primarily Communicating Sequential Processes (CSP), required to understand and apply concurrency as a fundamental tool for building both computational platforms (systems-level programming) and end-user applications. It contains a thorough introduction to the abstract CSP algebra and its concrete realizations in practical programming systems.
At course completion, the successful student will have:
- The CSP framework: concepts, notation, and reasoning principles.
- CSP-based libraries and languages, such as PyCSP or Occam.
- Implementation techniques for efficiently executing concurrent programs on highly parallel platforms.
- Tools for automatic analysis and verification of concurrent systems.
- Proving equivalences and other formal properties of processes in the CSP algebra.
- Designing and implementing highly concurrent programs using the CSP paradigm.
- Analyzing and verifying properties of concurrent programs (or program fragments), with respect to both correctness and performance.
- Construct and validate maintainable, high-performance concurrent and/or parallel applications according to sound structuring and reasoning principles.
- Communicate effectively and rigorously about key aspects of concurrent systems in both theoretical and practical contexts.
Expected textbook: Tony Hoare, Communicating Sequential Processes (freely downloadable from usingcsp.com); selected articles and notes.
- 7,5 ECTS
- Type of assessment
- Written assignment, 12 daysAn individually written report based on a fixed assignment, containing both theoretical and programming tasks. The report is due on the last day of the exam period. Submission in Absalon.
- Exam registration requirements
- Five-six passed homework assignments
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners
- One-week take-home assignment + 30-minute oral examination without preparation; Submission in Absalon.
Criteria for exam assesment
See learning outcome.
- Project work