Teaching

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
  Lehrexport MATH-BA-INFE, MATH-BA-INFF, MATH-MA-INFTGL 

Configuration:  3 V / 2 Ü / 0 P

Lecturer: Prof. Jeronimo Castrillon

Instructors:  Karl Friebel and Steffen Köhler

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 TGI Opal course.

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-BDSE(*), INF-DSE-20-E-ADSE (only in combination with the seminar)

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 / 2 Ü / 0 P or 2 V / 0 Ü / 0 P (only INF-B-275)

Lecturer: Prof. Dr.-Ing. Jeronimo Castrillon

Seminar: Lars Schütze

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: English (winter semester) / German (summer semester)

Schedule: The lecture will be held on Tuesday 13:00 - 14:30 in SCH/A101/H. The seminar will be held on Thursday 09:20 - 10:50 in APB/E023/U.

Lecture material: Material is offered via the OPAL course.

Einführung in die Technische Informatik

Classification:

Degree Program Module
Master Informatik INF-BAS5

configuration:  4 weeks each with 4 DS

Lecturer: Prof. Jeronimo Castrillon

Instructors:  Robert Khasanov , Asif Ali Khan, Julian Robledo (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 2022/2023, the lecture will be held on: Tuesdays, 16:40-18:10 in APB/E007 and Fridays, 14:50-16:20 in APB/E006 (the 4th part starts on 10.01.23).

Lectures: 10.01., 13.01., 17.01., 20.01., 24.01., 27.01., 31.01., 03.02.

Practical sessions: Wednesdays, 14:50-18:10 in room APB/E069 (11.01., 18.01., 25.01., 01.02.)

Details: For more details, please refer to the Opal course page.

Foundations of Certified Programming Language and Compiler Design

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
Master Computational Modeling and Simulation CMS-LM-MOC, CMS-LM-BAS

Configuration: 2 V / 2 Ü / 0 P

Lecturer: Dr.-Ing. Sebastian Ertel

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: Up to date information is on the website of the lecture at the Barkhausen Institut.

Research Project (Forschungspraktikum Compilerbau)

Classification:

Degree Program Module
Master Informatik INF-PM-FPG, INF-PM-FPA
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 has a great opportunity to get involved in the chair's research endeavors and an excellent preparation for writing a diploma or master thesis in our group!

Schedule: Individually.

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 projects or individually browse the staff pages. In case of interest, simply contact the corresponding staff member.

Komplexpraktikum Compilerbau (Masterpraktikum)

Classification:

Degree Program Module
Master Informatik INF-MA-PR
Diplom Informatik Not applicable

Configuration: 0/0/8

Instructors: Clément Fournier

Description: In this course, the student works independently but supervised on a given contemporary project. During the project, the student learns the basic methods of implementing programming languages and developing domain-specific languages with modern compiler projects such as MLIR. The outcomes of the project are presented and defended to an expert audience. As such, the research intern has a great opportunity to get technical understanding of contemporary compiler implementations and a birds view on the chair's research endeavor. This is an excellent preparation for writing a master thesis in our group!

First session: 17.04.24 2. DS, raum BAR-II62

Schedule: Mi 2. DS, raum BAR-II62

How to get started: Register via OPAL.

Seminar Current Topics in Compiler Construction (Hauptseminar, Proseminar)

Classification:

Degree Program Module
Bachelor Informatik INF-B-510, INF-B-610
Medieninformatik INF-B-530, INF-B-610
Master Informatik INF-AQUA, INF-VERT4, INF-VERT5
Medieninformatik INF-AQUA
Diplom Informatik INF-D-940, INF-VERT4, 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. The goal is for the student to present the work discussed and contextualize it by gathering and reviewing related work on the subject matter addressed in the paper. The resulting write-down must present a more detailed comparison on the paper topic than is already given in the original related work section. It may also refer to commonalities in other areas and should suggest new 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 Felix Suchert until the 17.10.2024. The Kick-Off will take place on 18.10.2024, 11:10-12:40 in BAR II62. This is a one-time appointment, future appointments will be coordinated with participants.

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.