The goal of this course is to introduce students to the fundamental theoretic and practical principals of concurrency, with emphasis on the correctness, design and implementation of models of concurrent computation using shared memory architectures.

  • The 1st part of the course is more fundamental and is given by Nelma Moreira. More information here.
  • This 2nd part of the course will focus on the programming aspect, using the Scala language to study several concurrency patterns and libraries in Java Virtual Machines.
  • Summaries and assignments are placed in the associated Moodle website.
  • The official plan of this course is hosted in FCUP here.


Literature and Material


  1. Introduction to the second module
  2. Scala primer
  3. Java Memory Model
  4. Basic building blocks of concurrency
  5. Actor model


  1. Exercises on Scala
  2. Exercises on Java Memory
  3. Exercises on Java Memory
  4. Exercises on building blocks of concurrency
  5. Exercises on the actor model


Main book

Previous years

Teaching methods and learning activities

Lectures; intermediate test (mandatory) and final test or final exam.

The lectures mix the presentation of new material (introducing concepts, main algorithms and some results) with interactive discussion of their application when solving real problems.

The homework focus is on practical application of algorithmic concepts, consolidating the learned material.

The final exam and intermediate tests (closed book), globally evaluates the knowledge acquired by the students.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

designation Weight (%)
Exam 70,00
Assignment 30,00

Eligibility for exams

Students must attend at least 75% of the practical classes to be admitted to the exams.

Calculation formula of final grade

Distributed evaluation will include both modelling (EM) and program implementation (EI). The final grade (FG) is obtained by weighting the distributed assessment scores and final exam (FE) as follows:

  • FG = 3 * EM + 3 * EI + 14 * FE.


    • Nelma Moreira's photo
      • Nelma Moreira
        • DCC 1.20
        • nelma.moreira(at)
        • meet: thu afternoon (email before)
    • José Proença's photo
      • José Proença
        • DCC 1.69
        • jose.proenca(at)
        • meet: thu afternoon (email before)

Edit the content of this page here.