EduXchange.EU

Advanced Concepts of Programming Languages

CIT3230000
Computer Science and ICT, Data, AI

About this course

This is not a beginners programming course – Instead, this lecture focusses on the semantics of various programming language concepts, and their implementation from the point of view of a compiler engineer. Topics may include, among others:

  • Relaxed Memory Models
  • Wait-/Lock-free Programming
  • Locks, Monitors & Condition Variables
  • Transactional Memory
  • Gotos, Co-Routines and Continuations
  • Single/Multi-Dispatching
  • (Multiple-) Inheritance
  • Delegation and Prototype Based Programming
  • Aspect Oriented Programming
  • Meta programming

Learning outcomes

After successful completion of this module, students are familiar with an assortment of programming language constructs from popular programming languages. They understand the semantics of these constructs as well as the implementation consequences, that they inflict on the implementation as well as the runtime behavior of compiler and runtime system. They are able to analyze and compare different language based approaches, to discuss their relative merits and potential workarounds in case certain language features are missing. By means of this knowledge, they are able to extend existing compilers to handle the aforementioned constructs as well as able to re-encode concepts from one language by means of another language.

Examination

Selected literature of the area and appropriate conference or journal papers

Course requirements

IN0001 Introduction to Informatics, IN0002 Fundamentals of Programming (Exercises & Laboratory), IN0003 Functional Programming and Verification, at least one programming language

Activities

By means of pre-recorded lesson videos of around 15 minutes each, students can prepare the lecture content at their own pace. In the classroom, students can open discussion on unclear parts of the lesson videos. Additionally, illustrating examples and live programming enhance and deepen the student’s insights into the topics. Selected problems that are then solved by the joined effort of the audience and the lecturer further illustrate the lessons with hands-on experiences. In the additionally offered exercise course (2h), accompanying assignments for individual study deepen the understanding of the concepts explained in the lecture, train students to apply the learnt concepts in implementations and develop the skill to to simulate the effect of missing language features by others.

Link to more information

  • Credits
    ECTS 6
  • Contact hours per week
    3
  • Instructors
    Helmut Seidl, Michael Petter
  • Mode of instruction
    Blended
  • Course coordinator
If anything remains unclear, please check the FAQ of TUM (Germany).

Offering(s)

  • Start date

    16 October 2024

    • Ends
      5 February 2025
    • Term *
      unknown
    • Instruction language
These offerings are valid for students of CTU (Czech Republic)