EDAP05 Concepts of Programming Languages

Course facts

Credits:7.5 hp, Advanced level

Study period: LP2 2019

Locations and times: MA:3 (Mondays, 15:15–17:00) / MH:GĂ„rding (Tuesdays 13:15–15:00)

Start: First class on 4 November, 15:15

Labs: 08:15–10:00 (Thursdays and Fridays, two labs each), 13:15–15:00 (Thursdays, one lab) (labs are over now)

Course responsible: Christoph Reichenbach

TAs: Noric Couderc, Alexandru Dura

Office hours: Wednesdays 13:30 to 15:00 except for week 48; Monday after the lecture until 18:00 in week 48. Location is E:2112b.

Student representatives: Henrik Olsson (henrik.olsson.761 at student...) , Idriss Riouak (idriss.riouak at cs.lth dot se)

Final Exam:17 January (Fri), 14:00--19:00, in MA:10 G-J

Formal course plan: In English and in Swedish.




When existing software doesn't provide what we need, programming langauges are the principal tools that we have to create new software and understand and adapt existing software. However, these languages come in many forms and flavours, often with large communities advocating their use. This can make it hard to understand what the right language for a given task might be.

In this course, we will explore key concepts that underly the programming languages of today to better understand what the common features among today's languages are. The intent of the course is to help you

The textbook for the course will be Robert Sebesta's Concepts of Programming Languages, which you can find e.g. here (stores listed in alphabetical order):

Older versions of the book may work, but references may be off.

For a more detailed overview of the material that we will be covering, please have a look at the tentative list of skills.


To pass the course, you are expected to complete all of the lab exercises (achieving an average of 50% or more of the maximum points in each lab exercise, averaged over the five lab exercise scores) and the exam. For exchange students only, there will be an alternative option to taking the exam, in that you will have to complete a side project, write a report, and briefly present your results in the final class.