Lehramt für Informatik
Modulangebot Informatik (30 LP, Studienordnung 2018)
0132c_m30-
Informatik B
0132cA1.2-
19300101
Vorlesung
Algorithmen und Datenstrukturen (Wolfgang Mulzer)
Zeit: Di 16:00-18:00, Fr 12:00-14:00, zusätzliche Termine siehe LV-Details (Erster Termin: 16.04.2024)
Ort: , HFB/A Hörsaal, HFB/C Hörsaal, Hs 1a Hörsaal, Hs 1b Hörsaal, Hs 2 Hörsaal
Kommentar
Qualifikationsziele
Die Studierenden analysieren4 Algorithmen und Datenstrukturen und ihre Implementierungen bezüglich Laufzeit, Speicherbedarf und Korrektheit und beschreiben2 verschiedene Algorithmen und Datenstrukturen für typische Anwendungen und wenden3 diese auf konkrete Beispiele an. Sie können passende Algorithmen und Datenstrukturen für gegebene Aufgaben auswählen4 und passen5 diese entsprechend an. Sie erklären2, identifizieren4 und verwenden5 verschiedene Entwurfsparadigmen für Algorithmen.
Inhalte
Studierende lernen das Maschinenmodell, sowie verschiedene algorithmische Probleme kennen. Sie erarbeiten und üben die Berechnung von Laufzeit, Korrektheit und Speicherbedarf dieser Algorithmen und lernen die asymptotische worst-case Analyse kennen. Darüber hinaus diskutieren sie die Rolle des Zufalls im Kontext des Entwurfs von Algorithmen. Des Weiteren erlernen und üben sie Entwurfsparadigmen für Algorithmen wie Teile und Herrsche, gierige Algorithmen, Dynamische Programmierung und Erschöpfende Suche. Sie lernen Prioritätswarteschlangen und effiziente Datenstrukturen für geordnete und ungeordnete Wörterbücher (z.B. ausgeglichene Suchbäume, Streuspeicher, Skiplisten) kennen und üben den Umgang mit ihnen. Zudem lernen sie Algorithmen für Zeichenketten (digitale Suchbäume und Suchen in Zeichenketten) und Graphenalgorithmen kennen, diskutieren deren Anwendung und üben den Umgang mit ihnen.
Literaturhinweise
- P. Morin: Open Data Structures, an open content textboox.
- T. H. Cormen, C. Leiserson, R. Rivest, C. Stein: Introduction to Algorithms, MIT Press, 2022.
- R. Sedgewick, K. Wayne: Algorithms, Addison-Wesley, 2011.
- M. Dietzfelbinger, K. Mehlhorn, P. Sanders. Algorithmen und Datenstrukturen: Die Grundwerkzeuge, Springer, 2014.
- J. Erickson. Algorithms, 2019
- T. Roughgarden. Algorithms Illuminated. Cambridge University Press, 2022.
-
19300102
Übung
Übung zu Algorithmen und Datenstrukturen (Wolfgang Mulzer)
Zeit: Mo 14:00-16:00, Mo 16:00-18:00, Mi 12:00-14:00, Mi 14:00-16:00, Mi 16:00-18:00, Do 16:00-18:00, Fr 14:00-16:00, Fr 16:00-18:00 (Erster Termin: 15.04.2024)
Ort: T9/051 Seminarraum (Takustr. 9)
-
19300101
Vorlesung
-
Datenbanksysteme für Nebenfach
0132cA2.2-
19301501
Vorlesung
Datenbanksysteme (Agnès Voisard)
Zeit: Di 14:00-16:00, Do 14:00-16:00, zusätzliche Termine siehe LV-Details (Erster Termin: 16.04.2024)
Ort: T9/Gr. Hörsaal (Takustr. 9)
Zusätzl. Angaben / Voraussetzungen
Zielgruppe
- Pflichtmodul im Bachelorstudiengang Informatik
- Pflichtmodul im lehramtsbezogenen Bachelorstudiengang mit Kernfach Informatik und Ziel: Großer Master
- Studierende im lehramtsbezogenen Masterstudiengang (Großer Master mit Zeitfach Informatik) können dieses Modul zusammen mit dem "Praktikum DBS" absolvieren
- Wahlpflichtmodul im Nebenfach Informatik
Voraussetzungen
- ALP 1 - Funktionale Programmierung
- ALP 2 - Objektorientierte Programmierung
- ALP 3 - Datenstrukturen und Datenabstraktion
- ODER Informatik B
Kommentar
Inhalt
Datenbankentwurf mit ERM/ERDD. Theoretische Grundlagen relationaler Datenbanksysteme: Relationale Algebra, Funktionale Abhängigkeiten, Normalformen. Relationale Datenbankentwicklung: SQL Datendefinition, Fremdschlüssel und andere Integritätsbedingungen. SQL als applikative Sprache: wesentliche Sprachelemente, Einbettung in Programmiersprachen, Anwendungsprogrammierung; objekt-relationale Abbildung. Transaktionsbegriff, transaktionale Garantien, Synchronisation des Mehrbenutzerbetriebs, Fehlertoleranzeigenschaften. Anwendungen und neue Entwicklungen: Data Warehousing, Data Mining, OLAP.
Projekt: im begleitenden Projekt werden die Themen praktisch vertieft.
Literaturhinweise
- Alfons Kemper, Andre Eickler: Datenbanksysteme - Eine Einführung, 5. Auflage, Oldenbourg 2004
- R. Elmasri, S. Navathe: Grundlagen von Datenbanksystemen, Pearson Studium, 2005
-
19301502
Übung
Übung zu Datenbanksysteme (Muhammed-Ugur Karagülle)
Zeit: Mo 14:00-16:00, Mo 16:00-18:00, Di 08:00-10:00, Di 10:00-12:00, Di 12:00-14:00, Mi 12:00-14:00, Mi 14:00-16:00, Do 08:00-10:00, Do 10:00-12:00, Do 12:00-14:00, Fr 14:00-16:00, Fr 16:00-18:00 (Erster Termin: 17.04.2024)
Ort: T9/055 Seminarraum (Takustr. 9)
-
19301501
Vorlesung
-
Grundlagen der theoretischen Informatik für Nebenfach
0132cA2.3-
19301201
Vorlesung
Grundlagen der theoretischen Informatik (Katharina Klost)
Zeit: Mo 12:00-14:00, Mi 08:00-10:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
Ort: T9/SR 005 Übungsraum (Takustr. 9)
Kommentar
Inhalt:
- Theoretische Rechnermodelle
- Automaten
- formale Sprachen
- Grammatiken und die Chomsky-Hierarchie
- Turing-Maschinen
- Berechenbarkeit
- Einführung in die Komplexität von Problemen
Literaturhinweise
- Uwe Schöning, Theoretische Informatik kurzgefasst, 5. Auflage, Spektrum Akademischer Verlag, 2008
- John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Einführung in die Automatentheorie, Formale Sprachen und Komplexität, Pearson Studium, 3. Auflage, 2011
- Ingo Wegener: Theoretische Informatik - Eine algorithmenorientierte Einführung, 2. Auflage, Teubner, 1999
- Michael Sipser, Introduction to the Theory of Computation, 2nd ed., Thomson Course Technology, 2006
- Wegener, Kompendium theoretische Informatik - Eine Ideensammlung, Teubner 1996
- Theoretische Rechnermodelle
-
19301202
Übung
Übung zu Grundlagen der theoretischen Informatik (Katharina Klost)
Zeit: Di 10:00-12:00, Di 16:00-18:00, Mi 12:00-14:00, Mi 14:00-16:00 (Erster Termin: 16.04.2024)
Ort: T9/053 Seminarraum (Takustr. 9)
-
19301201
Vorlesung
-
Nichtsequentielle Programmierung
0132cA2.4-
19322101
Vorlesung
Nebenläufige, parallele und verteilte Programmierung (Claudia Müller-Birn, Barry Linnert)
Zeit: Mo 14:00-16:00, Mi 16:00-18:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
Ort: T9/Gr. Hörsaal (Takustr. 9)
Kommentar
Inhalte:
Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsame Ressourcen zugreifen oder über Nachrichtenaustausch interagieren.
- Nichtsequentielle Programme und Prozesse in ihren verschiedenen Ausprägungen, Nichtdeterminismus, Determinierung
- Synchronisationsmechanismen: Sperren, Monitore, Wachen, Ereignisse, Semaphore
- Nichtsequentielle Programmausführung und Objektorientierung
- Ablaufsteuerung, Auswahlstrategien, Prioritäten, Umgang mit und Vermeidung von Verklemmung
- Koroutinen, Implementierung, Mehrprozessorsysteme
- Interaktion über Nachrichten
- Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren
- Fernaufruftechniken
- Client-Server, Peer-to-Peer
- Parallelrechnen im Netz
- Koordinierungssprachen
- Verarbeitung auf dem Server und auf dem Client, Mobilität
- Middleware, strukturierte Kommunikation, statische und dynamische Schnittstellen
- Ereignisbasierte und strombasierte Verarbeitung
- Sicherheit von Anwendungen im Netzwerk
- Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte)
Literaturhinweise
Literatur:
- Principles of Concurrent and Distributed Programming. M. Ben-Ari. Addison-Wesley.
- Distributed Systems. Concepts and Design. Fifth Edition. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Pearson.
-
19322102
Übung
Übung zu Nebenläufige, parallele und verteilte Programmierung (Barry Linnert)
Zeit: Mo 10:00-12:00, Mo 12:00-14:00, Mi 14:00-16:00, Do 08:00-10:00, Do 14:00-16:00, Fr 10:00-12:00, Fr 14:00-16:00, Fr 16:00-18:00 (Erster Termin: 15.04.2024)
Ort: T9/053 Seminarraum (Takustr. 9)
-
19322101
Vorlesung
-
Verteilte Programmierung
0132cA2.5-
19322101
Vorlesung
Nebenläufige, parallele und verteilte Programmierung (Claudia Müller-Birn, Barry Linnert)
Zeit: Mo 14:00-16:00, Mi 16:00-18:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
Ort: T9/Gr. Hörsaal (Takustr. 9)
Kommentar
Inhalte:
Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsame Ressourcen zugreifen oder über Nachrichtenaustausch interagieren.
- Nichtsequentielle Programme und Prozesse in ihren verschiedenen Ausprägungen, Nichtdeterminismus, Determinierung
- Synchronisationsmechanismen: Sperren, Monitore, Wachen, Ereignisse, Semaphore
- Nichtsequentielle Programmausführung und Objektorientierung
- Ablaufsteuerung, Auswahlstrategien, Prioritäten, Umgang mit und Vermeidung von Verklemmung
- Koroutinen, Implementierung, Mehrprozessorsysteme
- Interaktion über Nachrichten
- Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren
- Fernaufruftechniken
- Client-Server, Peer-to-Peer
- Parallelrechnen im Netz
- Koordinierungssprachen
- Verarbeitung auf dem Server und auf dem Client, Mobilität
- Middleware, strukturierte Kommunikation, statische und dynamische Schnittstellen
- Ereignisbasierte und strombasierte Verarbeitung
- Sicherheit von Anwendungen im Netzwerk
- Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte)
Literaturhinweise
Literatur:
- Principles of Concurrent and Distributed Programming. M. Ben-Ari. Addison-Wesley.
- Distributed Systems. Concepts and Design. Fifth Edition. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Pearson.
-
19322102
Übung
Übung zu Nebenläufige, parallele und verteilte Programmierung (Barry Linnert)
Zeit: Mo 10:00-12:00, Mo 12:00-14:00, Mi 14:00-16:00, Do 08:00-10:00, Do 14:00-16:00, Fr 10:00-12:00, Fr 14:00-16:00, Fr 16:00-18:00 (Erster Termin: 15.04.2024)
Ort: T9/053 Seminarraum (Takustr. 9)
-
19322101
Vorlesung
-
-
Informatik A 0132cA1.1
-
Auswirkungen der Informatik 0132cA2.1
-