Concurrent Algorithms and Data Structures
Course, Master's level, 1DL590
Autumn 2023 Autumn 2023, Uppsala, 33%, On-campus, English
- Location
- Uppsala
- Pace of study
- 33%
- Teaching form
- On-campus
- Instructional time
- Daytime
- Study period
- 31 October 2023–14 January 2024
- Language of instruction
- English
- Entry requirements
-
120 credits with 60 credits in computer science, including participation in Introduction to Parallel Programming. Functional programming is recommended. Proficiency in English equivalent to the Swedish upper secondary course English 6.
- Selection
-
Higher education credits in science and engineering (maximum 240 credits)
- Fees
-
If you are not a citizen of a European Union (EU) or European Economic Area (EEA) country, or Switzerland, you are required to pay application and tuition fees.
- Application fee: SEK 900
- First tuition fee instalment: SEK 12,083
- Total tuition fee: SEK 12,083
- Application deadline
- 17 April 2023
- Application code
- UU-11038
Admitted or on the waiting list?
- Registration period
- 17 October 2023–7 November 2023
- Information on registration.
Autumn 2023 Autumn 2023, Uppsala, 33%, On-campus, English For exchange students
- Location
- Uppsala
- Pace of study
- 33%
- Teaching form
- On-campus
- Instructional time
- Daytime
- Study period
- 31 October 2023–14 January 2024
- Language of instruction
- English
- Entry requirements
-
120 credits with 60 credits in computer science, including participation in Introduction to Parallel Programming. Functional programming is recommended. Proficiency in English equivalent to the Swedish upper secondary course English 6.
Admitted or on the waiting list?
- Registration period
- 17 October 2023–7 November 2023
- Information on registration.
About the course
Most computer applications operate nowadays on concurrent platforms, e.g., multicore architectures, distributed databases, and geographically distributed servers. This means that all the algorithms and data structures that have over the years been designed for sequential programs must be extended to the concurrent setting. In this course, we study how this is done in the case of basic data structures such as sets, stacks, and queues. We will also study algorithms that manipulate such data structures as insertion, deletion, and membership checking. Furthermore, we will reason about the correctness and efficiency of these algorithms.
Concrete topics: concurrent programs, concurrent data structures, sets, stacks, queues, sequential consistency, linearisability, coarse-grained synchronisation, fine-grained synchronisation, optimistic algorithms, lazy algorithms, lock-free algorithms, the ABA problem, atomic operations.
Reading list
No reading list found.