Engelsk   Dansk
Velkommen til Københavns Universitets kursuskatalog

NDAK13000U  Extreme Multiprogramming Volume 2014/2015

Course information

LanguageEnglish
Credit7,5 ECTS
LevelFull Degree Master
Duration1 block
Placement
Block 2
Schedule
B (Mon 8-12 + Tues 13-17 + Fri 8-12)
Course capacityNo limit
Continuing and further education
Study boardStudy Board of Mathematics and Computer Science
Contracting departments
  • Department of Computer Science
  • The Niels Bohr Institute
Course responsible
  • Andrzej Filinski (7-6a776d7b836e73496d7237747e376d74)
Saved on the 03-12-2014
Content

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 high-performance applications.

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.

Learning Outcome

At course completion, the successful student will have:

Knowledge of:

  • 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.

Skills in:

  • 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.

Competences to:

  • 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.
Literature

Expected textbook: Tony Hoare, Communicating Sequential Processes (freely downloadable from usingcsp.com); selected articles and notes.

Teaching and learning methods
Lectures and mandatory assignments. Independent work at home will be a major part of the workload.
Academic qualifications
BSc-level courses in Computer Architecture and Operating Systems.
Sign up
Self Service at KUnet
Exam
Credit7,5 ECTS
Type of assessment
Written assignment, 12 days
An 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 requirementsFive-six passed homework assignments
AidAll aids allowed
Marking scale7-point grading scale
Censorship formNo external censorship
Several internal examiners
Re-examOne-week take-home assignment + 30-minute oral examination without preparation; Submission in Absalon.
Criteria for exam assesment

See learning outcome.

Workload
CategoryHours
Lectures28
Project work96
Preparation82
Total206
Saved on the 03-12-2014