Jakob-Haringer-Str. 2

5020 Salzburg, Austria

Room 2.17


+43 (0)662 8044 6417

+43 (0)662 8044 611 (fax)

Skype ana_sokolova

Many thanks to Silviu Craciunas for the photo (RTAS 2010 in Stockholm) and his help with iWeb!

Introduction to Concurrency Theory and Practice

Summer semester 2020/2021 together with Christoph Kirsch

Schedule:            Lectures Wednesdays 10am-12noon

see calendar         Proseminar Wednesdays 12 noon-1pm by Christoph Kirsch


First meeting:       Friday, March 5 at 1pm (only the first meeting is on Friday)

Language:           English

The course may also be taken by PhD students


  1. General Textbook: The Art of Multiprocessor Programming, by Maurice Herlihy and Nir Shavit.

This book can serve as background information for some of the topics that we cover.

A list of papers/other reading materials will be given to you via Blackboard.

Prerequisites:  No particular knowledge is expected that is beyond the bachelor study. You may need some basic notions of systems and theory, as well as programming in C++ for parts of the course.

Exam:   This is a 2VO+1PS course. For the lectures part (VO), there will be three exam possibilities in June/July/August. The exam is written consisting of several questions / excersises from the material covered during the course. For the practical part (PS), there will be mini projects.

In addition, we may give homework in class from time to time. This is to help you estimate your progress, and possibly provide you with feedback (if you hand in the homework for corrections). It is not obligatory to hand in homework.

Exam dates: t.b.a. (all announcements via Blackboard and slack)

Mini projects: t.b.a. (all announcements via Blackboard and slack)

Course description: This is a course on Semantics of Concurrent Programs. We will cover both theoretical aspects -- ways of defining semantics, some reasoning about correctness; and practical aspects -- concurrent programing and in particular programming concurrent data structures.

Our group has made significant contributions on efficient scalable data structures in the last decade, we have gathered a large body of knowledge as well as implemented a benchmarking environment and data structure implementations that are very much worth exploring, enhancing, and further studying.

The aim of this course is to introduce the existing area of concurrency to Master (or PhD) students that might be interested in either getting acquainted with programming concurrent objects, or even exploring related research topics in concurrency theory or concurrency in practice.

The student will implement small concurrent objects -- especially in the exercise part of the course -- and/or experiment with these or existing implementations that are part of our evaluation framework.

Ana Sokolova

Dr. TU Eindhoven, The Netherlands, 2005

Associate Professor

Computational Systems Group

Department of Computer Sciences

University of Salzburg


All information about this course can be found in Blackboard. We also use a slack channel (see PlusOnline, Blackboard)