SoSe 24  
Mathematik und ...  
Kernfach Inform...  
Lehrveranstaltung

Lehramt für Informatik

Kernfach Informatik (90 LP / Lehramt, Studienordnung 2009)

0087b_k90
  • Nichtsequentielle Programmierung

    0086bA1.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)
  • Softwaretechnik

    0159bA1.2
    • 19301401 Vorlesung
      Softwaretechnik (Barry Linnert)
      Zeit: Mo 10:00-12:00, Do 12:00-14:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
      Ort: T9/Gr. Hörsaal (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      • Pflichtmodul im Bachelorstudiengang Informatik
      • Wahlpflichtmodul im Nebenfach Informatik
      • Studierende im lehramtsbezogenen Masterstudiengang (Großer Master mit Zweitfach Informatik) können dieses Modul zusammen mit dem "Praktikum SWT (19516c)" absolvieren und ersetzen damit die Module "Netzprogrammierung" und "Embedded Internet"

      Voraussetzungen

      ALP III oder Informatik B

      Sprache

      Kurssprache ist Deutsch inklusive Folien und Übungsblätter. Einige wenige Folien sind in Englisch.

      Die Klausur ist auf Deutsch, kann aber auch auf Englisch beantwortet werden.

      Homepage

      http://www.inf.fu-berlin.de/w/SE/VorlesungSoftwaretechnik

      Kommentar

      Inhalt

      Softwaretechnik (oder englisch Software Engineering) ist die Lehre von der Softwarekonstruktion im Großen, also das Grundlagenfach zur Methodik.

      Die Softwaretechnik ist bemüht, Antworten auf die folgenden Fragen zu geben:

      • Wie findet man heraus, was eine Software für Eigenschaften haben soll (Anforderungsermittlung)?
      • Wie beschreibt man dann diese Eigenschaften (Spezifikation)?
      • Wie strukturiert man die Software so, dass sie sich leicht bauen und flexibel verändern lässt (Entwurf)?
      • Wie verändert man Software, die keine solche Struktur hat oder deren Struktur man nicht (mehr) versteht (Wartung, Reengineering)?
      • Wie deckt man Mängel in Software auf (Qualitätssicherung, Test)?
      • Wie organisiert man die Arbeit einer Softwarefirma oder -abteilung, um regelmäßig kostengünstige und hochwertige Resultate zu erzielen (Prozessmanagement)?
      • Welche (großenteils gemeinsamen) Probleme liegen allen diesen Fragestellungen zu Grunde und welche (größtenteils gemeinsamen) allgemeinen Lösungsansätze liegen den verwendeten Methoden und Techniken zu Grunde?

      ...und viele ähnliche mehr.

      Diese Vorlesung gibt einen Überblick über die Methoden und stellt essentielles Grundwissen für jede/n ingenieurmäßig arbeitende/n Informatiker/in dar.

      Genauere Information siehe Homepage: http://www.inf.fu-berlin.de/w/SE/VorlesungSoftwaretechnik

      Literaturhinweise

      Bernd Brügge, Allen Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Pearson 2004.

    • 19301402 Übung
      Übung zu Softwaretechnik (Barry Linnert, Linus Ververs)
      Zeit: Mo 16:00-18:00, Di 08:00-10:00, Di 10:00-12:00, Di 16:00-18:00, Mi 08:00-10:00, Mi 10:00-12:00, Mi 14:00-16:00, Do 10:00-12:00, Fr 10:00-12:00 (Erster Termin: 15.04.2024)
      Ort: T9/046 Seminarraum (Takustr. 9)
  • Betriebs- und Kommunikationssysteme

    0086bA2.3
    • 19300701 Vorlesung
      Betriebs- und Kommunikationssysteme (Larissa Groth)
      Zeit: Mo 12:00-14:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
      Ort: T9/Gr. Hörsaal (Takustr. 9)

      Kommentar

      Studierende erarbeiten sich im Betriebssystemteil den grundlegenden Aufbau aktueller Betriebssysteme und erlernen deren grundlegende Aufgaben. Sie lernen die Verwaltung von Ein-/Ausgabe-Systemen und Peripheriegeräten zur Vernetzung kennen und üben die Programmierung von DMA/PIO in C. Daneben erarbeiten sie sich die Konzepte von Prozessen/Threads, Unterbrechungen und virtuellen Speichers und Speicherverwaltung. Sie üben die Programmierung von Unterbrechungsbehandlung und Speicherverwaltung in C, sowie die Nutzung von Utilities, wie Shells u. ä. Zudem lernen sie Beispiele für Betriebssysteme (UNIX und Windows) kennen.

      Studierende erarbeiten sich im Kommunikationssystemeteil den grundlegenden Aufbau von Netzen, insbesondere des Internets. Sie erlernen den TCP/IP-Protokollstack und das ISO/OSI-Referenzmodell und diskutieren Unterschiede und Anwendungsmöglichkeiten. Sie lernen Medienzugriffsverfahren und Netzwerkgeräte kennen und ordnen diese den verschiedenen Schichten des Protokollstacks zu. Sie erarbeiten sich den Umgang mit Übertragungsfehlern und diskutieren Grenzen dieser Verfahren. Darüber hinaus lernen Sie Routingverfahren innerhalb und außerhalb Autonomer Systeme, sowie TCP und UDP kennen und üben deren Implementierung in C. 

      Literaturhinweise

      • Andrew S. Tanenbaum: Computerarchitektur, 5.Auflage, Pearson Studium, 2006
      • English: Andrew S. Tanenbaum (with contributions from James R. Goodman):
      • Structured Computer Organization, 4th Ed., Prentice Hall International, 2005.

    • 19300704 Seminar am PC
      Übung zu Betriebs- und Kommunikationssysteme (Larissa Groth)
      Zeit: Mo 08:00-10:00, Mo 14:00-16: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, Fr 14:00-16:00 (Erster Termin: 15.04.2024)
      Ort: T9/K 038 Rechnerpoolraum (Takustr. 9)

      Kommentar

      Begleitveranstaltung zur Vorlesung 19300701

  • Grundlagen der Theoretischen Informatik

    0086bA3.1
    • 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

    • 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)
  • Datenbanksysteme

    0086bA3.3
    • 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)
    • Funktionale Programmierung 0086bA1.1
    • Objektorientierte Programmierung 0086bA1.2
    • Datenstrukturen und Datenabstraktion 0086bA1.3
    • Softwarepraktikum 0087bA1.6
    • Anwendungssysteme (Auswirkungen der Informatik) 0159bA1.1
    • Grundlagen der Technischen Informatik 0086bA2.1
    • Rechnerarchitektur 0086bA2.2
    • Logik und Diskrete Mathematik 0086bA4.1
    • Proseminar Informatik 0086bA3.2
    • Schulpraktische Studien im Fach Informatik (fachbezogenes Unterrichten) 0087bA4.3