|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.
Details: For more details, please refer to the TGI Opal course.
INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
|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|
(*) 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
- Register allocation
Language: English (winter semester) / German (summer semester)
Schedule: The lecture will be held on Tuesday, 13:00-14:30 in SCH/A118/H. The seminar will be held Thursday, 9:20-10:50 in SCH/A118/H.
Lecture material: Material is offered via the OPAL course.
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.
|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
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.
Schedule: Up to date information is on the website of the lecture at the Barkhausen Institut.
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!
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.
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: Di. 17.10, 1. DS (7:30-9:00), Raum BAR II62
Schedule: Mo. 4. DS (13:00-14:30), Raum APB-E040 (PC-Pool)
How to get started: Register via OPAL.
|Master||Informatik||INF-AQUA, INF-VERT4, INF-VERT5|
|Diplom||Informatik||INF-D-940, INF-VERT4, INF-VERT5|
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 18.10.2023. The Kick-Off will take place on 19.10.2023, 13:00-14:30 in BAR II62. This is a one-time appointment, future appointments will be coordinated with participants.
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.