Lund University


Course Program

Dept. of Computer Science


2011-08-29

Page 1(2)

EDA040: Concurrent Programming / Realtidsprogrammering

Study periods HT1+HT2

Contacts
Lecturer: Klas Nilsson; room:E4131, tel:046-2224304, http://cs.lth.se/klas_nilsson
SMS:0705-365015, skype:klas_nilsson, mailto:klas@cs.lth.se
Teacher: Mathias Haage; room E:4132c, tel:046-2223036, mailto:mathias@cs.lth.se
Secretary: Lena Ohlsson; room E:2179, tel:046-2228040, mailto:lena.ohlsson@cs.lth.se
Expedition-time: 9.30-11.30 and 12.45-13.30.
Notice-board
Next to the stairs and opposite to the secretary, second floor in the E building.
Rarely used nowadays; please refer to the home page and links therein.
Home page
http://cs.lth.se/EDA040
Requirements
Prior to starting this course, you should have passed EDA027 / EDAA01 (Algorithms and data structures / ..) or (for exchange/other students) have the corresponding documented knowledge.

Schedules

Scheduled sessions (each 2 hours)
HT1: Lectures 7. Exercises 6. Labs 3.
HT2: Lectures 2. Project-guidance 4 (2 intro and 2 final, in computer room).
Groups
You register for a certain scheduled session electronically using a web form found via the course homepage. The same grouping applies to both the exercises and (most important) to the labs.
The labs are done pairwise (with resulting individual solutions), the project in groups of four.
Lectures
HT1: Tuesday 13-15 in room E:B.
HT2: Tuesday 25/10 and Tuesday 6/12, both during 8-10 in room E:B
Exercises
HT1: Group A-C: We 13-15, and Group D-G: Th 8-10 (grouping in common with labs).
HT2: Project guidance corresponding to one exercise per week, according to later schedule.
Labs
The laboratory sessions take place in computer rooms, where the final part of the lab work is carried out. There are seven lab (and exercise) groups scheduled according to the official LTH-schedule, including room numbers. Due to an error in the LTH (exercise) schedule, we here enumerate groups A-G (instead of 1-7). You sign up for the lab sessions electronically, and you should aim for the corresponding exercise session (initially, but exercise groups may be merged later). The lab groups are scheduled for the computer rooms during the following hours:
Group A-C [in room E:Mars]: Fr 8-10, Fr 10-12, Fr 13-15 respectively.
Group D-G [in room E:Mars]: Mo 8-10, Mo 10-12, Mo 13-15, Mo 15-17 respectively.
Preparation starts with theory as presented during a preceding lecture, more detailed preparation and problem analysis then follows during an exercise session prior to the lab session. Then home work (in the range of 1 to 12 hours depending on skill and luck) constitutes a main part of the work, then followed by the lab session. That session may start with a test on the required corresponding knowledge as covered by the exercises. Then either a fully working solution is examined, or the remaining problems are analyzed and guidance towards an acceptable implementation is given.


Schedule for first study period (HT1) Page 2(2)

Week; day/month:

29/8-2/9

 5-9/9 

12-16/9

19-23/9

26/9-30/9

 3-7/10 

10-14/10

Lecture (Tu 13-15):

  F1

  F2

  F3

  F4

  F5

  F6

  F7

Exer. (We 13/Th 8):

Ö1

Ö2

Ö3

Ö4

Ö5

Ö6


Labs (Group#A-C):


L1


L2


L3


Labs (Group#D-G):



L1


L2


L3

Fn = Lecture #n (Swe: Föreläsning nr n), Tuesday
Ön = Exercise #n (Swe: Övning nr n), Wednesday / Thursday
Ln = Lab. #n (Swe: Laboration nr n), Friday-Monday [Note: Mandatory; Swe: Obligatoriskt!]
Schedule for second study period (HT2)
The detailed schedule for HT2 is distributed during the mandatory lecture F8, which is the first HT2 lecture.
Examination (NOTE: EXAMINATION NOW AFTER HT1; BEFORE THE PROJECT IN HT2)
The ordinary examination is Saturday 2011-10-22 during 8-13 (for location see the LTH schedule).
First retake examination is Monday 2012-01-09 during 8-13.

Content

The content is formally covered during the first study period. The project, which takes about 2/5 (that is 1/4-1/2 depending on yourself) of the total efforts in time, should give the practical engineering skills needed for the exam and for your future (software-oriented) profession.

Lectures
The content of the lectures during the first study period define the theoretical content of the course. For each of the seven lectures F1 to F7 this means:
  1. Introduction. Concurrent execution, something about semaphores..
  2. Synchronization, mutual exclusion, more on semaphores.
  3. Monitors; synchronized methods. Design w.r.t. concurrency and state.
  4. Messages and event processing. Deadlock.
  5. Scheduling. Priority inversion and priority inheritance.
  6. Scheduling analysis.
  7. Implementation techniques for run-time systems.
During the second study period, the two lectures cover:
Literature
Ongoing attempt to provide all material electronically, for free (re)distribution. Coordinated printing of booklet if desired. Some material might be handed out at printing cost (no profit).
Exercises and labs
Content as for the lectures, focused on practical design and programming based on lectures 1 to 4. Scheduling analysis is covered by the last exercise (but no lab), whereas the Implementation techniques for run-time systems are primary topics of the final lecture (no exercise or lab).
Project
The project deals with design and implementation of a distributed real-time video surveillance system. Your experiences from the labs will be most valuable. During the project you will gain some experience also from network programming. A completed project results in runnable software, a manual-oriented on-line report, and an oral presentation.