Syllabus for |
|
TDA384 - Principles of Concurrent Programming
|
Principer för parallell programmering |
|
Syllabus adopted 2019-02-08 by Head of Programme (or corresponding) |
Owner: TKDAT |
|
7,5 Credits
|
Grading: TH - Five, Four, Three, Fail |
Education cycle: First-cycle |
Major subject: Computer Science and Engineering, Information Technology
|
Department: 37 - COMPUTER SCIENCE AND ENGINEERING
|
Course round 1
Teaching language: English
Application code: 49129 Open for exchange students: Yes
Block schedule:
C Only students with the course round in the programme plan
Module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0117 |
Laboratory |
3,0 c |
Grading: UG |
|
3,0 c
|
|
|
|
|
|
|
|
0217 |
Examination |
4,5 c |
Grading: TH |
|
4,5 c
|
|
|
|
|
|
|
26 Oct 2019 pm SB_MU
|
09 Jan 2020 pm M
|
19 Aug 2020 pm J |
In programs
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 1 (compulsory elective)
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 2 (elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TIDAL COMPUTER ENGINEERING, Year 3 (elective)
Examiner:
K V S Prasad
Go to Course Homepage
Course round 2
The course is full. For waiting list, please contact the director of studies: hadi.zarshamfar@chalmers.se
Teaching language: English
Application code: 49126 Open for exchange students: Yes
Block schedule:
A+ Only students with the course round in the programme plan
Module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0117 |
Laboratory |
3,0 c |
Grading: UG |
|
|
|
3,0 c
|
|
|
|
|
|
0217 |
Examination |
4,5 c |
Grading: TH |
|
|
|
4,5 c
|
|
|
|
|
17 Mar 2020 am SB_MU
|
09 Jan 2020 pm J, |
19 Aug 2020 pm J |
In programs
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 2 (elective)
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 1 (elective)
MPHPC HIGH-PERFORMANCE COMPUTER SYSTEMS, MSC PROGR, Year 1 (elective)
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)
TKTEM ENGINEERING MATHEMATICS, Year 3 (compulsory elective)
TIDAL COMPUTER ENGINEERING, Year 3 (compulsory elective)
Examiner:
K V S Prasad
Go to Course Homepage
Replaces
TDA381
Concurrent programming TDA382
Concurrent programming TDA383
Concurrent programming
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
Knowledge in (propositional) logic. Solid competence in Java. Some knowledge in functional programming is also desired. For those without this knowledge the course will provide some tutorials, but students will then need to spend some extra time learning this paradigm.
Aim
Concurrent and parallel programming has become ubiquitous in modern software and systems, where concurrency is leveraged to exploit physical parallelism and speed up computations, to provide interactive multi-tasking, and to handle the interactions with asynchronous external events. This course aims to provide an introduction to the principles underlying concurrent systems, as well as to practical programming solutions for modeling and exploiting concurrency in programs. Domains where such principles and practices are relevant include operating systems, distributed systems, real-time systems, and multicore architectures.
Learning outcomes (after completion of the course the student should be able to)
Knowledge and understanding:- demonstrate knowledge of the issues and problems that arise in writing correct concurrent programs;
- identify the problems of synchronization typical of concurrent programs, such as race conditions and mutual exclusion
Skills and abilities:- apply common patterns, such as lock, semaphores, and message-passing synchronization for solving concurrent program problems;
- apply practical knowledge of the programming constructs and techniques offered by modern concurrent programming languages;
- implement solutions using common patterns in modern programming languages
Judgment and approach:- evaluate the correctness, clarity, and efficiency of different solutions to concurrent programming problems;
- judge whether a program, a library, or a data structure is safe for usage in a concurrent setting;
- pick the right language constructs for solving synchronization and communication problems between computational units.
Content
- Physical vs logical parallelism
- Concurrency problems: race conditions, interference, deadlock, fairness, livelock
- Mutual exclusion
- Shared memory synchronization: using semaphores or fine grained locking
- Message-passing synchronization: using message queues
Organisation
The course is organized in lectures and laboratory assignments.
Literature
The literature to be used is announced in advance on the course's home page. We often use "Principles of Concurrent and Distributed Programming (Second edition)", M. Ben-Ari, Addison-Wesley, 2006. ISBN 0-321-31283-X.
Examination including compulsory elements
The course is examined by an individual written exam (4.5 hec), carried-out in an examination hall, and laboratory assignments (3.0 hec) which are normally carried out in pairs of students. The complete course grade is then determined by the score of both the laboratory part and the written exam.
|
|