Information on individual educational components (ECTS-Course descriptions) per semester

  
Degree programme:Master Computer Science
Type of degree:FH MasterĀ“s Degree Programme
 Full-time
 Summer Semester 2023
  

Course unit titleParallel Computing and Concurrent Programming
Course unit code024913020202
Language of instructionEnglish
Type of course unit (compulsory, optional)Compulsory
Semester when the course unit is deliveredSummer Semester 2023
Teaching hours per week2
Year of study2023
Level of course unit (e.g. first, second or third cycle)Second Cycle (Master)
Number of ECTS credits allocated4
Name of lecturer(s)Andrea JANES


Prerequisites and co-requisites

Excellent knowledge of Java and Object-Oriented Programming

Course content
  • Java Threading Model and Concurrency Features
  • Actor Model using Java Akka
  • Transactional Programming
  • Mutexes and Semaphors
  • Profiling and Performance Measurement of Parallel and Concurrent Applications
  • Concurrent Datastructures
  • Concurrent Patterns (e.g.. Consumer / Producer)
  • Communicating Sequential Processes
Learning outcomes

The students get to know basics and concepts of parallel and concurrent programming in Java.

  • know and understand the difference between parallelism and concurrency.
  • know and understand the difference between shared memory and message-passing concurrency.
  • know patterns of parallel programming.
  • know Amdahls Law.
  • are able to implement parallel and concurrent problems in Java.
  • know concepts of concurrent programing such as Futures/Promises, Monitors, Software Transactional Memory , Mutexes, Semaphores.
  • are able to differentiate between parallel and concurrent programs on implementation, as well as on type level.
  • know the issues of concurrent programming: Data Races, Dead Locks, Live Locks and Starvation.
  • know simple basics of process caluli.
Planned learning activities and teaching methods

Lectures

Assessment methods and criteria

Written exam (50%) and weekly exercises (50%)

For a positive grade, a minimum of 50% of the possible points must be achieved in each part of the examination.

Comment

None

Recommended or required reading
  • Armstrong, Joe (2013): Programming Erlang: software for a concurrent world. Pragmatic Bookshelf.
  • Herlihy, Maurice et al. (2020): The art of multiprocessor programming. Newnes.
  • Marlow, Simon (2011): ‘Parallel and concurrent programming in Haskell.’ In: Central European Functional Programming School. Springer, p. 339–401.
  • Mattson, Timothy G; Sanders, Beverly; Massingill, Berna (2004): Patterns for parallel programming. Pearson Education.
  • Urma, Raoul-Gabriel; Mycroft, Alan; Fusco, Mario (2018): Modern Java in Action. Manning Publications.
  • Vernon, Vaughn (2015): Reactive messaging patterns with the Actor model: applications and integration in Scala and Akka. Addison-Wesley Professional.
Mode of delivery (face-to-face, distance learning)

Face-to-face instruction with mandatory attendance

Summer Semester 2023go Top