Search programme

​Use the search function to search amongst programmes at Chalmers. The study programme and the study programme syllabus relating to your studies are generally from the academic year you began your studies.

Syllabus for

Academic year
TDA383 - Concurrent programming
 
Syllabus adopted 2015-02-10 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

No more seats available in study period 1.
Teaching language: English
Open for exchange students

Course module   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   24 Oct 2015 pm M,  07 Jan 2016 pm H,  22 Aug 2016 pm M

In programs

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

Examiner:

Docent  Alejandro Russo
Docent  K V S Prasad



Course round 2


Teaching language: English
Open for exchange students

Course module   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   19 Mar 2016 pm M,  22 Aug 2016 pm M

In programs

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

Examiner:

Docent  Alejandro Russo
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.


Page manager Published: Mon 28 Nov 2016.