Lehrveranstaltungen
Archiv: frühere/unregelmäßige Lehrveranstaltungen
Programmierung und Architekturen von Cluster-Rechnern | letztmals SS 2020 |
Informatik-Repetitorium | letztmals WS 2018/19 |
Geschichte der Programmiersprachen | letztmals WS 2018/19 |
Mobile Application Development | letztmals SS 2016 |
Principles of Programming Languages | letztmals SS 2015 |
Parallele Algorithmen/Parallel Algorithms | letztmals WS 2014/15 |
Graphtransformationssysteme | letztmals SS 2014 |
Funktionale Programmierung in Haskell | letztmals SS 2013 |
Vorangehendes Semester
Vorlesung
Ausgewählte Kapitel aus dem Übersetzerbau
Grunddaten
Titel | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Kurztext | inf2-ueb3 |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Es ist keine Anmeldung erforderlich.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen Julian Brandner Florian Mayer Tobias Heineken |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 14:15 - 15:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Grunddaten
Titel | Grundlagen des Übersetzerbaus |
---|---|
Kurztext | inf2-ueb |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallelgruppen / Termine
*Motivation:*
Auf den ersten Blick erscheint es wenig sinnvoll, sich mit Übersetzerbau zu beschäftigen. Andere Themen scheinen wesentlich näher an der direkten Anwendbarkeit in der industriellen Praxis. Der erste Blick täuscht:
- Übersetzer gehören wohl zu den am gründlichsten studierten mittelgroßen sequentiellen Software-Systemen. Man kann viel aus den Erfahrungen lernen, die im Laufe der Jahre gesammelt wurden.
- In den Übungen, die die Vorlesung begleiten, werden Sie selbst einen (kleinen) Übersetzer entwickeln.
- Für viele Teilnehmer wird dieses Projekt das erste größere Software-Projekt sein. Viele der Algorithmen aus dem Grundstudium werden angewendet.
- Bei jedem von Ihnen verwendeten Übersetzer gehen Sie in der Regel davon aus, dass richtiger Coder erzeugt wird. In der Vorlesung erfahren Sie, wie das geforderte hohe Maß an Korrektheit und Zuverlässigkeit erreicht wird.
- Sie erlangen ein Verständnis für Konzepte von Programmiersprachen und verstehen, welcher Maschinen-Code aus Sprachkonstrukten gemacht wird. Mit diesem Wissen im Hinterkopf verbessern Sie Ihre Fähigkeit, gute und effiziente Programme zu schreiben.
- Übersetzer werden nicht nur für Programmiersprachen benötigt. Spezielle Übersetzer braucht man in vielen Bereichen des täglichen Informatik-Lebens z.B. zur Textformatierung, für Programmtransformationen, für aspektorientiertes Programmieren, für die Verarbeitung von XML, ...
- Es gehört zu einer Ingenieur-Ausbildung, in der Lage zu sein, diejenigen Werkzeuge selbst zu fertigen, die man verwendet. Für Informatiker gehört daher ein Verständnis vom Innenleben eines Übersetzers zum Rüstzeug.
.
*Fokus der Lehrveranstaltung:*
Es werden Konzepte und Techniken der Übersetzerkonstruktion aus Sicht
eines Übersetzerbauers und entlang der wesentlichen Arbeitsschritte
eines Übersetzers (Frontend; Mittelschicht; Backend)
vorgestellt. Übungen und Praxisaufgaben ergänzen die Vorlesung. Hier
entwickeln die Studierenden auf der Basis eines vorgegebenen
Programmrahmens einen eigenen Übersetzer für die Programmiersprache
e2, die speziell für den Übersetzerbau-Vorlesungszyklus entworfen
wurde.
*Behandelte Themenfelder:*
- Prinzipien der Übersetzung imperativer Programmiersprachen
- Struktur eines Übersetzers
- Symbolentschlüssler (Scanner) und Zerteiler (Parser)
- Abstrakter Syntaxbaum (AST)
- Besuchermuster
- AST-Transformationen, Entzuckerung
- Symboltabellen und Sichtbarkeitsbereiche
- Semantische Analyse: Namensanalyse, Typprüfung
- Übersetzung von arithmetischen Ausdrücken und Kontrollflusskonstrukten in registerbasierte oder stapelbasierte Zwischensprachen
- Übersetzung von Methoden und Methodenaufrufen; Methodenschachteln
- Übersetzung objektorientierter Sprachen mit Einfachvererbung, Schnittstellen und Mehrfachvererbung
- Methodenauswahl in Java (überladene und überschriebene Methoden)
- Code-Generierung nach Sethi-Ullmann, Graham-Glanville, per Baumtransformation sowie mit Hilfe dynamischer Programmierung
- Registerallokation mit lokalen Techniken und mit Graphfärbung
- Instruktionsanordnung mit "list scheduling"
- Debugger
.
*Themen der Vorlesungseinheiten:*
1. Einführung (Überblick, modulare Struktur von Übersetzern, Frontend,
Mittelschicht, Backend), Bootstrapping)
2. Symbolentschlüssler (Lexer) und Zerteiler (Parser), (Token,
Literale, Symboltabelle, Grammatikklassen (LK(k), LL(k), ...),
konkreter Syntaxbaum, Shift-Reduce-Parser)
3. AST und semantische Analyse (abstrakter Syntaxbaum, Besuchermuster,
Double Dispatch, Sichtbarkeitsbereiche, Definitionstabelle)
4. Typkonsistenz (Typsicherheit, Typsystem, Typüberprüfung,
Typberechnung, Typkonvertierung, attributierte Grammatiken)
5. AST-Transformationen (Transformationsschablonen für Ausdrücke,
Transformation innerer und generischer Klassen)
6. Transformation in Zwischensprache (registerbasiert versus
stapelbasiert, Übersetzung von arithmetischen Ausdrücken, Zuweisungen,
mehrdimensionalen Feldern, struct-Datentypen und
Kontrollflussstrukturen (einschließlich Kurzschlussauswertung))
7. Methodenschachteln und Kellerrahmen (relative Adressen, call by
value/reference/name, geschachtelte Funktionen, Funktionszeiger,
Stack- und Framepointer, Funktionsaufruf, Prolog, Epilog)
8. Objektorientierte Sprachen I: Einfachvererbung (Symbol- und
Typanalyse, Methodenauswahl mit Überschreiben und Überladen, virtuelle
Methodenaufrufe, Klassendeskriptoren, dynamische Typprüfung und
-wandlung)
9. Objektorientierte Sprachen II: Schnittstellen und Mehrfachvererbung
(Interface v-Tables, dynamische Typprüfung und -wandlung mit
Interfaces, Interfaces mit Default-Implementierung, Diamantenproblem)
10. Einfache Code-Erzeugung (Code-Selektion nach Sethi-Ullman,
Register-Allokation, Instruktionsreihenfolge, optimale Code-Erzeugung
für Ausdrucksbäume)
11. Fortgeschrittene Code-Erzeugung (Baumtransformation,
Graham-Glanville, dynamisches Programmieren)
12. Registerallokation (Leistungsabschätzung, Lebendigkeitsintervalle,
Kollisions- und Interferenzgraph, Spilling, Färbungsheuristiken,
Aufteilung von Lebendigkeitsintervallen, 2nd Chance Bin Packing,
Registerverschmelzung)
13. Parallelismus auf Instruktionsebene, Instruktionsreihenfolge,
Debugger (Konflikte im Instruktionsfließband, List Scheduling,
Delay-Slots, Sprungzielvorhersage, ptrace, Unterbrechungs- und
Beobachtungspunkte, DWARF)
*Meilensteine der Übungsbetriebs:*
Im Rahmen der Übungen (separater UnivIS-Eintrag) 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. Ein Rahmenprogramm
ist gegeben, das in fünf Meilensteinen um selbstentwickelte
Schlüsselkomponenten zu erweitern ist.
Folgende Meilensteine sind zu erreichen:
Meilenstein 1: Grammatik, AST-Konstruktion: Antlr-Produktionen,
AST-Besucherschnittschelle, generischer AST-Besucher für return und
Schleifen, AST-Besucher zur Visualisierung.
Meilenstein 2: Symbolanalyse, Symboltabelle, Standardfunktionen,
AST-Besucher für die Symbolanalyse.
Meilenstein 3: Konstantenfaltung per AST-Transformation, Typanalyse
mit bottom-up AST-Besuch, der implizite Typwandlungen bei Bedarf
ergänzt.
Meilenstein 4: AST-Besucher zur Erzeugung der
Zwischensprachrepräsentation, Übersetzung von arithmetischen
Ausdrücken, return, Zuweisungen, logischen Ausdrücken, Bedingungen und
Schleifen.
Meilenstein 5.0: Speicherzuteilung: Festlegung und Umsetzung der ABI
Aufrufkonvention, Zuweisung von Speicheradressen zu Variablen;
Kellerrahmenallokation; caller-save und callee-save Register.
Meilenstein 5.1: Code-Erzeugung: Implementierung der e2
Standardbibliothek; IR-Besucher zur Erzeugung von Assembly-Code.
Für die Meilensteine 1-3 soll der Übersetzer sowohl Integer- als auch
Gleitkomma-Arithmetik unterstützen. Für die nachfolgenden Meilensteine
reicht Integer-Arithmetik.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
1. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 08:15 - 09:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 |
|
11301.00.005 |
Praktische Softwaretechnik
Grunddaten
Titel | Praktische Softwaretechnik |
---|---|
Kurztext | PSWT-PSWT |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
*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
Semesterwochenstunden | 4 |
---|---|
Lehrsprache | Englisch |
Verantwortliche/-r |
Ralf Ellner Dr.Ing. Christoph Erhardt |
Maximale Anzahl Teilnehmer/-innen: 100
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 10:15 - 13:45 | 19.10.2022 - 08.02.2023 | 21.12.2022 04.01.2023 28.12.2022 |
|
11301.00.005 |
Software-Projektmanagement
Grunddaten
Titel | Software-Projektmanagement |
---|---|
Kurztext | PSWT-SPM |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 4 |
Parallelgruppen / Termine
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
Semesterwochenstunden | 4 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Bernd Hindel |
LIteraturhinweise: - 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)
Maximale Anzahl Teilnehmer/-innen: 20
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Blockveranstaltung+SaundSo Mo, 08:00 - 16:00 | 06.03.2023 - 20.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Di, 08:00 - 16:00 | 07.03.2023 - 21.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Mi, 08:00 - 16:00 | 08.03.2023 - 22.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Do, 08:00 - 16:00 | 09.03.2023 - 23.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Fr, 08:00 - 16:00 | 10.03.2023 - 24.03.2023 |
|
11901.U1.245 |
Hauptseminar
Machine Learning: Advances
Grunddaten
Titel | Machine Learning: Advances |
---|---|
Kurztext | SemML-II |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch oder Englisch |
Verantwortliche/-r |
Tobias Feigl Christoffer Löffler Dr.-Ing. Christopher Mutschler |
LIteraturhinweise: - 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
Es wurden noch keine Termine für die Parallelgruppe geplant.
Machine Learning: Introduction
Grunddaten
Titel | Machine Learning: Introduction |
---|---|
Kurztext | SemML-I |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch oder Englisch |
Verantwortliche/-r |
Christoffer Löffler Tobias Feigl Dr.-Ing. Christopher Mutschler |
LIteraturhinweise: - 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
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Einzeltermin Sa, 10:00 - 15:00 | 28.01.2023 - 28.01.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 04.03.2023 - 04.03.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 11.03.2023 - 11.03.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 18.03.2023 - 18.03.2023 | 11302.04.150 |
Seminar
Begleitseminar zu Bachelor- und Masterarbeiten
Grunddaten
Titel | Begleitseminar zu Bachelor- und Masterarbeiten |
---|---|
Kurztext | inf2-bs-bama |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 3 |
Parallelgruppen / Termine
1. Parallelgruppe
Semesterwochenstunden | 3 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Grunddaten
Titel | Rechnerübungen zu Algorithmen und Datenstrukturen |
---|---|
Kurztext | RUEB-AuD |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Di, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Di, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 14:00 - 16:00 | 19.10.2022 - 08.02.2023 |
Tafelübungen zu Algorithmen und Datenstrukturen
Grunddaten
Titel | Tafelübungen zu Algorithmen und Datenstrukturen |
---|---|
Kurztext | TUEB-AuD |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 16:15 - 17:45 | 21.10.2022 - 10.02.2023 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Grunddaten
Titel | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Kurztext | inf2-ueb3-ex |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Tobias Heineken Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Blockveranstaltung Mo, 09:00 - 18:00 | 06.03.2023 - 10.03.2023 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Grunddaten
Titel | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Kurztext | inf2-ueb-ex |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Tobias Heineken Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Michel Schmid Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Florian Mayer Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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 |
Aktuelles Semester
Vorlesung
Ausgewählte Kapitel aus dem Übersetzerbau
Grunddaten
Titel | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Kurztext | inf2-ueb3 |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Es ist keine Anmeldung erforderlich.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen Julian Brandner Florian Mayer Tobias Heineken |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 14:15 - 15:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Grunddaten
Titel | Grundlagen des Übersetzerbaus |
---|---|
Kurztext | inf2-ueb |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallelgruppen / Termine
*Motivation:*
Auf den ersten Blick erscheint es wenig sinnvoll, sich mit Übersetzerbau zu beschäftigen. Andere Themen scheinen wesentlich näher an der direkten Anwendbarkeit in der industriellen Praxis. Der erste Blick täuscht:
- Übersetzer gehören wohl zu den am gründlichsten studierten mittelgroßen sequentiellen Software-Systemen. Man kann viel aus den Erfahrungen lernen, die im Laufe der Jahre gesammelt wurden.
- In den Übungen, die die Vorlesung begleiten, werden Sie selbst einen (kleinen) Übersetzer entwickeln.
- Für viele Teilnehmer wird dieses Projekt das erste größere Software-Projekt sein. Viele der Algorithmen aus dem Grundstudium werden angewendet.
- Bei jedem von Ihnen verwendeten Übersetzer gehen Sie in der Regel davon aus, dass richtiger Coder erzeugt wird. In der Vorlesung erfahren Sie, wie das geforderte hohe Maß an Korrektheit und Zuverlässigkeit erreicht wird.
- Sie erlangen ein Verständnis für Konzepte von Programmiersprachen und verstehen, welcher Maschinen-Code aus Sprachkonstrukten gemacht wird. Mit diesem Wissen im Hinterkopf verbessern Sie Ihre Fähigkeit, gute und effiziente Programme zu schreiben.
- Übersetzer werden nicht nur für Programmiersprachen benötigt. Spezielle Übersetzer braucht man in vielen Bereichen des täglichen Informatik-Lebens z.B. zur Textformatierung, für Programmtransformationen, für aspektorientiertes Programmieren, für die Verarbeitung von XML, ...
- Es gehört zu einer Ingenieur-Ausbildung, in der Lage zu sein, diejenigen Werkzeuge selbst zu fertigen, die man verwendet. Für Informatiker gehört daher ein Verständnis vom Innenleben eines Übersetzers zum Rüstzeug.
.
*Fokus der Lehrveranstaltung:*
Es werden Konzepte und Techniken der Übersetzerkonstruktion aus Sicht
eines Übersetzerbauers und entlang der wesentlichen Arbeitsschritte
eines Übersetzers (Frontend; Mittelschicht; Backend)
vorgestellt. Übungen und Praxisaufgaben ergänzen die Vorlesung. Hier
entwickeln die Studierenden auf der Basis eines vorgegebenen
Programmrahmens einen eigenen Übersetzer für die Programmiersprache
e2, die speziell für den Übersetzerbau-Vorlesungszyklus entworfen
wurde.
*Behandelte Themenfelder:*
- Prinzipien der Übersetzung imperativer Programmiersprachen
- Struktur eines Übersetzers
- Symbolentschlüssler (Scanner) und Zerteiler (Parser)
- Abstrakter Syntaxbaum (AST)
- Besuchermuster
- AST-Transformationen, Entzuckerung
- Symboltabellen und Sichtbarkeitsbereiche
- Semantische Analyse: Namensanalyse, Typprüfung
- Übersetzung von arithmetischen Ausdrücken und Kontrollflusskonstrukten in registerbasierte oder stapelbasierte Zwischensprachen
- Übersetzung von Methoden und Methodenaufrufen; Methodenschachteln
- Übersetzung objektorientierter Sprachen mit Einfachvererbung, Schnittstellen und Mehrfachvererbung
- Methodenauswahl in Java (überladene und überschriebene Methoden)
- Code-Generierung nach Sethi-Ullmann, Graham-Glanville, per Baumtransformation sowie mit Hilfe dynamischer Programmierung
- Registerallokation mit lokalen Techniken und mit Graphfärbung
- Instruktionsanordnung mit "list scheduling"
- Debugger
.
*Themen der Vorlesungseinheiten:*
1. Einführung (Überblick, modulare Struktur von Übersetzern, Frontend,
Mittelschicht, Backend), Bootstrapping)
2. Symbolentschlüssler (Lexer) und Zerteiler (Parser), (Token,
Literale, Symboltabelle, Grammatikklassen (LK(k), LL(k), ...),
konkreter Syntaxbaum, Shift-Reduce-Parser)
3. AST und semantische Analyse (abstrakter Syntaxbaum, Besuchermuster,
Double Dispatch, Sichtbarkeitsbereiche, Definitionstabelle)
4. Typkonsistenz (Typsicherheit, Typsystem, Typüberprüfung,
Typberechnung, Typkonvertierung, attributierte Grammatiken)
5. AST-Transformationen (Transformationsschablonen für Ausdrücke,
Transformation innerer und generischer Klassen)
6. Transformation in Zwischensprache (registerbasiert versus
stapelbasiert, Übersetzung von arithmetischen Ausdrücken, Zuweisungen,
mehrdimensionalen Feldern, struct-Datentypen und
Kontrollflussstrukturen (einschließlich Kurzschlussauswertung))
7. Methodenschachteln und Kellerrahmen (relative Adressen, call by
value/reference/name, geschachtelte Funktionen, Funktionszeiger,
Stack- und Framepointer, Funktionsaufruf, Prolog, Epilog)
8. Objektorientierte Sprachen I: Einfachvererbung (Symbol- und
Typanalyse, Methodenauswahl mit Überschreiben und Überladen, virtuelle
Methodenaufrufe, Klassendeskriptoren, dynamische Typprüfung und
-wandlung)
9. Objektorientierte Sprachen II: Schnittstellen und Mehrfachvererbung
(Interface v-Tables, dynamische Typprüfung und -wandlung mit
Interfaces, Interfaces mit Default-Implementierung, Diamantenproblem)
10. Einfache Code-Erzeugung (Code-Selektion nach Sethi-Ullman,
Register-Allokation, Instruktionsreihenfolge, optimale Code-Erzeugung
für Ausdrucksbäume)
11. Fortgeschrittene Code-Erzeugung (Baumtransformation,
Graham-Glanville, dynamisches Programmieren)
12. Registerallokation (Leistungsabschätzung, Lebendigkeitsintervalle,
Kollisions- und Interferenzgraph, Spilling, Färbungsheuristiken,
Aufteilung von Lebendigkeitsintervallen, 2nd Chance Bin Packing,
Registerverschmelzung)
13. Parallelismus auf Instruktionsebene, Instruktionsreihenfolge,
Debugger (Konflikte im Instruktionsfließband, List Scheduling,
Delay-Slots, Sprungzielvorhersage, ptrace, Unterbrechungs- und
Beobachtungspunkte, DWARF)
*Meilensteine der Übungsbetriebs:*
Im Rahmen der Übungen (separater UnivIS-Eintrag) 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. Ein Rahmenprogramm
ist gegeben, das in fünf Meilensteinen um selbstentwickelte
Schlüsselkomponenten zu erweitern ist.
Folgende Meilensteine sind zu erreichen:
Meilenstein 1: Grammatik, AST-Konstruktion: Antlr-Produktionen,
AST-Besucherschnittschelle, generischer AST-Besucher für return und
Schleifen, AST-Besucher zur Visualisierung.
Meilenstein 2: Symbolanalyse, Symboltabelle, Standardfunktionen,
AST-Besucher für die Symbolanalyse.
Meilenstein 3: Konstantenfaltung per AST-Transformation, Typanalyse
mit bottom-up AST-Besuch, der implizite Typwandlungen bei Bedarf
ergänzt.
Meilenstein 4: AST-Besucher zur Erzeugung der
Zwischensprachrepräsentation, Übersetzung von arithmetischen
Ausdrücken, return, Zuweisungen, logischen Ausdrücken, Bedingungen und
Schleifen.
Meilenstein 5.0: Speicherzuteilung: Festlegung und Umsetzung der ABI
Aufrufkonvention, Zuweisung von Speicheradressen zu Variablen;
Kellerrahmenallokation; caller-save und callee-save Register.
Meilenstein 5.1: Code-Erzeugung: Implementierung der e2
Standardbibliothek; IR-Besucher zur Erzeugung von Assembly-Code.
Für die Meilensteine 1-3 soll der Übersetzer sowohl Integer- als auch
Gleitkomma-Arithmetik unterstützen. Für die nachfolgenden Meilensteine
reicht Integer-Arithmetik.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
1. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 08:15 - 09:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 |
|
11301.00.005 |
Praktische Softwaretechnik
Grunddaten
Titel | Praktische Softwaretechnik |
---|---|
Kurztext | PSWT-PSWT |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
*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
Semesterwochenstunden | 4 |
---|---|
Lehrsprache | Englisch |
Verantwortliche/-r |
Ralf Ellner Dr.Ing. Christoph Erhardt |
Maximale Anzahl Teilnehmer/-innen: 100
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 10:15 - 13:45 | 19.10.2022 - 08.02.2023 | 21.12.2022 04.01.2023 28.12.2022 |
|
11301.00.005 |
Software-Projektmanagement
Grunddaten
Titel | Software-Projektmanagement |
---|---|
Kurztext | PSWT-SPM |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 4 |
Parallelgruppen / Termine
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
Semesterwochenstunden | 4 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Bernd Hindel |
LIteraturhinweise: - 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)
Maximale Anzahl Teilnehmer/-innen: 20
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Blockveranstaltung+SaundSo Mo, 08:00 - 16:00 | 06.03.2023 - 20.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Di, 08:00 - 16:00 | 07.03.2023 - 21.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Mi, 08:00 - 16:00 | 08.03.2023 - 22.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Do, 08:00 - 16:00 | 09.03.2023 - 23.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Fr, 08:00 - 16:00 | 10.03.2023 - 24.03.2023 |
|
11901.U1.245 |
Hauptseminar
Machine Learning: Advances
Grunddaten
Titel | Machine Learning: Advances |
---|---|
Kurztext | SemML-II |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch oder Englisch |
Verantwortliche/-r |
Tobias Feigl Christoffer Löffler Dr.-Ing. Christopher Mutschler |
LIteraturhinweise: - 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
Es wurden noch keine Termine für die Parallelgruppe geplant.
Machine Learning: Introduction
Grunddaten
Titel | Machine Learning: Introduction |
---|---|
Kurztext | SemML-I |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch oder Englisch |
Verantwortliche/-r |
Christoffer Löffler Tobias Feigl Dr.-Ing. Christopher Mutschler |
LIteraturhinweise: - 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
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Einzeltermin Sa, 10:00 - 15:00 | 28.01.2023 - 28.01.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 04.03.2023 - 04.03.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 11.03.2023 - 11.03.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 18.03.2023 - 18.03.2023 | 11302.04.150 |
Seminar
Begleitseminar zu Bachelor- und Masterarbeiten
Grunddaten
Titel | Begleitseminar zu Bachelor- und Masterarbeiten |
---|---|
Kurztext | inf2-bs-bama |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 3 |
Parallelgruppen / Termine
1. Parallelgruppe
Semesterwochenstunden | 3 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Grunddaten
Titel | Rechnerübungen zu Algorithmen und Datenstrukturen |
---|---|
Kurztext | RUEB-AuD |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Di, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Di, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 14:00 - 16:00 | 19.10.2022 - 08.02.2023 |
Tafelübungen zu Algorithmen und Datenstrukturen
Grunddaten
Titel | Tafelübungen zu Algorithmen und Datenstrukturen |
---|---|
Kurztext | TUEB-AuD |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 16:15 - 17:45 | 21.10.2022 - 10.02.2023 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Grunddaten
Titel | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Kurztext | inf2-ueb3-ex |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Tobias Heineken Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Blockveranstaltung Mo, 09:00 - 18:00 | 06.03.2023 - 10.03.2023 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Grunddaten
Titel | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Kurztext | inf2-ueb-ex |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Tobias Heineken Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Michel Schmid Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Florian Mayer Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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 |
Kommendes Semester
Vorlesung
Ausgewählte Kapitel aus dem Übersetzerbau
Grunddaten
Titel | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Kurztext | inf2-ueb3 |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Es ist keine Anmeldung erforderlich.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen Julian Brandner Florian Mayer Tobias Heineken |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 14:15 - 15:45 | 17.10.2022 - 06.02.2023 | 26.12.2022 02.01.2023 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Grunddaten
Titel | Grundlagen des Übersetzerbaus |
---|---|
Kurztext | inf2-ueb |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallelgruppen / Termine
*Motivation:*
Auf den ersten Blick erscheint es wenig sinnvoll, sich mit Übersetzerbau zu beschäftigen. Andere Themen scheinen wesentlich näher an der direkten Anwendbarkeit in der industriellen Praxis. Der erste Blick täuscht:
- Übersetzer gehören wohl zu den am gründlichsten studierten mittelgroßen sequentiellen Software-Systemen. Man kann viel aus den Erfahrungen lernen, die im Laufe der Jahre gesammelt wurden.
- In den Übungen, die die Vorlesung begleiten, werden Sie selbst einen (kleinen) Übersetzer entwickeln.
- Für viele Teilnehmer wird dieses Projekt das erste größere Software-Projekt sein. Viele der Algorithmen aus dem Grundstudium werden angewendet.
- Bei jedem von Ihnen verwendeten Übersetzer gehen Sie in der Regel davon aus, dass richtiger Coder erzeugt wird. In der Vorlesung erfahren Sie, wie das geforderte hohe Maß an Korrektheit und Zuverlässigkeit erreicht wird.
- Sie erlangen ein Verständnis für Konzepte von Programmiersprachen und verstehen, welcher Maschinen-Code aus Sprachkonstrukten gemacht wird. Mit diesem Wissen im Hinterkopf verbessern Sie Ihre Fähigkeit, gute und effiziente Programme zu schreiben.
- Übersetzer werden nicht nur für Programmiersprachen benötigt. Spezielle Übersetzer braucht man in vielen Bereichen des täglichen Informatik-Lebens z.B. zur Textformatierung, für Programmtransformationen, für aspektorientiertes Programmieren, für die Verarbeitung von XML, ...
- Es gehört zu einer Ingenieur-Ausbildung, in der Lage zu sein, diejenigen Werkzeuge selbst zu fertigen, die man verwendet. Für Informatiker gehört daher ein Verständnis vom Innenleben eines Übersetzers zum Rüstzeug.
.
*Fokus der Lehrveranstaltung:*
Es werden Konzepte und Techniken der Übersetzerkonstruktion aus Sicht
eines Übersetzerbauers und entlang der wesentlichen Arbeitsschritte
eines Übersetzers (Frontend; Mittelschicht; Backend)
vorgestellt. Übungen und Praxisaufgaben ergänzen die Vorlesung. Hier
entwickeln die Studierenden auf der Basis eines vorgegebenen
Programmrahmens einen eigenen Übersetzer für die Programmiersprache
e2, die speziell für den Übersetzerbau-Vorlesungszyklus entworfen
wurde.
*Behandelte Themenfelder:*
- Prinzipien der Übersetzung imperativer Programmiersprachen
- Struktur eines Übersetzers
- Symbolentschlüssler (Scanner) und Zerteiler (Parser)
- Abstrakter Syntaxbaum (AST)
- Besuchermuster
- AST-Transformationen, Entzuckerung
- Symboltabellen und Sichtbarkeitsbereiche
- Semantische Analyse: Namensanalyse, Typprüfung
- Übersetzung von arithmetischen Ausdrücken und Kontrollflusskonstrukten in registerbasierte oder stapelbasierte Zwischensprachen
- Übersetzung von Methoden und Methodenaufrufen; Methodenschachteln
- Übersetzung objektorientierter Sprachen mit Einfachvererbung, Schnittstellen und Mehrfachvererbung
- Methodenauswahl in Java (überladene und überschriebene Methoden)
- Code-Generierung nach Sethi-Ullmann, Graham-Glanville, per Baumtransformation sowie mit Hilfe dynamischer Programmierung
- Registerallokation mit lokalen Techniken und mit Graphfärbung
- Instruktionsanordnung mit "list scheduling"
- Debugger
.
*Themen der Vorlesungseinheiten:*
1. Einführung (Überblick, modulare Struktur von Übersetzern, Frontend,
Mittelschicht, Backend), Bootstrapping)
2. Symbolentschlüssler (Lexer) und Zerteiler (Parser), (Token,
Literale, Symboltabelle, Grammatikklassen (LK(k), LL(k), ...),
konkreter Syntaxbaum, Shift-Reduce-Parser)
3. AST und semantische Analyse (abstrakter Syntaxbaum, Besuchermuster,
Double Dispatch, Sichtbarkeitsbereiche, Definitionstabelle)
4. Typkonsistenz (Typsicherheit, Typsystem, Typüberprüfung,
Typberechnung, Typkonvertierung, attributierte Grammatiken)
5. AST-Transformationen (Transformationsschablonen für Ausdrücke,
Transformation innerer und generischer Klassen)
6. Transformation in Zwischensprache (registerbasiert versus
stapelbasiert, Übersetzung von arithmetischen Ausdrücken, Zuweisungen,
mehrdimensionalen Feldern, struct-Datentypen und
Kontrollflussstrukturen (einschließlich Kurzschlussauswertung))
7. Methodenschachteln und Kellerrahmen (relative Adressen, call by
value/reference/name, geschachtelte Funktionen, Funktionszeiger,
Stack- und Framepointer, Funktionsaufruf, Prolog, Epilog)
8. Objektorientierte Sprachen I: Einfachvererbung (Symbol- und
Typanalyse, Methodenauswahl mit Überschreiben und Überladen, virtuelle
Methodenaufrufe, Klassendeskriptoren, dynamische Typprüfung und
-wandlung)
9. Objektorientierte Sprachen II: Schnittstellen und Mehrfachvererbung
(Interface v-Tables, dynamische Typprüfung und -wandlung mit
Interfaces, Interfaces mit Default-Implementierung, Diamantenproblem)
10. Einfache Code-Erzeugung (Code-Selektion nach Sethi-Ullman,
Register-Allokation, Instruktionsreihenfolge, optimale Code-Erzeugung
für Ausdrucksbäume)
11. Fortgeschrittene Code-Erzeugung (Baumtransformation,
Graham-Glanville, dynamisches Programmieren)
12. Registerallokation (Leistungsabschätzung, Lebendigkeitsintervalle,
Kollisions- und Interferenzgraph, Spilling, Färbungsheuristiken,
Aufteilung von Lebendigkeitsintervallen, 2nd Chance Bin Packing,
Registerverschmelzung)
13. Parallelismus auf Instruktionsebene, Instruktionsreihenfolge,
Debugger (Konflikte im Instruktionsfließband, List Scheduling,
Delay-Slots, Sprungzielvorhersage, ptrace, Unterbrechungs- und
Beobachtungspunkte, DWARF)
*Meilensteine der Übungsbetriebs:*
Im Rahmen der Übungen (separater UnivIS-Eintrag) 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. Ein Rahmenprogramm
ist gegeben, das in fünf Meilensteinen um selbstentwickelte
Schlüsselkomponenten zu erweitern ist.
Folgende Meilensteine sind zu erreichen:
Meilenstein 1: Grammatik, AST-Konstruktion: Antlr-Produktionen,
AST-Besucherschnittschelle, generischer AST-Besucher für return und
Schleifen, AST-Besucher zur Visualisierung.
Meilenstein 2: Symbolanalyse, Symboltabelle, Standardfunktionen,
AST-Besucher für die Symbolanalyse.
Meilenstein 3: Konstantenfaltung per AST-Transformation, Typanalyse
mit bottom-up AST-Besuch, der implizite Typwandlungen bei Bedarf
ergänzt.
Meilenstein 4: AST-Besucher zur Erzeugung der
Zwischensprachrepräsentation, Übersetzung von arithmetischen
Ausdrücken, return, Zuweisungen, logischen Ausdrücken, Bedingungen und
Schleifen.
Meilenstein 5.0: Speicherzuteilung: Festlegung und Umsetzung der ABI
Aufrufkonvention, Zuweisung von Speicheradressen zu Variablen;
Kellerrahmenallokation; caller-save und callee-save Register.
Meilenstein 5.1: Code-Erzeugung: Implementierung der e2
Standardbibliothek; IR-Besucher zur Erzeugung von Assembly-Code.
Für die Meilensteine 1-3 soll der Übersetzer sowohl Integer- als auch
Gleitkomma-Arithmetik unterstützen. Für die nachfolgenden Meilensteine
reicht Integer-Arithmetik.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533479.html
1. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 08:15 - 09:45 | 20.10.2022 - 09.02.2023 | 05.01.2023 29.12.2022 |
|
11301.00.005 |
Praktische Softwaretechnik
Grunddaten
Titel | Praktische Softwaretechnik |
---|---|
Kurztext | PSWT-PSWT |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
*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
Semesterwochenstunden | 4 |
---|---|
Lehrsprache | Englisch |
Verantwortliche/-r |
Ralf Ellner Dr.Ing. Christoph Erhardt |
Maximale Anzahl Teilnehmer/-innen: 100
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 10:15 - 13:45 | 19.10.2022 - 08.02.2023 | 21.12.2022 04.01.2023 28.12.2022 |
|
11301.00.005 |
Software-Projektmanagement
Grunddaten
Titel | Software-Projektmanagement |
---|---|
Kurztext | PSWT-SPM |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 4 |
Parallelgruppen / Termine
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
Semesterwochenstunden | 4 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Bernd Hindel |
LIteraturhinweise: - 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)
Maximale Anzahl Teilnehmer/-innen: 20
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Blockveranstaltung+SaundSo Mo, 08:00 - 16:00 | 06.03.2023 - 20.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Di, 08:00 - 16:00 | 07.03.2023 - 21.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Mi, 08:00 - 16:00 | 08.03.2023 - 22.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Do, 08:00 - 16:00 | 09.03.2023 - 23.03.2023 |
|
11901.U1.245 | ||
Blockveranstaltung+SaundSo Fr, 08:00 - 16:00 | 10.03.2023 - 24.03.2023 |
|
11901.U1.245 |
Hauptseminar
Machine Learning: Advances
Grunddaten
Titel | Machine Learning: Advances |
---|---|
Kurztext | SemML-II |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch oder Englisch |
Verantwortliche/-r |
Tobias Feigl Christoffer Löffler Dr.-Ing. Christopher Mutschler |
LIteraturhinweise: - 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
Es wurden noch keine Termine für die Parallelgruppe geplant.
Machine Learning: Introduction
Grunddaten
Titel | Machine Learning: Introduction |
---|---|
Kurztext | SemML-I |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Anmeldung mit Themenanfrage per E-Mail vor Beginn des Seminars; Die Themen werden nach dem Prinzip "Wer zuerst kommt, mahlt zuerst" verteilt.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch oder Englisch |
Verantwortliche/-r |
Christoffer Löffler Tobias Feigl Dr.-Ing. Christopher Mutschler |
LIteraturhinweise: - 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
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Einzeltermin Sa, 10:00 - 15:00 | 28.01.2023 - 28.01.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 04.03.2023 - 04.03.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 11.03.2023 - 11.03.2023 | 11302.04.150 | |||
Einzeltermin Sa, 10:00 - 15:00 | 18.03.2023 - 18.03.2023 | 11302.04.150 |
Seminar
Begleitseminar zu Bachelor- und Masterarbeiten
Grunddaten
Titel | Begleitseminar zu Bachelor- und Masterarbeiten |
---|---|
Kurztext | inf2-bs-bama |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 3 |
Parallelgruppen / Termine
1. Parallelgruppe
Semesterwochenstunden | 3 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Grunddaten
Titel | Rechnerübungen zu Algorithmen und Datenstrukturen |
---|---|
Kurztext | RUEB-AuD |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
2. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Di, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Di, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 14:00 - 16:00 | 19.10.2022 - 08.02.2023 |
Tafelübungen zu Algorithmen und Datenstrukturen
Grunddaten
Titel | Tafelübungen zu Algorithmen und Datenstrukturen |
---|---|
Kurztext | TUEB-AuD |
Turnus des Angebots | in jedem Semester |
Semesterwochenstunden | 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.
Parallelgruppen / Termine
Die Materialien zur Lehrveranstaltung werden über [StudOn] https://www.studon.fau.de/crs4533476.html bereitgestellt.
6. Parallelgruppe
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mi, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Dr.-Ing. Norbert Oster |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 16:15 - 17:45 | 21.10.2022 - 10.02.2023 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Grunddaten
Titel | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Kurztext | inf2-ueb3-ex |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Tobias Heineken Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
Blockveranstaltung Mo, 09:00 - 18:00 | 06.03.2023 - 10.03.2023 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Grunddaten
Titel | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Kurztext | inf2-ueb-ex |
Turnus des Angebots | nur im Wintersemester |
Semesterwochenstunden | 2 |
Parallelgruppen / Termine
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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Tobias Heineken Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Fr, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Michel Schmid Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Do, 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
Semesterwochenstunden | 2 |
---|---|
Lehrsprache | Deutsch |
Verantwortliche/-r |
Florian Mayer Prof. Dr. Michael Philippsen |
Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
---|---|---|---|---|---|
wöchentlich Mo, 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 |
Übliches Raster der Lehrveranstaltungen
Sommersemester |
Wintersemester |
|
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) |