Credits: 5

Schedule: 30.10.2019 - 12.12.2019

Contact information for the course (applies in this implementation): 

"course" (where "course" is cs-e4110)

Teaching Period (valid 01.08.2018-31.07.2020): 

I - II 2018-2019 (Autumn)
II 2019-2020 (Autumn)

Learning Outcomes (valid 01.08.2018-31.07.2020): 

You are aware of how easily fatal, hard to identify and innocent looking bugs creep in to the code of concurrently running programs. You can apply general design principles, models and methods to construct concurrent systems that, in addition to all other requirements, behave correctly with the respect to their functional specifications. You have got an experience of applying the theories using the concurrency features of Java and Scala in programming exercises. You know weak memory models, tools for finding concurrency bugs, and modern concurrent programming frameworks such as Akka Actors and Apache Spark.

Content (valid 01.08.2018-31.07.2020): 

Principles of concurrent programming, synchronization and communication mechanism. Concurrent and distributed algorithms,. Concurrent and distributed systems.

Assessment Methods and Criteria (valid 01.08.2018-31.07.2020): 

Lectures, examination and programming exercises. Course feedback.

Elaboration of the evaluation criteria and methods, and acquainting students with the evaluation (applies in this implementation): 

The grade is based on points earned in the exam. This grade (excluding 0 and 5) can be raised by one grade-step by well-done exercises. Both the passing the exam and passing the exercises are mandatory. The learning platform used gives immediate feedback for the students, in addition, students can ask for other feedback.

Workload (valid 01.08.2018-31.07.2020): 

Lectures: 24 (2), Teaching in small groups: 12 (1), Independent work: 96

Details on calculating the workload (applies in this implementation): 

Majority of the study time of student is for self-study and exercises as homework. The contact teaching supports this.

Study Material (valid 01.08.2018-31.07.2020): 

Lecture slides and handouts

Substitutes for Courses (valid 01.08.2018-31.07.2020): 

T-106.5600 Concurrent Programming

Prerequisites (valid 01.08.2018-31.07.2020): 

Principles of computer architecture, operating system and run-time system from software perspective. Eg. CS-A1120 / ICS-A1120 Programming 2. Java and Scala programming experience.

Grading Scale (valid 01.08.2018-31.07.2020): 



Registration and further information