Institute of Computer Science
  1. Courses
  2. 2023/24 fall
  3. Concurrent Programming Languages (LTAT.06.022)
ET
Log in

Concurrent Programming Languages 2023/24 fall

  • Pealeht
  • Loengud
  • Labs
  • Viited
  • Homework

Lecture 1 - Introduction

This session introduces the module and its content. It gives an overview of terminology and technologies.

Slides (odp)

Slides (pdf)

Recordings: lab recording

Lecture 2 - Parallel Algorithms

This session gives a (language independent) overview of the design of parallel algorithms.

Slides (odp)

Slides (pdf)

Recordings: lecture recording (incomplete, sorry for that) lab recording

Lecture 3 - Introduction to Java

This is an introduction to the Java language, mainly intended for those students not yet familiar with Java. In the lecture, I will cover things in a live demonstration, so there are not many slides.

Slides (odp)

Slides (pdf)

Recordings: lecture recording (incomplete, sorry for that) lab recording

lecture code (not perfect, just to play around with)

Lecture 4 - Concurrency in Java - Basics, processes, threads, object monitors, memory model

Slides (odp)

Slides (pdf)

lecture code

Recordings: lecture recording 1 lecture recording 2 lab recording 1 lab recording 2

Lecture 5 - Concurrency in Java - ExecutorService, fork/join framework, bounded buffers, semaphores/mutexes

Slides (odp)

Slides (pdf)

lecture code

Recordings: Lecture Lab

Lecture 6 - Concurrency in Java - Deadlock, livelock, problems to watch out for, functional elements, parallel streams

Slides (odp)

Slides (pdf)

lecture code

Recordings: Lecture 1 Lecture 2 Lab

Lecture 7 - Concurrency in Java - Akka and actors, futures and promises

Slides (odp)

Slides (pdf)

Lecture 8 - Introduction to C++

This is an introduction to the C++ language, mainly intended for those students not yet familiar with C++. In the lecture, I will cover things in a live demonstration, so there are no slides.

Lecture recording Examples 1 Examples 2 Examples 3

Lab recording

Lecture 9 - OpenMP

Slides (odp)

Slides (pdf)

Lecture recording 1 2 3

Lab recording

Lecture 10 - OpenCL I

Slides (pptx)

Slides (pdf)

Lecture recording Lab recordings

Lecture 11 - OpenCL II

Slides (pptx)

Slides (pdf)

Lecture recording Lab recording

Lecture 12 - Scala I

Slides (odp)

Slides (pdf)

Lecture examples (IntelliJ project)

Lecture recording

Lecture 13 - Scala II

Slides (odp)

Slides (pdf)

Lecture examples (IntelliJ project)

Lecture recording

Lecture 14 - Python I

Slides (odp)

Slides (pdf)

Lecture examples

Lecture recording

Lecture 15 - Python II

Slides (odp)

Slides (pdf)

Lecture recording

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment