Teaching

Announcement: WS2021/2022 Courses

This semester WS2021/2022, both TGI and Compiler Construction courses will take place in person (room numbers are mentioned below). For students who can not attend physically, we will put the recorded video from last semester online by the end of every lecture. You can check them in Opal. Please note the following:

Important: By attending the class, you are indicating that you meet the 3G rule (recovered, tested, or vaccinated).

========

In diesem Semester WS2021/2022 finden sowohl die TGI- als auch die Compilerbau-Vorlesungen in Präsenz statt (Raumnummern sind unten angegeben). Für Studenten, die nicht in Präsenz teilnehmen können, werden wir die Videoaufzeichnungen des letzten Semesters am Ende jeder Vorlesung online stellen. Sie können sie in Opal abrufen. Bitte beachten Sie das Folgende:

Wichtig: Durch die Teilnahme an der Vorlesung geben Sie an, dass Sie die 3G-Regel erfüllen (genesen, getestet oder geimpft).

Technische Grundlagen der Informatik

Classification:

Degree Program Module
Bachelor Informatik INF-B-390
Master Informatik INF-LE-EUI, INF-LE-MA
Diplom Informatik INF-D-420
Informationssystemtechnik IST-05-PF-GS
  Lehrexport MATH-BA-INFE, MATH-BA-INFF, MATH-MA-INFTGL 

Configuration:  3 V / 2 Ü / 0 P

Lecturer: Prof. Jeronimo Castrillon

Instructors:  Christian Menard

Description:  This course gives an introduction into foundations of electronic devices and electronic circuits for information technology and computer engineering. The material provides a bottom-up view of components and methodologies for the design of combinatorial and sequential digital circuits. The underlying fundamentals of electrical engineering, digital gates, and the CMOS implementation technology are introduced, but will be abstracted later on to focus on methods for analysis and synthesis of digital circuits. Finally, this course provides the tool set to design and understand simple digital circuits such as arithmetic units, storage elements, control units, and counters.

Language: German

Details: For more details, please refer to the Opal pages for the Lecture and Exercises.

Compiler Construction

Classification:

Degree Program Module
Bachelor Informatik INF-B-510, INF-B-520
Master Informatik

INF-BAS3,  INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
INF-PM-FOR, INF-PM-ANW

Medieninformatik INF-E-3, INF-BI-4, INF-BI-5
Distributed Systems Engineering INF-DSE-20-E-ADSE, NF-DSE-20-E-BDSE (*)
Computational Science and Engineering MA-CSE-17(*)
Diplom Informatik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
INF-04-FG-SWT, INF-04-FG-TP, INF-PM-FOR, INF-PM-ANW
Informationssystemtechnik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
 IST-05-PF-HS, INF-B-275
  Lehrexport INF-LE-EUI, INF-LE-WW

(*) Offered in English in winter semester

Configuration: 2 V / 0 Ü / 0 P

Lecturer: Prof. Jeronimo Castrillon

Description: This is a general course on compiler construction suitable not only for students of the IST program, but also for EE & CS students that would like to understand how a high level language is step-wise translated into optimized machine code. This lecture is ideal to put theoretical concepts of computer science into practice, to learn about the impact of processor architecture on software performance and to learn/refresh basic and advance optimization techniques.

The lecture covers the following topics:

  • Lexical analysis
  • Syntax analysis
  • Semantic analysis
  • Intermediate representation
  • Control & dataflow analysis
  • Compiler optimizations
  • Target architectures
  • Code selection
  • Scheduling
  • Register allocation

Language: German (English in winter semester)

Schedule:  In the winter semester 2021, the lecture will be held on Tuesdays, 13:00-14:30 in room VMB/OE02/U (starting on Oct 12).

Lectures: 12.10., 19.10., 26.10., 2.11., 9.11., 16.11., 23.11., 30.11., 7.12., 14.12., 21.12., 11.1., 18.1., 25.1., 1.2.

Lecture material: The slides of the lectures can be downloaded from here

 

Seminar Compiler Construction

Classification:

Degree Program Module
Bachelor Informatik INF-B-510, INF-B-520, INF-B-610
Master Informatik INF-BAS3,  INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
INF-PM-FOR, INF-PM-ANW
Medieninformatik INF-E-3, INF-BI-4, INF-BI-5
Diplom Informatik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
INF-04-FG-SWT, INF-04-FG-TP, INF-PM-FOR, INF-PM-ANW
Informationssystemtechnik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
 IST-05-PF-HS, INF-B-275

configuration:  0 V / 2 Ü / 0 P

Lecturer:  Nesrine Khouzami, Alexander Brauckmann

Description: This course supplements the Compiler Construction lecture (see details above). It is intended to give a deeper understanding of compiler techniques and algorithms. The course includes theoretical and practical tasks. For the practical work, students should have basic knowledge of Python and C/C++.

Since the seminar contents are aligned with the Compiler Construction lecture, it is recommended that both the seminar and the lecture are attended simultaneously.

Language: English

Schedule: In the Winter semester 2021/2022, the seminar will be held on Thursdays, 9:20-10:50 virtually. Please
check the zoom details in the Opal exercises page.

Einführung in die Technische Informatik

Classification:

Degree Program Module
Master Informatik INF-BAS5

configuration:  5 weeks each with 4 DS

Lecturer: Prof. Jeronimo Castrillon

Instructors:  Andrés GoensRobert Khasanov (for practical sessions)

Description: This course gives an introduction to different topics on computer engineering. It is taught by several professors of the institute for "Technische Informatik", including "Parallel Processing" by Prof. Nagel , "HW/SW Co-design" by Prof. Göhringer, and Akash Kumar. The part covered by Prof. Castrillon includes compilers for parallelism extraction and for parallel programming models, with emphasis on dataflow programming models. 

Language: German (or in English depending on the audience), practical sessions are in English

Schedule: In the winter semester 2019/2020, the lecture will be held on: Tuesdays, 16:40-18:10 in room APB/E007 and Fridays, 14:50-16:20 in room APB/E006 (3rd part starting on the 6.12.19).

Lectures: 6.12., 10.12., 13.12., 17.12., 20.12., 7.1., 10.1.

Practical sessions: Wednesdays, 16:40-20:00 in room APB/E069, 11.12., 18.12., 8.1.

Lecture material: available here.

Practical materials: available here.

Foundations of Certified Programming Language and Compiler Design

Up to date information and lecture material can be found on the website of the lecture at the Barkhausen Institut.

Classification:

Degree Program Module
Bachelor Informatik INF-B-510
Master Informatik INF-BAS4, INF-VERT4, INF-VERT5
Diplom Informatik INF-BAS4, INF-VERT4, INF-VERT5
Master Distributed Systems Engineering INF-DSE-20-E-CPLCD

Configuration: 2 V / 2 Ü / 0 P

Lecturer: Dr.-Ing. Sebastian Ertel

Instructors: Dr. rer. nat. Andrés Goens, Lars Schütze

Description:

The Internet of Things (IoT) promises to improve people's everyday lives but the close interaction with Humans imposes stringent constraints on software. Smart factories, smart medical devices and autonomously driving cars are among the most prominent use cases where software interfaces with people closer than ever before. So close that in many IoT use cases, software takes control even in critical situations.
When this happens, a faulty software puts lives at risk. More than ever, we need strong guarantees that the IoT software is correct.

