Syllabus for |
|
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,0 c |
Grading: UG |
|
3,0 c
|
|
|
|
|
|
|
|
0214 |
Examination |
4,5 c |
Grading: TH |
|
4,5 c
|
|
|
|
|
|
|
24 Oct 2015 pm M, |
07 Jan 2016 pm H, |
22 Aug 2016 pm M |
In programs
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 2 (elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKTEM ENGINEERING MATHEMATICS, Year 3 (elective)
MPSOF SOFTWARE ENGINEERING, MSC PROGR, Year 2 (elective)
TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)
TKITE SOFTWARE ENGINEERING, Year 3 (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,0 c |
Grading: UG |
|
|
|
3,0 c
|
|
|
|
|
|
0214 |
Examination |
4,5 c |
Grading: TH |
|
|
|
4,5 c
|
|
|
|
|
19 Mar 2016 pm M, |
22 Aug 2016 pm M |
In programs
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 2 (compulsory elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
MPSOF SOFTWARE ENGINEERING, MSC PROGR, Year 2 (elective)
TIDAL COMPUTER ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 2 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (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.