Semester of Instruction
Autumn. Taught for the first time autumn 2017.
Objectives and Content
The course introduces principles for programming secure, reliable and robust software in a multi-threaded or multi-process environment. Concurrent programming techniques are particularly central to the course, but related techniques such as event-driven programming may also be covered. The course combines a strong theoretical foundation with practical exercises.
After successfully completing the course, the students shall be able to:
- Write correct concurrent programs using multiple programming models, e.g., shared memory, message-passing, actors, futures, and data-parallelism primitives.
- Understand, relate and use synchronization primitives appropriately.
- Model a concurrent process using a formal method.
- Explain the potential run-time problems arising from the concurrent operation of many separate tasks.
Required Previous Knowledge
At least 60 ECTS in computer science, preferably including some mathematics
Recommended Previous Knowledge
Compulsory Assignments and Attendance
Forms of Assessment
Written exam. If less than 20 students take the couse an oral exam may be arranged instead.
Compulsory exercises may count towards the final grade.
The grading scale used is A to F. Grade A is the highest passing grade in the grading scale, grade F is a fail.
Type of assessment: Written examination
- 3 hours
- Withdrawal deadline