From the last decades, we have learned that developing correct programs is nearly impossible and our approaches to detecting the problems (bugs) is flawed. The advances in heterogeneous processor architectures that span even into the cloud data centers made it nearly impossible to develop correct programs even for experts. The prevalent programming languages such as Java, C/C++, etc. offer almost no help to tame this complexity and guarantee a bug-free execution. So far, performance optimizations were the dominating incentives of a compiler.
Consequently, testing sets out to hunt the bugs in a program. But testing is not only limited by its design but also extremely energy-consuming and still lacks automation. After all finding good tests is hard and now often augmented by machine learning. The more complex the software is the harder it gets to find good tests and the more (machine) learning and test execution is required.

In this lecture, we study the foundations of formal verification. In formal verification, the compiler is augmented with a theorem prover that assists the programmer to develop mathematical proofs for important properties of the program. We give an introduction to formally verified software development with special focus on programming language and compiler construction. The lecture is split into two parts. The first part of the lecture introduces the deep connections between logic and type systems that are required to prove programs correct. The second part applies these techniques to the construction of a simple language and its compiler to prove properties such as semantic preservation and determinism.

By the end of the course, the students will understand the connections between a proof and a proposition in relation to a program and its types.
The students will be able to develop programs and proofs both in Agda and Coq. Furthermore, the course teaches differernt representations of programming language semantics that underpin the verification technique for programming languages, compilers and even processors for the various IoT scenarios ranging from small medical devices to programming in the cloud.

Language: English

Schedule: In the winter semester 2021/22, the lecture will be held on Tuesday, 09:20-10:50, in person in APB/E010. The practical sessions are all assignments which are discussed online.

Research Project (Forschungspraktikum & Masterpraktikum Compilerbau)

Classification:

Degree Program Module
Master Informatik INF-PM-FPG, INF-PM-FPA, INF-MA-PR
Diplom Informatik INF-PM-FPG, INF-PM-FPA

Configuration: 8P/PB

Description: In this course, the student works independently but supervised on a given contemporary research project. During the project, the student learns the basic methods of research in the field of compiler construction, application of measurements, and evaluation and justification of results. The outcomes of the project are presented and defended to an expert audience. As such, the research intern is a great opportunity to get involved in the chair's research endeavours and an excellent preparation for writing a diploma or master thesis in our group!

Schedule: Indivually.

How to get started: The projects are defined individually. You can get an overview of our current research projects, the collection of ideas for student porjects or individually browse the staff pages. In case of interest, simply contact the corresponding staff member.

Seminar Current Topics in Compiler Construction (Hauptseminar)

Classification:

Degree Program Module
Bachelor Informatik INF-B-510
Medieninformatik INF-B-530
Master Informatik INF-AQUA, INF-VERT5
Medieninformatik INF-AQUA
Diplom Informatik INF-D-940, INF-VERT5
Informationssystemtechnik INF-VERT5

Configuration: 0/2/0

Description: In this seminar, the student acquires the basic skills for doing research: performing a related work search, composing a 6-page paper-like write-down and presenting it. These are fundamental skills that are required as early as doing a Bachelors Thesis, Großer Beleg or Masters Thesis.

The student is free to chose a topic/paper from a set of pre-selected conference papers. Afterwards, the student has one month to review and gather related work on the subject matter addressed in this paper. The write-down must present a more detailed comparison on the paper topic than is already given in the related work section. It may also refer to commonalities in other areas and should suggest now research directions that the approach in the selected paper does not cover.

Schedule: There will be a maximum capacity of 10 students to participate in the seminar. Register with an e-mail to Alexander Brauckmann until 2 weeks after the semester started. We will follow up with a date for the presentation and the distribution of topics afterwards.

Language: English.

Forschungslinie – Einführung in die Forschung

Classification:

Degree Program Module
Diplom Informatik INF-D-910

configuration:  1 DS

Lecturer: Prof. Jeronimo Castrillon

Description:  Overview of compiler techniques with a quick introduction to today's research problems, including automatic extraction of parallelism from sequential programming models, and tools for parallel so-called dataflow programming models. 

Schedule: Taught in the summer semester.

Language: German (or in English depending on the audience).

Lecture material: Upon email request.