Syllabus for |
|
TDA382 - Concurrent programming |
|
Syllabus adopted 2012-02-18 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
Students with a registration on TDA381 should be re-registered for TDA381.
Teaching language: English
Open for exchange students
Block schedule:
C
Course module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0112 |
Examination |
4,5 c |
Grading: TH |
|
4,5 c
|
|
|
|
|
|
|
24 Oct 2013 pm M, |
25 Aug 2014 pm V |
0212 |
Laboratory |
3,0 c |
Grading: TH |
|
3,0 c
|
|
|
|
|
|
|
|
In programs
TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TKTEM ENGINEERING MATHEMATICS, Year 3 (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
Students with a registration on TDA381 should be re-registered for TDA381.
Teaching language: English
Open for exchange students
Block schedule:
LA
Course module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0112 |
Examination |
4,5 c |
Grading: TH |
|
|
|
4,5 c
|
|
|
|
|
14 Mar 2014 pm H, |
25 Aug 2014 pm V |
0212 |
Laboratory |
3,0 c |
Grading: TH |
|
|
|
3,0 c
|
|
|
|
|
|
In programs
TIDAL COMPUTER ENGINEERING, Year 3 (elective)
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)
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
Course evaluation:
http://document.chalmers.se/doc/ec5f76c5-0268-47f9-9a8d-2883ff1da24d
Go to Course Homepage
Eligibility:
For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.
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 "Foundations of multithreaded, parallel and distributed programming" by Greg Andrews, Addison Wesley.
Examination
The course is examined by laboratory assignments and a written examination. Possible grades: U, 3, 4, 5.