Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.

​​​​

Syllabus for

Academic year
TDA383 - Concurrent programming
 
Syllabus adopted 2016-01-27 by Head of Programme (or corresponding)
Owner: TKDAT
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Course round 1


Teaching language: English
Open for exchange students
Block schedule: C

Course elements   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0114 Laboratory 3,0c Grading: UG   3,0c    
0214 Examination 4,5c Grading: TH   4,5c   22 Oct 2016 pm H,  21 Dec 2016 pm SB,  21 Aug 2017 pm SB

In programs

TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TKTEM ENGINEERING MATHEMATICS, Year 3 (compulsory elective)
TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 2 (elective)
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 2 (elective)

Examiner:

Docent  Carlo Furia A
Docent  K V S Prasad


Course round 2


Teaching language: English
Open for exchange students

Course elements   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0114 Laboratory 3,0c Grading: UG   3,0c    
0214 Examination 4,5c Grading: TH   4,5c   18 Mar 2017 pm SB,  21 Aug 2017 pm SB

In programs

TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 2 (compulsory elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 2 (elective)
TIDAL COMPUTER ENGINEERING, Year 3 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 2 (elective)

Examiner:

Docent  Carlo Furia A
Docent  K V S Prasad


Replaces

TDA381   Concurrent programming TDA382   Concurrent programming


  Go to Course Homepage

 

Eligibility:

In order to be eligible for a first cycle course the applicant needs to fulfil the general and specific entry requirements of the programme(s) that has the course included in the study programme.

Course specific prerequisites

Solid background in programming. Knowledge of object oriented (for example Java) and functional (for example Haskell) languages is a big plus.

Aim

Concurrent programming plays a vital role in systems where many events appear to occur simultaneously. This course aims to provide an introduction to the problems common to concurrent systems such as operating systems, distributed systems, real-time systems but also systems that require parallelisation such as internet services and modern games.

Learning outcomes (after completion of the course the student should be able to)

- demonstrate the critical knowledge of the issues and problems that arise in shared-memory and message-passing concurrent systems

- identify concurrent (synchronization) problems, for example shared update, dining philosophers, producer-consumer, resource allocation, time-outs

- adapt common patterns for solving those problems, for example locks, client-server, pipelines, replicated workers, barrier synchronization, passing the baton, alarms

- design and argue for the correctness, clarity, and efficiency of solutions

- apply practical knowledge of the programming constructs and techniques offered by modern concurrent programming languages

- implement such solutions in expressive programming languages

Content

General concepts: parallelism, interference, synchronization, critical regions, mutual exclusion, deadlock, fairness, livelock. Synchronization using shared variables; busy waiting.  Semaphores. Monitors.  Synchronous message passing: extended rendezvous. Asynchronous message passing: Erlang.  Asynchronous coordination: Linda.

Organisation

The course is organized as lectures and laboratory assignments.

Literature

The literature to be used is announced in advance on the course home page.
Last time we used "Principles of Concurrent and Distributed Programming (Second edition)", Mordechai Ben-Ari, Addison-Wesley, 2006. ISBN 0-321-31283-X.

Examination

The learning outcomes are evaluated based on the students development on the labs as well as the final written exam. The labs are graded with U and G, while the exam as 3,4,5. The grade for the course is then determined by  considering the overall performance in the labs and the exam combined.


Published: Fri 18 Dec 2009. Modified: Mon 28 Nov 2016