Credits: 5

Schedule: 14.09.2016 - 14.12.2016

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.

Workload (valid 01.08.2018-31.07.2020): 

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

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): 

0-5

Description