Courses
Archive: past or irregular Courses
Programmierung und Architekturen von Cluster-Rechnern | last time SS 2020 |
Informatik-Repetitorium | last time WS 2018/19 |
Geschichte der Programmiersprachen | last time WS 2018/19 |
Mobile Application Development | last time SS 2016 |
Principles of Programming Languages | last time SS 2015 |
Parallele Algorithmen/Parallel Algorithms | least time WS 2014/15 |
Graphtransformationssysteme | last time SS 2014 |
Funktionale Programmierung in Haskell | last time SS 2013 |
Previous Semester
Vorlesung
Applied Software Engineering
Basic data
Title | Praktische Softwaretechnik |
---|---|
Short text | PSWT-PSWT |
Module frequency | nur im Wintersemester |
Semester hours per week | 4 |
Software ist überall und Software ist komplex. Nicht triviale Software wird von Teams entwickelt. Oft müssen bei der Entwicklung von Softwaresystemen eine Vielzahl von funktionalen und nicht funktionalen Anforderungen berücksichtigt werden. Hierfür ist eine disziplinierte und ingenieurmäßige Vorgehensweise notwendig.
Die Vorlesung "Praktische Softwaretechnik" soll ...
- ein Bewusstsein für die typischen Problemstellungen schaffen, die bei der Durchführung umfangreicher Softwareentwicklungsprojekte auftreten,
- ein breites Basiswissen über die Konzepte, Methoden, Notationen und Werkzeuge der modernen Softwaretechnik vermitteln und
- die Möglichkeiten und Grenzen ihres Einsatzes im Kontext realistischer Projektumgebungen anhand praktischer Beispiele demonstrieren und bewerten.
Die Vorlesung adressiert inhaltlich alle wesentlichen Bereiche der Softwaretechnik. Vorgestellt werden unter anderem
- traditionelle sowie agile Methoden der Softwareentwicklung,
- Methoden der Anforderungsanalyse und des Systementwurfs,
- Konzepte der Softwarearchitektur,
- implementierung und Dokumentation und
- Testen und Qualitätssicherung sowie Prozessverbesserung.
Parallel groups / dates
*Modulbezeichnung*
PSWT-PSWT (Praktische Softwaretechnik)
*Dozenten*
Dr. Ralf Ellner, Dr. Christoph Erhardt, Prof. Dr. Bernd Hindel, Dr. Martin Jung, Prof. Dr. Detlef Kips, Dr. Norbert Oster, Prof. Dr. Dirk Riehle, Dr. Jens Schedel
*Inhalt*
Software ist überall und Software ist komplex. Nicht triviale Software wird von Teams entwickelt. Oft müssen bei der Entwicklung von Softwaresystemen eine Vielzahl von funktionalen und nicht funktionalen Anforderungen berücksichtigt werden. Hierfür ist eine disziplinierte und ingenieurmäßige Vorgehensweise notwendig.
Die Vorlesung "Praktische Softwaretechnik" soll ...
- ein Bewusstsein für die typischen Problemstellungen schaffen, die bei der Durchführung umfangreicher Softwareentwicklungsprojekte auftreten,
- ein breites Basiswissen über die Konzepte, Methoden, Notationen und Werkzeuge der modernen Softwaretechnik vermitteln und
- die Möglichkeiten und Grenzen ihres Einsatzes im Kontext realistischer Projektumgebungen anhand praktischer Beispiele demonstrieren und bewerten.
Die Vorlesung adressiert inhaltlich alle wesentlichen Bereiche der Softwaretechnik. Vorgestellt werden unter anderem
- traditionelle sowie agile Methoden der Softwareentwicklung,
- Methoden der Anforderungsanalyse und des Systementwurfs,
- Konzepte der Softwarearchitektur, -implementierung und Dokumentation und
- Testen und Qualitätssicherung sowie Prozessverbesserung.
Weitere Materialien und Informationen sind hier zu finden:
- StudOn: https://www.studon.fau.de
- Zeitplan: http://goo.gl/0fy1T
- Materialien: Auf StudOn über den Zeitplan
Die Teilnahme ist begrenzt. Bitte registrieren Sie sich zeitig für den Kurs auf StudOn, um sicherzustellen, dass Sie einen Platz erhalten.
*Lernziele und Kompetenzen*
- Den Unterschied zwischen "Programmieren im Kleinen" und "Programmieren im Großen" (Softwaretechnik) zu verstehen
- Grundlegende Methoden der Softwaretechnik über den gesamten Projekt- und Produktlebenszyklus zu verstehen und anwenden zu können
- Die Rolle und Zuständigkeiten der Berufsbilder "Projektleiter", "Anforderungsermittler", "Softwareentwickler" und "Qualitätssicherer" zu verstehen
*Studien- und Prüfungsleistungen*
90min. Klausur
*Berechnung Modulnote*
100% Klausurnote
*Vorbereitende Literatur*
http://goo.gl/JSoUbV
1. Parallelgruppe
Semester hours per week | 4 |
---|---|
Teaching language | English |
Responsible |
Ralf Ellner Dr.Ing. Christoph Erhardt |
Maximum number of participants: 100
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 10:15 - 13:45 | 19.10.2022 - 08.02.2023 | 21.12.2022 04.01.2023 28.12.2022 |
|
11301.00.005 |
Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3 |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Es ist keine Anmeldung erforderlich.
Parallel groups / dates
In der Vorlesung werden Aspekte des Übersetzerbaus beleuchtet, die über die Vorlesungen "Grundlagen des Übersetzerbaus" und "Optimierungen in Übersetzern" hinausgehen.
Voraussichtliche Themen sind:
- Übersetzer u. Optimierungen für funktionale Programmiersprachen
- Übersetzung aspektorientierter Programmiersprachen
- Erkennung von Wettlaufsituationen
- Software Watermarking
- Statische Analyse und symbolische Ausführung
- Binden von Objektcode und Unterstützung für dynamische Bibliotheken
- Strategien zur Ausnahmebehandlung
- Just-in-Time-Übersetzer
- Speicherverwaltung und Speicherbereinigung
- LLVM
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen Julian Brandner Florian Mayer Tobias Heineken |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 14:15 - 15:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Basic data
Title | Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallel groups / dates
*Motivation:*
At first glance, it may appear less important to focus on compiler
construction. Other areas seem to be much more applicable to current
tasks in industrial practice. But appearences are deceptive:
- Compilers are among the most thoroughly studied middle-sized sequential software systems. Hence, there is a lot to learn from the experience made in the past.
- In the exercises that accompany this lecture, you will construct your own (small) compiler.
- For many participants, this project will be their first bigger software project.
- Normally, you expect every compiler you use to generate correct code. In the lecture, you will learn how one can achieve the required degree of correctness and reliability.
- You will gain an understanding of the concepts of programming languages and of how high-level language features are translated into machine code. Keeping this knowledge at the back of your mind, you will improve your capability to write good and efficient programs.
- Compilers are used not only for programming languages. Special compilers are needed in many areas of every-day life in computer science, e.g. for text formatting, program transformations, aspect oriented programming, XML processing etc.
- Every engineer should be able to build the tools he/she is using. For computer scienctists, this requires an in-depth understanding of the guts of compilers.
.
*Main Focus of this Lecture:*
The lecture teaches concepts and techniques of compiler construction from a compiler developer view, following the structure of the compiler frontend, middle end, and backend. Exercise sessions and practical assignments complement the lecture; the students implement their own compiler (based on a framework) for the e2 programming language, which is designed for this series of compiler construction lectures.
*Topics covered in the lecture:*
- Principles of compiling imperative programming languages
- Structure of a compiler
- Scanner and parser
- Abstract syntax trees (ASTs)
- Visitor design pattern
- AST transformations, desugaring
- Symbol tables and scopes
- Semantic analysis: name analysis, type checking
- Compilation of arithmetic expressions and control flow structures to register-based and stack-based intermediate languages
- Compilation of functions and function calls, activation records
- Compilation of object-oriented languages with single inheritance, interfaces, and multiple inheritance
- Method resolution in Java (overloaded and overridden methods)
- Code generation with Sethi-Ullmann algorithm, Graham-Glanville algorithm, tree transformations, and dynamic programming
- Register allocation with local techniques and graph coloring
- Instruction scheduling with the list scheduling technique
- Debuggers
.
*Lecture Topics:*
1. Introduction (Class overview, modular structure of compilers (front-, middle-, and backend), compilation bootstrapping)
2. Lexer and Parser (Tokens, literals, symbol table, grammar classes (LR(k), LL(k), ...), concrete syntax tree, shift-reduce parser)
3. ASTs and semantic analysis (Abstract syntax tree, visitor pattern, double dispatch, scopes, definition table)
4. Type consistency (Type safety, type system, type checks, type inference, type conversions, attributed grammars)
5. AST transformations (Transformation patterns (arithmetics), transformation of nested and generic classes)
6. Intermediate representations (Types of IRs, arithmetic operations, assignments, multidimensional array access, structs, control flow instructions, short-circuit evaluation)
7. Activation record and stack frame (Relative addresses, call by value/reference/name, nested functions, function pointers, stack pointer and frame pointer, function calls: prolog and epilog)
8. Object-oriented languages: single inheritance (Symbol and type analysis, method selection with method overloading and overriding, virtual method calls, class descriptors, dynamic type checks and casts)
9. Object-oriented languages II: interfaces, multiple inheritance (Interface v-tables, dynamic type checks and casts with interfaces, interfaces with default implementations and state, diamond problem, virtual inheritance)
10. Basic code generation (Code selection, register allocation, instruction order, basic blocks, optimal code generation for expression trees)
11. Optimized code selection (Code selection as tree transformation, Graham-Glanville code generators, dynamic programming)
12. Optimized register allocation (Performance approximations, liveness analysis, collision and interference graph, register spilling, coloring heuristics, optimistic extension, live range splitting, register coalescing, data structures)
13. Instruction level parallelism, instruction order, debugger (Data, structural, and control conflicts in CPU pipelines, list scheduling, delay slots, branch predictions, superscalar and VLIW architectures, ptrace, break- and watch-points, DWARF)
.
*Assignment Milestones:*
For the assignments of this course, the students put the concepts and techniques presented in the lecture for implementing a compiler into practice. The goal of the assignments is to implement a functional compiler for the e2 programming language by the end of the semester. The e2 language is specifically designed for educational purposes; the students obtain a description of the language.
A framework for the implementation is provided to the students. The students implement the core components of the compiler in five milestones.
All milestones need to be fulfilled to pass the module; the last milestone contains two tasks. In particular, the milestones are:
- Milestone 1: Grammar definition and construction of the AST: ANTLR productions, AST visitor interface, and generic AST visitor for array accesses and return and loop statements; AST visitor for AST visualization.
- Milestone 2: Name analysis: symbol table; declaring standard functions; AST visitor for name analysis.
- Milestone 3: Constant folding and type analysis: AST transformations for constant folding; AST visitor for bottom-up type analysis, adding AST nodes for implicit casts;
- Milestone 4: AST translation to intermediate representation: AST visitor to generate IR; translation of arithmetic, return, and assign statements, logical expressions, conditions, loops.
- Milestone 5.0: Memory assignment: definition and implementation of the ABI calling convention; memory assignment of variables; stack frame allocation; caller-save and callee-save registers.
- Milestone 5.1: Code generation: implementation of the e2 standard library; IR visitor to generate assembly code.
For milestones one through three, the compiler needs to support both integer and floating-point arithmetic. For the last two milestones, only integer arithmetic is required. null
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen |
Literature references: - "Modern Compiler Implementation in Java", A. Appel, Cambridge University Press, 1998
- "Compilers - Principles, Techniques and Tools", A. Aho, M. Lam, R. Sethi, J. Ullmann, Addison-Wesley, 2006
- "Modern Compiler Design", D. Grune, H. Bal, C. Jacobs, K. Langendoen, Wiley, 2002 null
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 08:15 - 09:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 |
|
11301.00.005 |
Software-Projektmanagement
Basic data
Title | Software-Projektmanagement |
---|---|
Short text | PSWT-SPM |
Module frequency | nur im Wintersemester |
Semester hours per week | 4 |
Parallel groups / dates
Zahlreiche Statistiken zeigen: Nur wenige Software-Projekte werden erfolgreich (hinsichtlich Zeit-, Budget- und Funktionsvorgaben) abgeschlossen. Sehr viele Projekte werden nur mit erheblichen Defiziten zu Ende gebracht, noch viel zu viele scheitern gänzlich. Oft liegen die Gründe im ungenügenden Projektmanagement.
Die Vorlesung gibt einen Überblick zu grundlegenden Disziplinen des Projektmanagements und zeigt deren Wirkungsweisen an Hand von Praxisbeispielen.
Gliederung:
1. Einführung Grundbegriffe des Projektmanagements, unterschiedliche Projektgrößen, unterschiedliche Projektarten, Erfolg und Misserfolg in Projekten
2. Projektstart und Planung,
Kickoff-Meeting, Anforderungssammlung, Projektstrukturplan, Aufwandsschätzung, Aktivitäten-, Ressourcen- und Kostenplan
3. Projektkontrolle und Steuerung,
Fortschrittsüberwachung, Besprechungen, Berichte, Änderungsmanagement
4. Personalmanagement,
Der Faktor Mensch, Teamwork, Führungsgrundsätze, Gesprächsstrategien, Konflikte lösen
5. Änderungsmanagement
Konfigurationen, Änderungswünsche, Change Control Board, Built- und Release-Mechanismen
6. Qualitäts- und Risikomanagement
Qualitätsplan, Audits und Reviews, Risikoermittlung, Risikobewertung und Verfolgung, Gegenmaßnahmen
7. Reifegrad Modelle und Standards
CMMI, SPiCE, ISO9001, ISO/IEC12207
1. Parallelgruppe
Semester hours per week | 4 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Bernd Hindel |
Literature references: - Hindel, Bernd; Hörmann, Klaus; Müller, Markus; Schmied, Jürgen: "Basiswissen Software-Projektmanagement" (dpunkt-Verlag, 2. Auflage 2006)
- Hindel, Bernd; Hörmann, Klaus; Müller, Markus; Dittmann, Lars: "SPiCE in der Praxis" (dpunkt-Verlag, 2006)
- Hindel, Bernd; Versteegen, Gerhard; Meier, Erich; Vlasan, Adriana: "Prozessübergreifendes Projektmanagement" (Springer Verlag, 2005)
Maximum number of participants: 20
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung+SaundSo Mon, 08:00 - 16:00 | 06.03.2023 - 20.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Tue, 08:00 - 16:00 | 07.03.2023 - 21.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Wed, 08:00 - 16:00 | 08.03.2023 - 22.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Thu, 08:00 - 16:00 | 09.03.2023 - 23.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Fri, 08:00 - 16:00 | 10.03.2023 - 24.03.2023 |
|
11901.U1.245 |
Hauptseminar
Machine Learning: Advances
Basic data
Title | Machine Learning: Advances |
---|---|
Short text | SemML-II |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallel groups / dates
Dieses Seminar führt in das Themengebiet des tiefen Lernens ein. Tiefes Lernen ist eine der gefragtesten Fähigkeiten in der künstlichen Intelligenz. Verfahren des tiefen Lernens haben beispielsweise alle bisherigen Benchmarks für die Klassifizierung von Bildern, Text und Sprache weit übertroffen. Tiefes Lernen ermöglicht und verbessert einige der interessantesten Anwendungen der Welt, wie autonome Fahrzeuge, Genomforschung, humanoide Robotik, Echtzeitübersetzung und es besiegt die besten menschlichen Go-Spieler der Welt.
Ziel des Seminars ist eine umfassende Einführung in das tiefe Lernen. Basierend auf maschinellem Lernen wird daher erklärt, wie tiefes Lernen funktioniert, wann und warum es wichtig ist und die wesentlichen Verfahren beleuchtet.
Zu den Verfahren gehören: (1) Architektur und Hyperparameter; (2) mehrschichtiges Perzeptron; (3) Mischungen neuronaler Netze; (4) tiefes Lernen für Sequenzen (Hidden Markov-Modelle, wiederkehrende neuronale Netze, bidirektionales/Langzeit-Kurzzeitgedächtnis, Gated Recurrent Unit, Temporal Convolutional Network); (5) tiefes Lernen für Bilder (Faltungs-Neuronale Netze); (6) tiefes/verstärkendes Lernen; (7) Markov-Prozesse (Gaußsche Prozesse und Bayes'sche Optimierung, grafische Modelle und Bayes'sche Netze, Kalman- und Partikelfilter); (8) Online-Lernen und Spieltheorie; (9) unüberwachtes Repräsentationslernen und generative Methoden (allgemeine gegnerische Netzwerke, Variational Autoencoder); (10) Datenerweiterung und Transferlernen.¹
Das Seminar gibt einen Einblick in die Welt des tiefen Lernens und befähigt den Studierenden eine wissenschaftliche Präsentation und Ausarbeitung anzufertigen, um individuell erworbenes Wissen einem Fachpublikum vermitteln zu können.
¹ Die Themen sind an den aktuellen Forschungsstand angepasst und wechseln sich jährlich ab.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German or English |
Responsible |
Tobias Feigl Christoffer Löffler Dr.-Ing. Christopher Mutschler |
Literature references: - G. Goodfellow und Y. Bengio und A. C. Courville: Deep Learning, mitp-Verlag, 2015
- R. S. Sutton und A. G. Barto: Reinforcement Learning: An Introduction, MIT Press, 1998
- F. V. Jensen: An Introduction To Bayesian Networks, Springer, 1996
- R. Rojas: Theorie der neuronalen Netze - eine systematische Einführung, Springer, 1993
- J. Schmidhuber: Deep learning in neural networks: An overview, J. Intl. Neural Network Society (INNS), 2015
- D. Silver et al.: Mastering the game of Go with deep neural networks and tree search, J. Nature, 2016
- F. Chollet: Deep Learning with Python, Manning Publications, 2017
- A. Müller und S. Guido: Introduction to Machine Learning with Python: A Guide for Data Scientists, O'Reilly UK Ltd., 2016
- T. J. Hastie und R. Tibshirani und J. H. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer Series in Statistics, 2009
No planned appointments for this parallel group yet.
Machine Learning: Introduction
Basic data
Title | Machine Learning: Introduction |
---|---|
Short text | SemML-I |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallel groups / dates
Dieses Seminar führt in das Themengebiet des maschinellen Lernens (ML) ein. ML ist die Wissenschaft, Computer zum Handeln zu bewegen, ohne explizit programmiert zu werden. ML ist heute so allgegenwärtig, dass wir es wahrscheinlich täglich verwenden, ohne es zu wissen. So hat ML in den letzten Jahren beispielsweise selbstfahrende Autos, praktische Bild- und Spracherkennung und die effektive Partner- und Websuche ermöglicht.
Ziel des Seminars ist eine umfassende Einführung in das maschinelle Lernen, Analyse und Verarbeitung von Daten sowie statistische Mustererkennung. Zu den Themen gehören: (1) Klassifizierungs- und Regressionsprobleme; (2) überwachtes Lernen (parametrische und nicht parametrische Algorithmen, lineare und logistische Regression, k-nächster Nachbar, Support-Vector-Machines, Entscheidungsbäume, flache neuronale Netze); (3) unüberwachtes Lernen (K-Means, Clustering, Dimensionsreduktion, PCA, LDA, Empfehlungssysteme); (4) Ensemble- und Online-Lernen; (5) Regularisierung: Modelldiagnose, Fehleranalyse und Qualitätsmetriken sowie Interpretation der Ergebnisse; (5) evolutionäre Algorithmen; (6) Anomalieerkennung und Gaußsche Verteilungen; (7) Bayes, Kalman-Filter und Gaußsche Prozesse.¹
Das Seminar gibt einen Einblick in die Welt des maschinellen Lernens und befähigt den Studierenden eine wissenschaftliche Präsentation und Ausarbeitung anzufertigen, um individuell erworbenes Wissen einem Fachpublikum vermitteln zu können.
¹ Die Themen sind an den aktuellen Forschungsstand angepasst und wechseln sich jährlich ab.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German or English |
Responsible |
Christoffer Löffler Tobias Feigl Dr.-Ing. Christopher Mutschler |
Literature references: - A. Müller und S. Guido: Introduction to Machine Learning with Python: A Guide for Data Scientists, O'Reilly UK Ltd., 2016
- K. P. Murphy: Machine learning - a probabilistic perspective, Adaptive computation and machine learning series, MIT Press, 2012.
- T. J. Hastie und R. Tibshirani und J. H. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer Series in Statistics, 2009.
- T. M. Mitchell: Machine Learning, McGraw-Hill Education Ltd., 1997
- F. V. Jensen: An Introduction To Bayesian Networks, Springer, 1996
- J. A. Freeman: Simulating neural networks - with Mathematica, Addison-Wesley Professional, 1993
- J. A. Hertz und A. Krogh und R. G. Palmer: Introduction to the theory of neural computation, Westview Press, 1991
- R. Rojas: Theorie der neuronalen Netze - eine systematische Einführung, Springer, 1993
- W. Banzhaf und F. D. Francone und R. E. Keller und P. Nordin: Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications, Morgan Kaufmann, 1998
- M. Mitchell: An introduction to genetic algorithms, MIT Press, 1996
- Z. Michalewicz: Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1992
- M. Bishop: Pattern Recognition and Machine Learning (Information Science and Statistics), Springer, 2006
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Einzeltermin Sat, 10:00 - 15:00 | 28.01.2023 - 28.01.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 04.03.2023 - 04.03.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 11.03.2023 - 11.03.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 18.03.2023 - 18.03.2023 | 11302.04.150 |
Seminar
Begleitseminar zu Bachelor- und Masterarbeiten
Basic data
Title | Begleitseminar zu Bachelor- und Masterarbeiten |
---|---|
Short text | inf2-bs-bama |
Module frequency | in jedem Semester |
Semester hours per week | 3 |
Parallel groups / dates
1. Parallelgruppe
Semester hours per week | 3 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 12:15 - 13:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.04.150 |
Übung
Rechnerübungen zu Algorithmen und Datenstrukturen
Basic data
Title | Rechnerübungen zu Algorithmen und Datenstrukturen |
---|---|
Short text | RUEB-AuD |
Module frequency | in jedem Semester |
Semester hours per week | 2 |
Anmeldung zu den Übungen über StudOn in der ersten Vorlesungswoche erforderlich!
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche!
Die Vorlesung zu diesem Modul wurde letztmalig im Wintersemester 2021/22 angeboten.
Der Übungsbetrieb findet letztmals im Wintersemester 2023/24 statt.
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 14:00 - 16:00 | 18.10.2022 - 07.02.2023 | 27.12.2022 18.10.2022 03.01.2023 01.11.2022 |
|
11302.00.156 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 16:00 - 18:00 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 16:00 - 18:00 | 19.10.2022 - 08.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
9. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 12:00 - 14:00 | 21.10.2022 - 10.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 16:00 - 18:00 | 20.10.2022 - 09.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
8. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 10:00 - 12:00 | 21.10.2022 - 10.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 16:00 - 18:00 | 18.10.2022 - 07.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 14:00 - 16:00 | 20.10.2022 - 09.02.2023 | 05.01.2023 20.10.2022 29.12.2022 |
|
11302.00.156 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 14:00 - 16:00 | 19.10.2022 - 08.02.2023 |
Tafelübungen zu Algorithmen und Datenstrukturen
Basic data
Title | Tafelübungen zu Algorithmen und Datenstrukturen |
---|---|
Short text | TUEB-AuD |
Module frequency | in jedem Semester |
Semester hours per week | 2 |
Anmeldung zu den Übungen über StudOn in der ersten Vorlesungswoche erforderlich!
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche!
Die Vorlesung zu diesem Modul wurde letztmalig im Wintersemester 2021/22 angeboten.
Der Übungsbetrieb findet letztmals im Wintersemester 2023/24 statt.
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 18:15 - 19:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 20.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 18:00 s.t. | 11901.U1.245 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 08:15 - 09:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 08:15 - 09:45 | 19.10.2022 - 08.02.2023 | 28.12.2022 04.01.2023 19.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 8:30 s.t. | 11302.00.152 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 18:15 - 19:45 | 19.10.2022 - 08.02.2023 | 28.12.2022 04.01.2023 19.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 18:00 s.t. | 11901.U1.245 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 08:15 - 09:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 16:15 - 17:45 | 21.10.2022 - 10.02.2023 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallel groups / dates
Die Übungen zu Übersetzerbau 3 stellen eine Ergänzung zur
Vorlesung dar. In der Vorlesung wird unter anderem die
Architektur und Funktionsweise einer virtuellen Maschine
beleuchtet. In den Übungen soll dies praktisch umgesetzt werden.
Hierzu sollen die Studenten in einer Blockveranstaltung eine
kleine virtuelle Maschine selbst implementieren. Den Anfang
bildet das Einlesen des Byte-Codes und am Ende soll ein
funktionsfähiger optimierender Just-in-Time-Übersetzer entstehen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung Mon, 09:00 - 18:00 | 06.03.2023 - 10.03.2023 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Basic data
Title | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Parallel groups / dates
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 08:15 - 09:45 | 21.10.2022 - 10.02.2023 | 23.12.2022 30.12.2022 06.01.2023 21.10.2022 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Michel Schmid Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 10:15 - 11:45 | 20.10.2022 - 09.02.2023 | 29.12.2022 20.10.2022 05.01.2023 22.12.2022 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Florian Mayer Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 17.10.2022 - 06.02.2023 | 17.10.2022 24.10.2022 26.12.2022 02.01.2023 |
|
11302.02.133 |
Current Semester
Vorlesung
Applied Software Engineering
Basic data
Title | Praktische Softwaretechnik |
---|---|
Short text | PSWT-PSWT |
Module frequency | nur im Wintersemester |
Semester hours per week | 4 |
Software ist überall und Software ist komplex. Nicht triviale Software wird von Teams entwickelt. Oft müssen bei der Entwicklung von Softwaresystemen eine Vielzahl von funktionalen und nicht funktionalen Anforderungen berücksichtigt werden. Hierfür ist eine disziplinierte und ingenieurmäßige Vorgehensweise notwendig.
Die Vorlesung "Praktische Softwaretechnik" soll ...
- ein Bewusstsein für die typischen Problemstellungen schaffen, die bei der Durchführung umfangreicher Softwareentwicklungsprojekte auftreten,
- ein breites Basiswissen über die Konzepte, Methoden, Notationen und Werkzeuge der modernen Softwaretechnik vermitteln und
- die Möglichkeiten und Grenzen ihres Einsatzes im Kontext realistischer Projektumgebungen anhand praktischer Beispiele demonstrieren und bewerten.
Die Vorlesung adressiert inhaltlich alle wesentlichen Bereiche der Softwaretechnik. Vorgestellt werden unter anderem
- traditionelle sowie agile Methoden der Softwareentwicklung,
- Methoden der Anforderungsanalyse und des Systementwurfs,
- Konzepte der Softwarearchitektur,
- implementierung und Dokumentation und
- Testen und Qualitätssicherung sowie Prozessverbesserung.
Parallel groups / dates
*Modulbezeichnung*
PSWT-PSWT (Praktische Softwaretechnik)
*Dozenten*
Dr. Ralf Ellner, Dr. Christoph Erhardt, Prof. Dr. Bernd Hindel, Dr. Martin Jung, Prof. Dr. Detlef Kips, Dr. Norbert Oster, Prof. Dr. Dirk Riehle, Dr. Jens Schedel
*Inhalt*
Software ist überall und Software ist komplex. Nicht triviale Software wird von Teams entwickelt. Oft müssen bei der Entwicklung von Softwaresystemen eine Vielzahl von funktionalen und nicht funktionalen Anforderungen berücksichtigt werden. Hierfür ist eine disziplinierte und ingenieurmäßige Vorgehensweise notwendig.
Die Vorlesung "Praktische Softwaretechnik" soll ...
- ein Bewusstsein für die typischen Problemstellungen schaffen, die bei der Durchführung umfangreicher Softwareentwicklungsprojekte auftreten,
- ein breites Basiswissen über die Konzepte, Methoden, Notationen und Werkzeuge der modernen Softwaretechnik vermitteln und
- die Möglichkeiten und Grenzen ihres Einsatzes im Kontext realistischer Projektumgebungen anhand praktischer Beispiele demonstrieren und bewerten.
Die Vorlesung adressiert inhaltlich alle wesentlichen Bereiche der Softwaretechnik. Vorgestellt werden unter anderem
- traditionelle sowie agile Methoden der Softwareentwicklung,
- Methoden der Anforderungsanalyse und des Systementwurfs,
- Konzepte der Softwarearchitektur, -implementierung und Dokumentation und
- Testen und Qualitätssicherung sowie Prozessverbesserung.
Weitere Materialien und Informationen sind hier zu finden:
- StudOn: https://www.studon.fau.de
- Zeitplan: http://goo.gl/0fy1T
- Materialien: Auf StudOn über den Zeitplan
Die Teilnahme ist begrenzt. Bitte registrieren Sie sich zeitig für den Kurs auf StudOn, um sicherzustellen, dass Sie einen Platz erhalten.
*Lernziele und Kompetenzen*
- Den Unterschied zwischen "Programmieren im Kleinen" und "Programmieren im Großen" (Softwaretechnik) zu verstehen
- Grundlegende Methoden der Softwaretechnik über den gesamten Projekt- und Produktlebenszyklus zu verstehen und anwenden zu können
- Die Rolle und Zuständigkeiten der Berufsbilder "Projektleiter", "Anforderungsermittler", "Softwareentwickler" und "Qualitätssicherer" zu verstehen
*Studien- und Prüfungsleistungen*
90min. Klausur
*Berechnung Modulnote*
100% Klausurnote
*Vorbereitende Literatur*
http://goo.gl/JSoUbV
1. Parallelgruppe
Semester hours per week | 4 |
---|---|
Teaching language | English |
Responsible |
Ralf Ellner Dr.Ing. Christoph Erhardt |
Maximum number of participants: 100
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 10:15 - 13:45 | 19.10.2022 - 08.02.2023 | 21.12.2022 04.01.2023 28.12.2022 |
|
11301.00.005 |
Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3 |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Es ist keine Anmeldung erforderlich.
Parallel groups / dates
In der Vorlesung werden Aspekte des Übersetzerbaus beleuchtet, die über die Vorlesungen "Grundlagen des Übersetzerbaus" und "Optimierungen in Übersetzern" hinausgehen.
Voraussichtliche Themen sind:
- Übersetzer u. Optimierungen für funktionale Programmiersprachen
- Übersetzung aspektorientierter Programmiersprachen
- Erkennung von Wettlaufsituationen
- Software Watermarking
- Statische Analyse und symbolische Ausführung
- Binden von Objektcode und Unterstützung für dynamische Bibliotheken
- Strategien zur Ausnahmebehandlung
- Just-in-Time-Übersetzer
- Speicherverwaltung und Speicherbereinigung
- LLVM
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen Julian Brandner Florian Mayer Tobias Heineken |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 14:15 - 15:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Basic data
Title | Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallel groups / dates
*Motivation:*
At first glance, it may appear less important to focus on compiler
construction. Other areas seem to be much more applicable to current
tasks in industrial practice. But appearences are deceptive:
- Compilers are among the most thoroughly studied middle-sized sequential software systems. Hence, there is a lot to learn from the experience made in the past.
- In the exercises that accompany this lecture, you will construct your own (small) compiler.
- For many participants, this project will be their first bigger software project.
- Normally, you expect every compiler you use to generate correct code. In the lecture, you will learn how one can achieve the required degree of correctness and reliability.
- You will gain an understanding of the concepts of programming languages and of how high-level language features are translated into machine code. Keeping this knowledge at the back of your mind, you will improve your capability to write good and efficient programs.
- Compilers are used not only for programming languages. Special compilers are needed in many areas of every-day life in computer science, e.g. for text formatting, program transformations, aspect oriented programming, XML processing etc.
- Every engineer should be able to build the tools he/she is using. For computer scienctists, this requires an in-depth understanding of the guts of compilers.
.
*Main Focus of this Lecture:*
The lecture teaches concepts and techniques of compiler construction from a compiler developer view, following the structure of the compiler frontend, middle end, and backend. Exercise sessions and practical assignments complement the lecture; the students implement their own compiler (based on a framework) for the e2 programming language, which is designed for this series of compiler construction lectures.
*Topics covered in the lecture:*
- Principles of compiling imperative programming languages
- Structure of a compiler
- Scanner and parser
- Abstract syntax trees (ASTs)
- Visitor design pattern
- AST transformations, desugaring
- Symbol tables and scopes
- Semantic analysis: name analysis, type checking
- Compilation of arithmetic expressions and control flow structures to register-based and stack-based intermediate languages
- Compilation of functions and function calls, activation records
- Compilation of object-oriented languages with single inheritance, interfaces, and multiple inheritance
- Method resolution in Java (overloaded and overridden methods)
- Code generation with Sethi-Ullmann algorithm, Graham-Glanville algorithm, tree transformations, and dynamic programming
- Register allocation with local techniques and graph coloring
- Instruction scheduling with the list scheduling technique
- Debuggers
.
*Lecture Topics:*
1. Introduction (Class overview, modular structure of compilers (front-, middle-, and backend), compilation bootstrapping)
2. Lexer and Parser (Tokens, literals, symbol table, grammar classes (LR(k), LL(k), ...), concrete syntax tree, shift-reduce parser)
3. ASTs and semantic analysis (Abstract syntax tree, visitor pattern, double dispatch, scopes, definition table)
4. Type consistency (Type safety, type system, type checks, type inference, type conversions, attributed grammars)
5. AST transformations (Transformation patterns (arithmetics), transformation of nested and generic classes)
6. Intermediate representations (Types of IRs, arithmetic operations, assignments, multidimensional array access, structs, control flow instructions, short-circuit evaluation)
7. Activation record and stack frame (Relative addresses, call by value/reference/name, nested functions, function pointers, stack pointer and frame pointer, function calls: prolog and epilog)
8. Object-oriented languages: single inheritance (Symbol and type analysis, method selection with method overloading and overriding, virtual method calls, class descriptors, dynamic type checks and casts)
9. Object-oriented languages II: interfaces, multiple inheritance (Interface v-tables, dynamic type checks and casts with interfaces, interfaces with default implementations and state, diamond problem, virtual inheritance)
10. Basic code generation (Code selection, register allocation, instruction order, basic blocks, optimal code generation for expression trees)
11. Optimized code selection (Code selection as tree transformation, Graham-Glanville code generators, dynamic programming)
12. Optimized register allocation (Performance approximations, liveness analysis, collision and interference graph, register spilling, coloring heuristics, optimistic extension, live range splitting, register coalescing, data structures)
13. Instruction level parallelism, instruction order, debugger (Data, structural, and control conflicts in CPU pipelines, list scheduling, delay slots, branch predictions, superscalar and VLIW architectures, ptrace, break- and watch-points, DWARF)
.
*Assignment Milestones:*
For the assignments of this course, the students put the concepts and techniques presented in the lecture for implementing a compiler into practice. The goal of the assignments is to implement a functional compiler for the e2 programming language by the end of the semester. The e2 language is specifically designed for educational purposes; the students obtain a description of the language.
A framework for the implementation is provided to the students. The students implement the core components of the compiler in five milestones.
All milestones need to be fulfilled to pass the module; the last milestone contains two tasks. In particular, the milestones are:
- Milestone 1: Grammar definition and construction of the AST: ANTLR productions, AST visitor interface, and generic AST visitor for array accesses and return and loop statements; AST visitor for AST visualization.
- Milestone 2: Name analysis: symbol table; declaring standard functions; AST visitor for name analysis.
- Milestone 3: Constant folding and type analysis: AST transformations for constant folding; AST visitor for bottom-up type analysis, adding AST nodes for implicit casts;
- Milestone 4: AST translation to intermediate representation: AST visitor to generate IR; translation of arithmetic, return, and assign statements, logical expressions, conditions, loops.
- Milestone 5.0: Memory assignment: definition and implementation of the ABI calling convention; memory assignment of variables; stack frame allocation; caller-save and callee-save registers.
- Milestone 5.1: Code generation: implementation of the e2 standard library; IR visitor to generate assembly code.
For milestones one through three, the compiler needs to support both integer and floating-point arithmetic. For the last two milestones, only integer arithmetic is required. null
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen |
Literature references: - "Modern Compiler Implementation in Java", A. Appel, Cambridge University Press, 1998
- "Compilers - Principles, Techniques and Tools", A. Aho, M. Lam, R. Sethi, J. Ullmann, Addison-Wesley, 2006
- "Modern Compiler Design", D. Grune, H. Bal, C. Jacobs, K. Langendoen, Wiley, 2002 null
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 08:15 - 09:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 |
|
11301.00.005 |
Software-Projektmanagement
Basic data
Title | Software-Projektmanagement |
---|---|
Short text | PSWT-SPM |
Module frequency | nur im Wintersemester |
Semester hours per week | 4 |
Parallel groups / dates
Zahlreiche Statistiken zeigen: Nur wenige Software-Projekte werden erfolgreich (hinsichtlich Zeit-, Budget- und Funktionsvorgaben) abgeschlossen. Sehr viele Projekte werden nur mit erheblichen Defiziten zu Ende gebracht, noch viel zu viele scheitern gänzlich. Oft liegen die Gründe im ungenügenden Projektmanagement.
Die Vorlesung gibt einen Überblick zu grundlegenden Disziplinen des Projektmanagements und zeigt deren Wirkungsweisen an Hand von Praxisbeispielen.
Gliederung:
1. Einführung Grundbegriffe des Projektmanagements, unterschiedliche Projektgrößen, unterschiedliche Projektarten, Erfolg und Misserfolg in Projekten
2. Projektstart und Planung,
Kickoff-Meeting, Anforderungssammlung, Projektstrukturplan, Aufwandsschätzung, Aktivitäten-, Ressourcen- und Kostenplan
3. Projektkontrolle und Steuerung,
Fortschrittsüberwachung, Besprechungen, Berichte, Änderungsmanagement
4. Personalmanagement,
Der Faktor Mensch, Teamwork, Führungsgrundsätze, Gesprächsstrategien, Konflikte lösen
5. Änderungsmanagement
Konfigurationen, Änderungswünsche, Change Control Board, Built- und Release-Mechanismen
6. Qualitäts- und Risikomanagement
Qualitätsplan, Audits und Reviews, Risikoermittlung, Risikobewertung und Verfolgung, Gegenmaßnahmen
7. Reifegrad Modelle und Standards
CMMI, SPiCE, ISO9001, ISO/IEC12207
1. Parallelgruppe
Semester hours per week | 4 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Bernd Hindel |
Literature references: - Hindel, Bernd; Hörmann, Klaus; Müller, Markus; Schmied, Jürgen: "Basiswissen Software-Projektmanagement" (dpunkt-Verlag, 2. Auflage 2006)
- Hindel, Bernd; Hörmann, Klaus; Müller, Markus; Dittmann, Lars: "SPiCE in der Praxis" (dpunkt-Verlag, 2006)
- Hindel, Bernd; Versteegen, Gerhard; Meier, Erich; Vlasan, Adriana: "Prozessübergreifendes Projektmanagement" (Springer Verlag, 2005)
Maximum number of participants: 20
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung+SaundSo Mon, 08:00 - 16:00 | 06.03.2023 - 20.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Tue, 08:00 - 16:00 | 07.03.2023 - 21.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Wed, 08:00 - 16:00 | 08.03.2023 - 22.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Thu, 08:00 - 16:00 | 09.03.2023 - 23.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Fri, 08:00 - 16:00 | 10.03.2023 - 24.03.2023 |
|
11901.U1.245 |
Hauptseminar
Machine Learning: Advances
Basic data
Title | Machine Learning: Advances |
---|---|
Short text | SemML-II |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallel groups / dates
Dieses Seminar führt in das Themengebiet des tiefen Lernens ein. Tiefes Lernen ist eine der gefragtesten Fähigkeiten in der künstlichen Intelligenz. Verfahren des tiefen Lernens haben beispielsweise alle bisherigen Benchmarks für die Klassifizierung von Bildern, Text und Sprache weit übertroffen. Tiefes Lernen ermöglicht und verbessert einige der interessantesten Anwendungen der Welt, wie autonome Fahrzeuge, Genomforschung, humanoide Robotik, Echtzeitübersetzung und es besiegt die besten menschlichen Go-Spieler der Welt.
Ziel des Seminars ist eine umfassende Einführung in das tiefe Lernen. Basierend auf maschinellem Lernen wird daher erklärt, wie tiefes Lernen funktioniert, wann und warum es wichtig ist und die wesentlichen Verfahren beleuchtet.
Zu den Verfahren gehören: (1) Architektur und Hyperparameter; (2) mehrschichtiges Perzeptron; (3) Mischungen neuronaler Netze; (4) tiefes Lernen für Sequenzen (Hidden Markov-Modelle, wiederkehrende neuronale Netze, bidirektionales/Langzeit-Kurzzeitgedächtnis, Gated Recurrent Unit, Temporal Convolutional Network); (5) tiefes Lernen für Bilder (Faltungs-Neuronale Netze); (6) tiefes/verstärkendes Lernen; (7) Markov-Prozesse (Gaußsche Prozesse und Bayes'sche Optimierung, grafische Modelle und Bayes'sche Netze, Kalman- und Partikelfilter); (8) Online-Lernen und Spieltheorie; (9) unüberwachtes Repräsentationslernen und generative Methoden (allgemeine gegnerische Netzwerke, Variational Autoencoder); (10) Datenerweiterung und Transferlernen.¹
Das Seminar gibt einen Einblick in die Welt des tiefen Lernens und befähigt den Studierenden eine wissenschaftliche Präsentation und Ausarbeitung anzufertigen, um individuell erworbenes Wissen einem Fachpublikum vermitteln zu können.
¹ Die Themen sind an den aktuellen Forschungsstand angepasst und wechseln sich jährlich ab.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German or English |
Responsible |
Tobias Feigl Christoffer Löffler Dr.-Ing. Christopher Mutschler |
Literature references: - G. Goodfellow und Y. Bengio und A. C. Courville: Deep Learning, mitp-Verlag, 2015
- R. S. Sutton und A. G. Barto: Reinforcement Learning: An Introduction, MIT Press, 1998
- F. V. Jensen: An Introduction To Bayesian Networks, Springer, 1996
- R. Rojas: Theorie der neuronalen Netze - eine systematische Einführung, Springer, 1993
- J. Schmidhuber: Deep learning in neural networks: An overview, J. Intl. Neural Network Society (INNS), 2015
- D. Silver et al.: Mastering the game of Go with deep neural networks and tree search, J. Nature, 2016
- F. Chollet: Deep Learning with Python, Manning Publications, 2017
- A. Müller und S. Guido: Introduction to Machine Learning with Python: A Guide for Data Scientists, O'Reilly UK Ltd., 2016
- T. J. Hastie und R. Tibshirani und J. H. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer Series in Statistics, 2009
No planned appointments for this parallel group yet.
Machine Learning: Introduction
Basic data
Title | Machine Learning: Introduction |
---|---|
Short text | SemML-I |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallel groups / dates
Dieses Seminar führt in das Themengebiet des maschinellen Lernens (ML) ein. ML ist die Wissenschaft, Computer zum Handeln zu bewegen, ohne explizit programmiert zu werden. ML ist heute so allgegenwärtig, dass wir es wahrscheinlich täglich verwenden, ohne es zu wissen. So hat ML in den letzten Jahren beispielsweise selbstfahrende Autos, praktische Bild- und Spracherkennung und die effektive Partner- und Websuche ermöglicht.
Ziel des Seminars ist eine umfassende Einführung in das maschinelle Lernen, Analyse und Verarbeitung von Daten sowie statistische Mustererkennung. Zu den Themen gehören: (1) Klassifizierungs- und Regressionsprobleme; (2) überwachtes Lernen (parametrische und nicht parametrische Algorithmen, lineare und logistische Regression, k-nächster Nachbar, Support-Vector-Machines, Entscheidungsbäume, flache neuronale Netze); (3) unüberwachtes Lernen (K-Means, Clustering, Dimensionsreduktion, PCA, LDA, Empfehlungssysteme); (4) Ensemble- und Online-Lernen; (5) Regularisierung: Modelldiagnose, Fehleranalyse und Qualitätsmetriken sowie Interpretation der Ergebnisse; (5) evolutionäre Algorithmen; (6) Anomalieerkennung und Gaußsche Verteilungen; (7) Bayes, Kalman-Filter und Gaußsche Prozesse.¹
Das Seminar gibt einen Einblick in die Welt des maschinellen Lernens und befähigt den Studierenden eine wissenschaftliche Präsentation und Ausarbeitung anzufertigen, um individuell erworbenes Wissen einem Fachpublikum vermitteln zu können.
¹ Die Themen sind an den aktuellen Forschungsstand angepasst und wechseln sich jährlich ab.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German or English |
Responsible |
Christoffer Löffler Tobias Feigl Dr.-Ing. Christopher Mutschler |
Literature references: - A. Müller und S. Guido: Introduction to Machine Learning with Python: A Guide for Data Scientists, O'Reilly UK Ltd., 2016
- K. P. Murphy: Machine learning - a probabilistic perspective, Adaptive computation and machine learning series, MIT Press, 2012.
- T. J. Hastie und R. Tibshirani und J. H. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer Series in Statistics, 2009.
- T. M. Mitchell: Machine Learning, McGraw-Hill Education Ltd., 1997
- F. V. Jensen: An Introduction To Bayesian Networks, Springer, 1996
- J. A. Freeman: Simulating neural networks - with Mathematica, Addison-Wesley Professional, 1993
- J. A. Hertz und A. Krogh und R. G. Palmer: Introduction to the theory of neural computation, Westview Press, 1991
- R. Rojas: Theorie der neuronalen Netze - eine systematische Einführung, Springer, 1993
- W. Banzhaf und F. D. Francone und R. E. Keller und P. Nordin: Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications, Morgan Kaufmann, 1998
- M. Mitchell: An introduction to genetic algorithms, MIT Press, 1996
- Z. Michalewicz: Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1992
- M. Bishop: Pattern Recognition and Machine Learning (Information Science and Statistics), Springer, 2006
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Einzeltermin Sat, 10:00 - 15:00 | 28.01.2023 - 28.01.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 04.03.2023 - 04.03.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 11.03.2023 - 11.03.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 18.03.2023 - 18.03.2023 | 11302.04.150 |
Seminar
Begleitseminar zu Bachelor- und Masterarbeiten
Basic data
Title | Begleitseminar zu Bachelor- und Masterarbeiten |
---|---|
Short text | inf2-bs-bama |
Module frequency | in jedem Semester |
Semester hours per week | 3 |
Parallel groups / dates
1. Parallelgruppe
Semester hours per week | 3 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 12:15 - 13:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.04.150 |
Übung
Rechnerübungen zu Algorithmen und Datenstrukturen
Basic data
Title | Rechnerübungen zu Algorithmen und Datenstrukturen |
---|---|
Short text | RUEB-AuD |
Module frequency | in jedem Semester |
Semester hours per week | 2 |
Anmeldung zu den Übungen über StudOn in der ersten Vorlesungswoche erforderlich!
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche!
Die Vorlesung zu diesem Modul wurde letztmalig im Wintersemester 2021/22 angeboten.
Der Übungsbetrieb findet letztmals im Wintersemester 2023/24 statt.
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 14:00 - 16:00 | 18.10.2022 - 07.02.2023 | 27.12.2022 18.10.2022 03.01.2023 01.11.2022 |
|
11302.00.156 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 16:00 - 18:00 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 16:00 - 18:00 | 19.10.2022 - 08.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
9. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 12:00 - 14:00 | 21.10.2022 - 10.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 16:00 - 18:00 | 20.10.2022 - 09.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
8. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 10:00 - 12:00 | 21.10.2022 - 10.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 16:00 - 18:00 | 18.10.2022 - 07.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 14:00 - 16:00 | 20.10.2022 - 09.02.2023 | 05.01.2023 20.10.2022 29.12.2022 |
|
11302.00.156 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 14:00 - 16:00 | 19.10.2022 - 08.02.2023 |
Tafelübungen zu Algorithmen und Datenstrukturen
Basic data
Title | Tafelübungen zu Algorithmen und Datenstrukturen |
---|---|
Short text | TUEB-AuD |
Module frequency | in jedem Semester |
Semester hours per week | 2 |
Anmeldung zu den Übungen über StudOn in der ersten Vorlesungswoche erforderlich!
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche!
Die Vorlesung zu diesem Modul wurde letztmalig im Wintersemester 2021/22 angeboten.
Der Übungsbetrieb findet letztmals im Wintersemester 2023/24 statt.
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 18:15 - 19:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 20.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 18:00 s.t. | 11901.U1.245 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 08:15 - 09:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 08:15 - 09:45 | 19.10.2022 - 08.02.2023 | 28.12.2022 04.01.2023 19.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 8:30 s.t. | 11302.00.152 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 18:15 - 19:45 | 19.10.2022 - 08.02.2023 | 28.12.2022 04.01.2023 19.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 18:00 s.t. | 11901.U1.245 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 08:15 - 09:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 16:15 - 17:45 | 21.10.2022 - 10.02.2023 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallel groups / dates
Die Übungen zu Übersetzerbau 3 stellen eine Ergänzung zur
Vorlesung dar. In der Vorlesung wird unter anderem die
Architektur und Funktionsweise einer virtuellen Maschine
beleuchtet. In den Übungen soll dies praktisch umgesetzt werden.
Hierzu sollen die Studenten in einer Blockveranstaltung eine
kleine virtuelle Maschine selbst implementieren. Den Anfang
bildet das Einlesen des Byte-Codes und am Ende soll ein
funktionsfähiger optimierender Just-in-Time-Übersetzer entstehen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung Mon, 09:00 - 18:00 | 06.03.2023 - 10.03.2023 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Basic data
Title | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Parallel groups / dates
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 08:15 - 09:45 | 21.10.2022 - 10.02.2023 | 23.12.2022 30.12.2022 06.01.2023 21.10.2022 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Michel Schmid Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 10:15 - 11:45 | 20.10.2022 - 09.02.2023 | 29.12.2022 20.10.2022 05.01.2023 22.12.2022 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Florian Mayer Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 17.10.2022 - 06.02.2023 | 17.10.2022 24.10.2022 26.12.2022 02.01.2023 |
|
11302.02.133 |
Upcoming Semester
Vorlesung
Applied Software Engineering
Basic data
Title | Praktische Softwaretechnik |
---|---|
Short text | PSWT-PSWT |
Module frequency | nur im Wintersemester |
Semester hours per week | 4 |
Software ist überall und Software ist komplex. Nicht triviale Software wird von Teams entwickelt. Oft müssen bei der Entwicklung von Softwaresystemen eine Vielzahl von funktionalen und nicht funktionalen Anforderungen berücksichtigt werden. Hierfür ist eine disziplinierte und ingenieurmäßige Vorgehensweise notwendig.
Die Vorlesung "Praktische Softwaretechnik" soll ...
- ein Bewusstsein für die typischen Problemstellungen schaffen, die bei der Durchführung umfangreicher Softwareentwicklungsprojekte auftreten,
- ein breites Basiswissen über die Konzepte, Methoden, Notationen und Werkzeuge der modernen Softwaretechnik vermitteln und
- die Möglichkeiten und Grenzen ihres Einsatzes im Kontext realistischer Projektumgebungen anhand praktischer Beispiele demonstrieren und bewerten.
Die Vorlesung adressiert inhaltlich alle wesentlichen Bereiche der Softwaretechnik. Vorgestellt werden unter anderem
- traditionelle sowie agile Methoden der Softwareentwicklung,
- Methoden der Anforderungsanalyse und des Systementwurfs,
- Konzepte der Softwarearchitektur,
- implementierung und Dokumentation und
- Testen und Qualitätssicherung sowie Prozessverbesserung.
Parallel groups / dates
*Modulbezeichnung*
PSWT-PSWT (Praktische Softwaretechnik)
*Dozenten*
Dr. Ralf Ellner, Dr. Christoph Erhardt, Prof. Dr. Bernd Hindel, Dr. Martin Jung, Prof. Dr. Detlef Kips, Dr. Norbert Oster, Prof. Dr. Dirk Riehle, Dr. Jens Schedel
*Inhalt*
Software ist überall und Software ist komplex. Nicht triviale Software wird von Teams entwickelt. Oft müssen bei der Entwicklung von Softwaresystemen eine Vielzahl von funktionalen und nicht funktionalen Anforderungen berücksichtigt werden. Hierfür ist eine disziplinierte und ingenieurmäßige Vorgehensweise notwendig.
Die Vorlesung "Praktische Softwaretechnik" soll ...
- ein Bewusstsein für die typischen Problemstellungen schaffen, die bei der Durchführung umfangreicher Softwareentwicklungsprojekte auftreten,
- ein breites Basiswissen über die Konzepte, Methoden, Notationen und Werkzeuge der modernen Softwaretechnik vermitteln und
- die Möglichkeiten und Grenzen ihres Einsatzes im Kontext realistischer Projektumgebungen anhand praktischer Beispiele demonstrieren und bewerten.
Die Vorlesung adressiert inhaltlich alle wesentlichen Bereiche der Softwaretechnik. Vorgestellt werden unter anderem
- traditionelle sowie agile Methoden der Softwareentwicklung,
- Methoden der Anforderungsanalyse und des Systementwurfs,
- Konzepte der Softwarearchitektur, -implementierung und Dokumentation und
- Testen und Qualitätssicherung sowie Prozessverbesserung.
Weitere Materialien und Informationen sind hier zu finden:
- StudOn: https://www.studon.fau.de
- Zeitplan: http://goo.gl/0fy1T
- Materialien: Auf StudOn über den Zeitplan
Die Teilnahme ist begrenzt. Bitte registrieren Sie sich zeitig für den Kurs auf StudOn, um sicherzustellen, dass Sie einen Platz erhalten.
*Lernziele und Kompetenzen*
- Den Unterschied zwischen "Programmieren im Kleinen" und "Programmieren im Großen" (Softwaretechnik) zu verstehen
- Grundlegende Methoden der Softwaretechnik über den gesamten Projekt- und Produktlebenszyklus zu verstehen und anwenden zu können
- Die Rolle und Zuständigkeiten der Berufsbilder "Projektleiter", "Anforderungsermittler", "Softwareentwickler" und "Qualitätssicherer" zu verstehen
*Studien- und Prüfungsleistungen*
90min. Klausur
*Berechnung Modulnote*
100% Klausurnote
*Vorbereitende Literatur*
http://goo.gl/JSoUbV
1. Parallelgruppe
Semester hours per week | 4 |
---|---|
Teaching language | English |
Responsible |
Ralf Ellner Dr.Ing. Christoph Erhardt |
Maximum number of participants: 100
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 10:15 - 13:45 | 19.10.2022 - 08.02.2023 | 21.12.2022 04.01.2023 28.12.2022 |
|
11301.00.005 |
Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3 |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Es ist keine Anmeldung erforderlich.
Parallel groups / dates
In der Vorlesung werden Aspekte des Übersetzerbaus beleuchtet, die über die Vorlesungen "Grundlagen des Übersetzerbaus" und "Optimierungen in Übersetzern" hinausgehen.
Voraussichtliche Themen sind:
- Übersetzer u. Optimierungen für funktionale Programmiersprachen
- Übersetzung aspektorientierter Programmiersprachen
- Erkennung von Wettlaufsituationen
- Software Watermarking
- Statische Analyse und symbolische Ausführung
- Binden von Objektcode und Unterstützung für dynamische Bibliotheken
- Strategien zur Ausnahmebehandlung
- Just-in-Time-Übersetzer
- Speicherverwaltung und Speicherbereinigung
- LLVM
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen Julian Brandner Florian Mayer Tobias Heineken |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 14:15 - 15:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Basic data
Title | Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallel groups / dates
*Motivation:*
At first glance, it may appear less important to focus on compiler
construction. Other areas seem to be much more applicable to current
tasks in industrial practice. But appearences are deceptive:
- Compilers are among the most thoroughly studied middle-sized sequential software systems. Hence, there is a lot to learn from the experience made in the past.
- In the exercises that accompany this lecture, you will construct your own (small) compiler.
- For many participants, this project will be their first bigger software project.
- Normally, you expect every compiler you use to generate correct code. In the lecture, you will learn how one can achieve the required degree of correctness and reliability.
- You will gain an understanding of the concepts of programming languages and of how high-level language features are translated into machine code. Keeping this knowledge at the back of your mind, you will improve your capability to write good and efficient programs.
- Compilers are used not only for programming languages. Special compilers are needed in many areas of every-day life in computer science, e.g. for text formatting, program transformations, aspect oriented programming, XML processing etc.
- Every engineer should be able to build the tools he/she is using. For computer scienctists, this requires an in-depth understanding of the guts of compilers.
.
*Main Focus of this Lecture:*
The lecture teaches concepts and techniques of compiler construction from a compiler developer view, following the structure of the compiler frontend, middle end, and backend. Exercise sessions and practical assignments complement the lecture; the students implement their own compiler (based on a framework) for the e2 programming language, which is designed for this series of compiler construction lectures.
*Topics covered in the lecture:*
- Principles of compiling imperative programming languages
- Structure of a compiler
- Scanner and parser
- Abstract syntax trees (ASTs)
- Visitor design pattern
- AST transformations, desugaring
- Symbol tables and scopes
- Semantic analysis: name analysis, type checking
- Compilation of arithmetic expressions and control flow structures to register-based and stack-based intermediate languages
- Compilation of functions and function calls, activation records
- Compilation of object-oriented languages with single inheritance, interfaces, and multiple inheritance
- Method resolution in Java (overloaded and overridden methods)
- Code generation with Sethi-Ullmann algorithm, Graham-Glanville algorithm, tree transformations, and dynamic programming
- Register allocation with local techniques and graph coloring
- Instruction scheduling with the list scheduling technique
- Debuggers
.
*Lecture Topics:*
1. Introduction (Class overview, modular structure of compilers (front-, middle-, and backend), compilation bootstrapping)
2. Lexer and Parser (Tokens, literals, symbol table, grammar classes (LR(k), LL(k), ...), concrete syntax tree, shift-reduce parser)
3. ASTs and semantic analysis (Abstract syntax tree, visitor pattern, double dispatch, scopes, definition table)
4. Type consistency (Type safety, type system, type checks, type inference, type conversions, attributed grammars)
5. AST transformations (Transformation patterns (arithmetics), transformation of nested and generic classes)
6. Intermediate representations (Types of IRs, arithmetic operations, assignments, multidimensional array access, structs, control flow instructions, short-circuit evaluation)
7. Activation record and stack frame (Relative addresses, call by value/reference/name, nested functions, function pointers, stack pointer and frame pointer, function calls: prolog and epilog)
8. Object-oriented languages: single inheritance (Symbol and type analysis, method selection with method overloading and overriding, virtual method calls, class descriptors, dynamic type checks and casts)
9. Object-oriented languages II: interfaces, multiple inheritance (Interface v-tables, dynamic type checks and casts with interfaces, interfaces with default implementations and state, diamond problem, virtual inheritance)
10. Basic code generation (Code selection, register allocation, instruction order, basic blocks, optimal code generation for expression trees)
11. Optimized code selection (Code selection as tree transformation, Graham-Glanville code generators, dynamic programming)
12. Optimized register allocation (Performance approximations, liveness analysis, collision and interference graph, register spilling, coloring heuristics, optimistic extension, live range splitting, register coalescing, data structures)
13. Instruction level parallelism, instruction order, debugger (Data, structural, and control conflicts in CPU pipelines, list scheduling, delay slots, branch predictions, superscalar and VLIW architectures, ptrace, break- and watch-points, DWARF)
.
*Assignment Milestones:*
For the assignments of this course, the students put the concepts and techniques presented in the lecture for implementing a compiler into practice. The goal of the assignments is to implement a functional compiler for the e2 programming language by the end of the semester. The e2 language is specifically designed for educational purposes; the students obtain a description of the language.
A framework for the implementation is provided to the students. The students implement the core components of the compiler in five milestones.
All milestones need to be fulfilled to pass the module; the last milestone contains two tasks. In particular, the milestones are:
- Milestone 1: Grammar definition and construction of the AST: ANTLR productions, AST visitor interface, and generic AST visitor for array accesses and return and loop statements; AST visitor for AST visualization.
- Milestone 2: Name analysis: symbol table; declaring standard functions; AST visitor for name analysis.
- Milestone 3: Constant folding and type analysis: AST transformations for constant folding; AST visitor for bottom-up type analysis, adding AST nodes for implicit casts;
- Milestone 4: AST translation to intermediate representation: AST visitor to generate IR; translation of arithmetic, return, and assign statements, logical expressions, conditions, loops.
- Milestone 5.0: Memory assignment: definition and implementation of the ABI calling convention; memory assignment of variables; stack frame allocation; caller-save and callee-save registers.
- Milestone 5.1: Code generation: implementation of the e2 standard library; IR visitor to generate assembly code.
For milestones one through three, the compiler needs to support both integer and floating-point arithmetic. For the last two milestones, only integer arithmetic is required. null
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen |
Literature references: - "Modern Compiler Implementation in Java", A. Appel, Cambridge University Press, 1998
- "Compilers - Principles, Techniques and Tools", A. Aho, M. Lam, R. Sethi, J. Ullmann, Addison-Wesley, 2006
- "Modern Compiler Design", D. Grune, H. Bal, C. Jacobs, K. Langendoen, Wiley, 2002 null
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 08:15 - 09:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 |
|
11301.00.005 |
Software-Projektmanagement
Basic data
Title | Software-Projektmanagement |
---|---|
Short text | PSWT-SPM |
Module frequency | nur im Wintersemester |
Semester hours per week | 4 |
Parallel groups / dates
Zahlreiche Statistiken zeigen: Nur wenige Software-Projekte werden erfolgreich (hinsichtlich Zeit-, Budget- und Funktionsvorgaben) abgeschlossen. Sehr viele Projekte werden nur mit erheblichen Defiziten zu Ende gebracht, noch viel zu viele scheitern gänzlich. Oft liegen die Gründe im ungenügenden Projektmanagement.
Die Vorlesung gibt einen Überblick zu grundlegenden Disziplinen des Projektmanagements und zeigt deren Wirkungsweisen an Hand von Praxisbeispielen.
Gliederung:
1. Einführung Grundbegriffe des Projektmanagements, unterschiedliche Projektgrößen, unterschiedliche Projektarten, Erfolg und Misserfolg in Projekten
2. Projektstart und Planung,
Kickoff-Meeting, Anforderungssammlung, Projektstrukturplan, Aufwandsschätzung, Aktivitäten-, Ressourcen- und Kostenplan
3. Projektkontrolle und Steuerung,
Fortschrittsüberwachung, Besprechungen, Berichte, Änderungsmanagement
4. Personalmanagement,
Der Faktor Mensch, Teamwork, Führungsgrundsätze, Gesprächsstrategien, Konflikte lösen
5. Änderungsmanagement
Konfigurationen, Änderungswünsche, Change Control Board, Built- und Release-Mechanismen
6. Qualitäts- und Risikomanagement
Qualitätsplan, Audits und Reviews, Risikoermittlung, Risikobewertung und Verfolgung, Gegenmaßnahmen
7. Reifegrad Modelle und Standards
CMMI, SPiCE, ISO9001, ISO/IEC12207
1. Parallelgruppe
Semester hours per week | 4 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Bernd Hindel |
Literature references: - Hindel, Bernd; Hörmann, Klaus; Müller, Markus; Schmied, Jürgen: "Basiswissen Software-Projektmanagement" (dpunkt-Verlag, 2. Auflage 2006)
- Hindel, Bernd; Hörmann, Klaus; Müller, Markus; Dittmann, Lars: "SPiCE in der Praxis" (dpunkt-Verlag, 2006)
- Hindel, Bernd; Versteegen, Gerhard; Meier, Erich; Vlasan, Adriana: "Prozessübergreifendes Projektmanagement" (Springer Verlag, 2005)
Maximum number of participants: 20
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung+SaundSo Mon, 08:00 - 16:00 | 06.03.2023 - 20.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Tue, 08:00 - 16:00 | 07.03.2023 - 21.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Wed, 08:00 - 16:00 | 08.03.2023 - 22.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Thu, 08:00 - 16:00 | 09.03.2023 - 23.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Fri, 08:00 - 16:00 | 10.03.2023 - 24.03.2023 |
|
11901.U1.245 |
Hauptseminar
Machine Learning: Advances
Basic data
Title | Machine Learning: Advances |
---|---|
Short text | SemML-II |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallel groups / dates
Dieses Seminar führt in das Themengebiet des tiefen Lernens ein. Tiefes Lernen ist eine der gefragtesten Fähigkeiten in der künstlichen Intelligenz. Verfahren des tiefen Lernens haben beispielsweise alle bisherigen Benchmarks für die Klassifizierung von Bildern, Text und Sprache weit übertroffen. Tiefes Lernen ermöglicht und verbessert einige der interessantesten Anwendungen der Welt, wie autonome Fahrzeuge, Genomforschung, humanoide Robotik, Echtzeitübersetzung und es besiegt die besten menschlichen Go-Spieler der Welt.
Ziel des Seminars ist eine umfassende Einführung in das tiefe Lernen. Basierend auf maschinellem Lernen wird daher erklärt, wie tiefes Lernen funktioniert, wann und warum es wichtig ist und die wesentlichen Verfahren beleuchtet.
Zu den Verfahren gehören: (1) Architektur und Hyperparameter; (2) mehrschichtiges Perzeptron; (3) Mischungen neuronaler Netze; (4) tiefes Lernen für Sequenzen (Hidden Markov-Modelle, wiederkehrende neuronale Netze, bidirektionales/Langzeit-Kurzzeitgedächtnis, Gated Recurrent Unit, Temporal Convolutional Network); (5) tiefes Lernen für Bilder (Faltungs-Neuronale Netze); (6) tiefes/verstärkendes Lernen; (7) Markov-Prozesse (Gaußsche Prozesse und Bayes'sche Optimierung, grafische Modelle und Bayes'sche Netze, Kalman- und Partikelfilter); (8) Online-Lernen und Spieltheorie; (9) unüberwachtes Repräsentationslernen und generative Methoden (allgemeine gegnerische Netzwerke, Variational Autoencoder); (10) Datenerweiterung und Transferlernen.¹
Das Seminar gibt einen Einblick in die Welt des tiefen Lernens und befähigt den Studierenden eine wissenschaftliche Präsentation und Ausarbeitung anzufertigen, um individuell erworbenes Wissen einem Fachpublikum vermitteln zu können.
¹ Die Themen sind an den aktuellen Forschungsstand angepasst und wechseln sich jährlich ab.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German or English |
Responsible |
Tobias Feigl Christoffer Löffler Dr.-Ing. Christopher Mutschler |
Literature references: - G. Goodfellow und Y. Bengio und A. C. Courville: Deep Learning, mitp-Verlag, 2015
- R. S. Sutton und A. G. Barto: Reinforcement Learning: An Introduction, MIT Press, 1998
- F. V. Jensen: An Introduction To Bayesian Networks, Springer, 1996
- R. Rojas: Theorie der neuronalen Netze - eine systematische Einführung, Springer, 1993
- J. Schmidhuber: Deep learning in neural networks: An overview, J. Intl. Neural Network Society (INNS), 2015
- D. Silver et al.: Mastering the game of Go with deep neural networks and tree search, J. Nature, 2016
- F. Chollet: Deep Learning with Python, Manning Publications, 2017
- A. Müller und S. Guido: Introduction to Machine Learning with Python: A Guide for Data Scientists, O'Reilly UK Ltd., 2016
- T. J. Hastie und R. Tibshirani und J. H. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer Series in Statistics, 2009
No planned appointments for this parallel group yet.
Machine Learning: Introduction
Basic data
Title | Machine Learning: Introduction |
---|---|
Short text | SemML-I |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallel groups / dates
Dieses Seminar führt in das Themengebiet des maschinellen Lernens (ML) ein. ML ist die Wissenschaft, Computer zum Handeln zu bewegen, ohne explizit programmiert zu werden. ML ist heute so allgegenwärtig, dass wir es wahrscheinlich täglich verwenden, ohne es zu wissen. So hat ML in den letzten Jahren beispielsweise selbstfahrende Autos, praktische Bild- und Spracherkennung und die effektive Partner- und Websuche ermöglicht.
Ziel des Seminars ist eine umfassende Einführung in das maschinelle Lernen, Analyse und Verarbeitung von Daten sowie statistische Mustererkennung. Zu den Themen gehören: (1) Klassifizierungs- und Regressionsprobleme; (2) überwachtes Lernen (parametrische und nicht parametrische Algorithmen, lineare und logistische Regression, k-nächster Nachbar, Support-Vector-Machines, Entscheidungsbäume, flache neuronale Netze); (3) unüberwachtes Lernen (K-Means, Clustering, Dimensionsreduktion, PCA, LDA, Empfehlungssysteme); (4) Ensemble- und Online-Lernen; (5) Regularisierung: Modelldiagnose, Fehleranalyse und Qualitätsmetriken sowie Interpretation der Ergebnisse; (5) evolutionäre Algorithmen; (6) Anomalieerkennung und Gaußsche Verteilungen; (7) Bayes, Kalman-Filter und Gaußsche Prozesse.¹
Das Seminar gibt einen Einblick in die Welt des maschinellen Lernens und befähigt den Studierenden eine wissenschaftliche Präsentation und Ausarbeitung anzufertigen, um individuell erworbenes Wissen einem Fachpublikum vermitteln zu können.
¹ Die Themen sind an den aktuellen Forschungsstand angepasst und wechseln sich jährlich ab.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German or English |
Responsible |
Christoffer Löffler Tobias Feigl Dr.-Ing. Christopher Mutschler |
Literature references: - A. Müller und S. Guido: Introduction to Machine Learning with Python: A Guide for Data Scientists, O'Reilly UK Ltd., 2016
- K. P. Murphy: Machine learning - a probabilistic perspective, Adaptive computation and machine learning series, MIT Press, 2012.
- T. J. Hastie und R. Tibshirani und J. H. Friedman: The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer Series in Statistics, 2009.
- T. M. Mitchell: Machine Learning, McGraw-Hill Education Ltd., 1997
- F. V. Jensen: An Introduction To Bayesian Networks, Springer, 1996
- J. A. Freeman: Simulating neural networks - with Mathematica, Addison-Wesley Professional, 1993
- J. A. Hertz und A. Krogh und R. G. Palmer: Introduction to the theory of neural computation, Westview Press, 1991
- R. Rojas: Theorie der neuronalen Netze - eine systematische Einführung, Springer, 1993
- W. Banzhaf und F. D. Francone und R. E. Keller und P. Nordin: Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications, Morgan Kaufmann, 1998
- M. Mitchell: An introduction to genetic algorithms, MIT Press, 1996
- Z. Michalewicz: Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1992
- M. Bishop: Pattern Recognition and Machine Learning (Information Science and Statistics), Springer, 2006
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Einzeltermin Sat, 10:00 - 15:00 | 28.01.2023 - 28.01.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 04.03.2023 - 04.03.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 11.03.2023 - 11.03.2023 | 11302.04.150 | |||
Einzeltermin Sat, 10:00 - 15:00 | 18.03.2023 - 18.03.2023 | 11302.04.150 |
Seminar
Begleitseminar zu Bachelor- und Masterarbeiten
Basic data
Title | Begleitseminar zu Bachelor- und Masterarbeiten |
---|---|
Short text | inf2-bs-bama |
Module frequency | in jedem Semester |
Semester hours per week | 3 |
Parallel groups / dates
1. Parallelgruppe
Semester hours per week | 3 |
---|---|
Teaching language | German |
Responsible |
Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 12:15 - 13:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.04.150 |
Übung
Rechnerübungen zu Algorithmen und Datenstrukturen
Basic data
Title | Rechnerübungen zu Algorithmen und Datenstrukturen |
---|---|
Short text | RUEB-AuD |
Module frequency | in jedem Semester |
Semester hours per week | 2 |
Anmeldung zu den Übungen über StudOn in der ersten Vorlesungswoche erforderlich!
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche!
Die Vorlesung zu diesem Modul wurde letztmalig im Wintersemester 2021/22 angeboten.
Der Übungsbetrieb findet letztmals im Wintersemester 2023/24 statt.
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 14:00 - 16:00 | 18.10.2022 - 07.02.2023 | 27.12.2022 18.10.2022 03.01.2023 01.11.2022 |
|
11302.00.156 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 16:00 - 18:00 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 16:00 - 18:00 | 19.10.2022 - 08.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
9. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 12:00 - 14:00 | 21.10.2022 - 10.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 16:00 - 18:00 | 20.10.2022 - 09.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
8. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 10:00 - 12:00 | 21.10.2022 - 10.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 16:00 - 18:00 | 18.10.2022 - 07.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 14:00 - 16:00 | 20.10.2022 - 09.02.2023 | 05.01.2023 20.10.2022 29.12.2022 |
|
11302.00.156 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 14:00 - 16:00 | 19.10.2022 - 08.02.2023 |
Tafelübungen zu Algorithmen und Datenstrukturen
Basic data
Title | Tafelübungen zu Algorithmen und Datenstrukturen |
---|---|
Short text | TUEB-AuD |
Module frequency | in jedem Semester |
Semester hours per week | 2 |
Anmeldung zu den Übungen über StudOn in der ersten Vorlesungswoche erforderlich!
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche!
Die Vorlesung zu diesem Modul wurde letztmalig im Wintersemester 2021/22 angeboten.
Der Übungsbetrieb findet letztmals im Wintersemester 2023/24 statt.
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 18:15 - 19:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 20.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 18:00 s.t. | 11901.U1.245 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 08:15 - 09:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 08:15 - 09:45 | 19.10.2022 - 08.02.2023 | 28.12.2022 04.01.2023 19.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 8:30 s.t. | 11302.00.152 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 18:15 - 19:45 | 19.10.2022 - 08.02.2023 | 28.12.2022 04.01.2023 19.10.2022 |
|
ACHTUNG: Die Übung beginnt pünktlich um 18:00 s.t. | 11901.U1.245 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 08:15 - 09:45 | 17.10.2022 - 06.02.2023 |
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Dr.-Ing. Norbert Oster |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 16:15 - 17:45 | 21.10.2022 - 10.02.2023 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallel groups / dates
Die Übungen zu Übersetzerbau 3 stellen eine Ergänzung zur
Vorlesung dar. In der Vorlesung wird unter anderem die
Architektur und Funktionsweise einer virtuellen Maschine
beleuchtet. In den Übungen soll dies praktisch umgesetzt werden.
Hierzu sollen die Studenten in einer Blockveranstaltung eine
kleine virtuelle Maschine selbst implementieren. Den Anfang
bildet das Einlesen des Byte-Codes und am Ende soll ein
funktionsfähiger optimierender Just-in-Time-Übersetzer entstehen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung Mon, 09:00 - 18:00 | 06.03.2023 - 10.03.2023 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Basic data
Title | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Parallel groups / dates
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 08:15 - 09:45 | 21.10.2022 - 10.02.2023 | 23.12.2022 30.12.2022 06.01.2023 21.10.2022 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Michel Schmid Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 10:15 - 11:45 | 20.10.2022 - 09.02.2023 | 29.12.2022 20.10.2022 05.01.2023 22.12.2022 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren.
Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt.
Die im Laufe des Semesters zu erreichenden Meilensteine sind im UnivIS-Eintrag der Vorlesung aufgelistet.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | German |
Responsible |
Florian Mayer Prof. Dr. Michael Philippsen |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 17.10.2022 - 06.02.2023 | 17.10.2022 24.10.2022 26.12.2022 02.01.2023 |
|
11302.02.133 |
General Course Portfolio
Summer term |
Winter term |
|
Algorithmen und Datenstrukturen (Übungen) | (AuD) | (AuD) |
Parallele und Funktionale Programmierung | (PFP) | |
Grundlagen des Übersetzerbaus | (UE1) | |
Optimierungen in Übersetzern | (UE2) | |
Ausgewählte Kapitel aus dem Übersetzerbau | (UE3) | |
Analyse und Design objektorientierter Softwaresysteme mit der Unified Modeling Language (UML) | (OOAD) | |
Testen von Softwaresystemen | (TSWS) | |
Machine Learning: Introduction | (ML-I) | |
Machine Learning: Advances | (ML-II) | |
“Hallo Welt!” für Fortgeschrittene | (HW) |