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

Lehramt für Informatik

Kernfach Informatik (90 LP / Lehramt, SPO2015)

0087d_k90
  • Aktuelle Forschungsthemen der Technischen Informatik

    0089cA3.10
    • 19325301 Vorlesung
      Cluster Computing (Barry Linnert)
      Zeit: Di 10:00-12:00 (Erster Termin: 16.04.2024)
      Ort: T9/051 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      • MSc

      Anforderungen

      • Erfahrung mit Computern und Software sowie Programierkenntnisse

      Sprache

      • Die Kurssprache ist Deutsch (oder Englisch wenn benötigt).
      • The exam will be formulated in German, but answers may be given in English, too.

      Credits & Klausur

      • aktive Teilnahme an den Übungen: regelmäßige Vorbereitung von Übungsaufgaben & Präsentation der Ergebnisse in den Übungen
      • Bestehen der Klausur

      Webseite

      https://www.mi.fu-berlin.de/w/SE/VorlesungClusterComputing

      Kommentar

      Cluster-Computer bilden die zur Zeit vorherrschende Klasse paralleler Hochleistungsrechner. Sie bestehen aus konventionellen Prozessorknoten, die über ein Hochgeschwindig­keitsnetzwerk miteinander verbunden sind. Obwohl meistens räumlich integriert, handelt es sich um verteilte Systeme mit jeweils lokalen Betriebssystemen. Das enorme Leistungspotential dieser Rechnerklasse kann nur ausgeschöpft werden, wenn Programmcode und Daten optimal über die Knoten verteilt werden. Die einge­setzten Verfahren müssen insbesondere skalierbar sein, also auch bei Tausenden von Rechnerknoten noch effizient arbeiten. Gleichzeitig soll aber die Programmiererin bzw. der Programmierer von diesen Aufgaben entlastet werden. Die Vorlesung gibt einen Überblick über die auftretenden Probleme und stellt Algorithmen zu ihrer Lösung vor.

      Literaturhinweise

      • Heiss, H.-U.: Prozessorzuteilung in Parallelrechnern, BI-Verlag, Mannheim, 1996
      • Andrews, G. A.: Foundations of Multithreaded, Parallel and Distributed Programming, Addison-Wesley, 2000
      • Pfister, G.: In Search of Clusters 2nd ed., Prentice Hall, 1998
      • Zomaya, A.: Parallel and distributed computing handbook, McGraw Gill, 1995
      • Buyya, R.: High Performance Cluster Computing, Vol. 1+2, Prentice Hall, 1999

    • 19327401 Vorlesung
      Bild- und Videocodierung (Heiko Schwarz)
      Zeit: Mo 14:00-16:00 (Erster Termin: 15.04.2024)
      Ort: T9/051 Seminarraum (Takustr. 9)

      Kommentar

      Die Vorlesung behandelt die wichtigsten Konzepte und Algorithmen, die in modernen Bild- und Videocodierverfahren verwendet werden. Wir werden uns insbesondere auf Techniken konzentrieren, die in aktuellen internationalen Videocodierstandards Anwendung finden.

      In einem kurzen ersten Teil werden zunächst die sogenannten Rohdatenformate eingeführt, welche als Eingangs- und Ausgangsformate von Bild- und Videocodecs verwendet werden. Dieser Teil beinhaltet folgenden Themen:

      • Farbräume und deren Beziehung zur menschlichen Farbwahrnehmung
      • Transfer-Funktionen (Gamma-Codierung)
      • Warum verwenden wir das YCbCr-Format?

      Der zweite Teil der Vorlesung behandelt zunächst die Bildcodierung und umfasst folgende Themen:

      • Der Anfang: Wie funktioniert JPEG?
      • Warum verwenden wir die Diskrete Cosinus-Transformation?
      • Effiziente Codierung von Transformationskoeffizienten
      • Prädiktion von Bildblöcken
      • Adaptive Blockpartitionierung
      • Wie treffen wir Entscheidungen im Encoder?
      • Optimierungen der Quantisierung

      Im dritten und letzten Teil der Vorlesungen behandeln wir Konzept die letztendlich die Videocodierung deutlich effizienter machen als eine separate Codierung der Einzelbilder. Dieser Teil umfasst folgende Themen:

      • Bewegungskompensierte Prädiktion
      • Codierung von Bewegungsvektoren
      • Algorithmen zur Bewegungssuche
      • Subpixel-genaue Bewegungsvektoren und Interpolationsfilter
      • Verwendung mehrere Referenzbilder
      • Was sind B-Bilder und warum verwenden wir diese?
      • Deblocking- und Deringing-Filter
      • Effiziente zeitliche Codierstrukturen

      In den Übungen werden wir schrittweise einen eigenen Codec für Bilder implementieren. Bei entsprechenden Interesse kann dieser zu einem einfachen Videocodec erweitert werden.

       

      Literaturhinweise

      • Bull, D. R., “Communicating Pictures: A Course in Image and Video Coding,” Elsevier, 2014.
      • Ohm, J.-R., “Multimedia Signal Coding and Transmission,” Springer, 2015.
      • Wien, M., “High Efficiency Video Coding — Coding Tools and Specifications,” Springer 2014.
      • Sze, V., Budagavi, M., and Sullivan, G. J. (eds.), “High Efficiency Video Coding (HEVC): Algorithm and Architectures,” Springer, 2014.
      • Wiegand, T. and Schwarz, H., "Source Coding: Part I of Fundamentals of Source and Video Coding,” Foundations and Trends in Signal Processing, Now Publishers, vol. 4, no. 1–2, 2011.
      • Schwarz, H. and Wiegand, T., “Video Coding: Part II of Fundamentals of Source and Video Coding,” Foundations and Trends in Signal Processing, Now Publishers, vol. 10, no. 1–3, 2016.

    • 19335301 Vorlesung
      Cybersecurity and AI IV: Angriffe (Gerhard Wunder)
      Zeit: Di 12:00-13:30 (Erster Termin: 16.04.2024)
      Ort: T9/SR 005 Übungsraum (Takustr. 9)

      Kommentar

      Cybersecurity and AI ist ein viersemestriger Vorlesungszyklus, der alle wesentlichen Aspekte von Cybersecurity und KI abdeckt. Dieser Kurs vermittelt die Grundlagen für Angriffe auf- und mit KI. Grundsätzlich ist es möglich, den Vorlesungszyklus zu jedem Semester zu beginnen.

      Der Lehrplan ist:

      1. Einführung: KI & Cybersicherheit, Bedrohungsmodell, Bewertungsmetriken, Beispiele für Angriffe
      2. Robuste KI: Definition und Grenzen des Deep Learning, Stärkung von Robustheit, robuste Optimierungsmethoden
      3. Adversarial ML: Verteidigungsmechanismen, Adversarial-Training, Übertragbarkeit, Real-World Implikationen
      4. Generative KI: Generative Modelle, Deepfakes
      5. Federated ML: Sicherheitsherausforderungen, sichere Aggregationsprotokolle

    • 19325302 Übung
      Übung zu Cluster Computing (Barry Linnert)
      Zeit: Do 10:00-12:00 (Erster Termin: 18.04.2024)
      Ort: T9/K 048 Rechnerpoolraum (Takustr. 9)
    • 19327402 Übung
      Übung zu Bild- und Videocodierung (Heiko Schwarz)
      Zeit: Mo 12:00-14:00 (Erster Termin: 15.04.2024)
      Ort: T9/055 Seminarraum (Takustr. 9)
    • 19335302 Übung
      Übung zu Cybersecurity und AI IV (Gerhard Wunder)
      Zeit: Mo 14:00-16:00 (Erster Termin: 15.04.2024)
      Ort: T9/053 Seminarraum (Takustr. 9)
  • Spezielle Aspekte der Technischen Informatik

    0089cA3.11
    • 19325301 Vorlesung
      Cluster Computing (Barry Linnert)
      Zeit: Di 10:00-12:00 (Erster Termin: 16.04.2024)
      Ort: T9/051 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      • MSc

      Anforderungen

      • Erfahrung mit Computern und Software sowie Programierkenntnisse

      Sprache

      • Die Kurssprache ist Deutsch (oder Englisch wenn benötigt).
      • The exam will be formulated in German, but answers may be given in English, too.

      Credits & Klausur

      • aktive Teilnahme an den Übungen: regelmäßige Vorbereitung von Übungsaufgaben & Präsentation der Ergebnisse in den Übungen
      • Bestehen der Klausur

      Webseite

      https://www.mi.fu-berlin.de/w/SE/VorlesungClusterComputing

      Kommentar

      Cluster-Computer bilden die zur Zeit vorherrschende Klasse paralleler Hochleistungsrechner. Sie bestehen aus konventionellen Prozessorknoten, die über ein Hochgeschwindig­keitsnetzwerk miteinander verbunden sind. Obwohl meistens räumlich integriert, handelt es sich um verteilte Systeme mit jeweils lokalen Betriebssystemen. Das enorme Leistungspotential dieser Rechnerklasse kann nur ausgeschöpft werden, wenn Programmcode und Daten optimal über die Knoten verteilt werden. Die einge­setzten Verfahren müssen insbesondere skalierbar sein, also auch bei Tausenden von Rechnerknoten noch effizient arbeiten. Gleichzeitig soll aber die Programmiererin bzw. der Programmierer von diesen Aufgaben entlastet werden. Die Vorlesung gibt einen Überblick über die auftretenden Probleme und stellt Algorithmen zu ihrer Lösung vor.

      Literaturhinweise

      • Heiss, H.-U.: Prozessorzuteilung in Parallelrechnern, BI-Verlag, Mannheim, 1996
      • Andrews, G. A.: Foundations of Multithreaded, Parallel and Distributed Programming, Addison-Wesley, 2000
      • Pfister, G.: In Search of Clusters 2nd ed., Prentice Hall, 1998
      • Zomaya, A.: Parallel and distributed computing handbook, McGraw Gill, 1995
      • Buyya, R.: High Performance Cluster Computing, Vol. 1+2, Prentice Hall, 1999

    • 19327401 Vorlesung
      Bild- und Videocodierung (Heiko Schwarz)
      Zeit: Mo 14:00-16:00 (Erster Termin: 15.04.2024)
      Ort: T9/051 Seminarraum (Takustr. 9)

      Kommentar

      Die Vorlesung behandelt die wichtigsten Konzepte und Algorithmen, die in modernen Bild- und Videocodierverfahren verwendet werden. Wir werden uns insbesondere auf Techniken konzentrieren, die in aktuellen internationalen Videocodierstandards Anwendung finden.

      In einem kurzen ersten Teil werden zunächst die sogenannten Rohdatenformate eingeführt, welche als Eingangs- und Ausgangsformate von Bild- und Videocodecs verwendet werden. Dieser Teil beinhaltet folgenden Themen:

      • Farbräume und deren Beziehung zur menschlichen Farbwahrnehmung
      • Transfer-Funktionen (Gamma-Codierung)
      • Warum verwenden wir das YCbCr-Format?

      Der zweite Teil der Vorlesung behandelt zunächst die Bildcodierung und umfasst folgende Themen:

      • Der Anfang: Wie funktioniert JPEG?
      • Warum verwenden wir die Diskrete Cosinus-Transformation?
      • Effiziente Codierung von Transformationskoeffizienten
      • Prädiktion von Bildblöcken
      • Adaptive Blockpartitionierung
      • Wie treffen wir Entscheidungen im Encoder?
      • Optimierungen der Quantisierung

      Im dritten und letzten Teil der Vorlesungen behandeln wir Konzept die letztendlich die Videocodierung deutlich effizienter machen als eine separate Codierung der Einzelbilder. Dieser Teil umfasst folgende Themen:

      • Bewegungskompensierte Prädiktion
      • Codierung von Bewegungsvektoren
      • Algorithmen zur Bewegungssuche
      • Subpixel-genaue Bewegungsvektoren und Interpolationsfilter
      • Verwendung mehrere Referenzbilder
      • Was sind B-Bilder und warum verwenden wir diese?
      • Deblocking- und Deringing-Filter
      • Effiziente zeitliche Codierstrukturen

      In den Übungen werden wir schrittweise einen eigenen Codec für Bilder implementieren. Bei entsprechenden Interesse kann dieser zu einem einfachen Videocodec erweitert werden.

       

      Literaturhinweise

      • Bull, D. R., “Communicating Pictures: A Course in Image and Video Coding,” Elsevier, 2014.
      • Ohm, J.-R., “Multimedia Signal Coding and Transmission,” Springer, 2015.
      • Wien, M., “High Efficiency Video Coding — Coding Tools and Specifications,” Springer 2014.
      • Sze, V., Budagavi, M., and Sullivan, G. J. (eds.), “High Efficiency Video Coding (HEVC): Algorithm and Architectures,” Springer, 2014.
      • Wiegand, T. and Schwarz, H., "Source Coding: Part I of Fundamentals of Source and Video Coding,” Foundations and Trends in Signal Processing, Now Publishers, vol. 4, no. 1–2, 2011.
      • Schwarz, H. and Wiegand, T., “Video Coding: Part II of Fundamentals of Source and Video Coding,” Foundations and Trends in Signal Processing, Now Publishers, vol. 10, no. 1–3, 2016.

    • 19335301 Vorlesung
      Cybersecurity and AI IV: Angriffe (Gerhard Wunder)
      Zeit: Di 12:00-13:30 (Erster Termin: 16.04.2024)
      Ort: T9/SR 005 Übungsraum (Takustr. 9)

      Kommentar

      Cybersecurity and AI ist ein viersemestriger Vorlesungszyklus, der alle wesentlichen Aspekte von Cybersecurity und KI abdeckt. Dieser Kurs vermittelt die Grundlagen für Angriffe auf- und mit KI. Grundsätzlich ist es möglich, den Vorlesungszyklus zu jedem Semester zu beginnen.

      Der Lehrplan ist:

      1. Einführung: KI & Cybersicherheit, Bedrohungsmodell, Bewertungsmetriken, Beispiele für Angriffe
      2. Robuste KI: Definition und Grenzen des Deep Learning, Stärkung von Robustheit, robuste Optimierungsmethoden
      3. Adversarial ML: Verteidigungsmechanismen, Adversarial-Training, Übertragbarkeit, Real-World Implikationen
      4. Generative KI: Generative Modelle, Deepfakes
      5. Federated ML: Sicherheitsherausforderungen, sichere Aggregationsprotokolle

    • 19325302 Übung
      Übung zu Cluster Computing (Barry Linnert)
      Zeit: Do 10:00-12:00 (Erster Termin: 18.04.2024)
      Ort: T9/K 048 Rechnerpoolraum (Takustr. 9)
    • 19327402 Übung
      Übung zu Bild- und Videocodierung (Heiko Schwarz)
      Zeit: Mo 12:00-14:00 (Erster Termin: 15.04.2024)
      Ort: T9/055 Seminarraum (Takustr. 9)
    • 19335302 Übung
      Übung zu Cybersecurity und AI IV (Gerhard Wunder)
      Zeit: Mo 14:00-16:00 (Erster Termin: 15.04.2024)
      Ort: T9/053 Seminarraum (Takustr. 9)
  • Mobilkommunikation

    0089cA3.3
    • 19303901 Vorlesung
      Mobilkommunikation (Jochen Schiller)
      Zeit: Mi 10:00-12:00, zusätzliche Termine siehe LV-Details (Erster Termin: 17.04.2024)
      Ort: T9/SR 005 Übungsraum (Takustr. 9)

      Kommentar

      Inhalt:

      Das Modul Mobilkommunikation stellt exemplarisch alle Aspekte mobiler und drahtloser Kommunikation dar, welche derzeit den stärksten Wachstumsmarkt überhaupt darstellt und in immer mehr Bereiche der Gesellschaft vordringt.

      Während der gesamten Vorlesung wird ein starker Wert auf die Systemsicht gelegt und es werden zahlreiche Querverweise auf reale Systeme, internationale Standardisierungen und aktuellste Forschungsergebnisse gegeben.

      Die zu behandelnden Themen sind:

      • Technische Grundlagen der drahtlosen Übertragung: Frequenzen, Signale, Antennen, Signalausbreitung, Multiplex, Modulation, Spreizspektrum, zellenbasierte Systeme;
      • Medienzugriff: SDMA, FDMA, TDMA, CDMA;
      • Drahtlose Telekommunikationssysteme: GSM, TETRA, UMTS, IMT-2000, LTE;
      • Drahtlose lokale Netze: Infrastruktur/ad-hoc, IEEE 802.11/15, Bluetooth;
      • Mobile Netzwerkschicht: Mobile IP, DHCP, ad-hoc Netze;
      • Mobile Transportschicht: traditionelles TCP, angepasste TCP-Varianten, weitere Mechanismen;
      • Mobilitätsunterstützung;
      • Ausblick: 4. Generation Mobilnetze

      Literaturhinweise

      Jochen Schiller, Mobilkommunikation, Addison-Wesley, 2.Auflage 2003

      Alle Unterlagen verfügbar unter http://www.mi.fu-berlin.de/inf/groups/ag-tech/teaching/resources/Mobile_Communications/course_Material/index.html

  • Softwareprojekt - Technische Informatik A

    0089cA3.6
    • 19315312 Projektseminar
      Softwareprojekt: Verteilte Systeme (Justus Purat)
      Zeit: Di 12:00-14:00 (Erster Termin: 16.04.2024)
      Ort: T9/046 Seminarraum (Takustr. 9)

      Kommentar

      Das Softwareprojekt: Verteilte Systeme behandelt Themen aus verschiedenen Projekten der AG Zuverlässige Systeme. Dabei ist eine Aufgabenstellung selbstständig durch Entwurf, Implementierung und Testen zu bearbeiten.

      Das Softwareprojekt ist verschiedenen Modulen zugeordnet. Bitte informieren Sie sich vorher, ob sie die Veranstaltung in einem Modul aus ihrem Studiengang belegen können.

      Themen in diesem Semester sind:
      - (Weiter-)Entwicklung einer Anwendung in Kooperation mit der Charité Berlin
      - Intelligente Clustersteuerung
      - SmartContract - Entwicklung
      - Tangle - Technologien als Alternative zur Blockchain für IoT

      Details werden in der ersten Sitzung besprochen.
      Das Softwareprojekt: Verteilte Systeme wird je nach Bedarf der Studierenden in deutscher oder englischer Sprache durchgeführt.

    • 19322512 Projektseminar
      Softwareprojekt: GPU Offloading and Compiler Optimization (Barry Linnert)
      Zeit: Mi 12:00-14:00 (Erster Termin: 24.04.2024)
      Ort: T9/046 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      BA und MA Informatik

      Webseite

      https://www.mi.fu-berlin.de/w/SE/SoftwareprojektCompilerOptimization2024

      Dozent & Ansprechpartner

      Barry Linnert führt die Veranstaltung durch.

      Kommentar

      Pony [1] ist eine Programmiersprache, die dafür designed wird, hoch
      performant zu sein.
      Sie basiert auf dem Akteur-Modell [2]: Akteure beinhalten
      sequentielle Code-Abschnitte, verschiedene Akteure werden
      nebenläufig und unabhängig voneinander ausgeführt.
      Die Nebenläufigkeit auf der Ebene von Akteuren [3] siedelt
      Beschleunigung direkt im Design der Sprache an.
      Es gibt jedoch auch andere Formen von Parallelismus auf anderen Ebenen,
      welche dazu genutzt werden könnten, Pony noch performanter zu machen.
      Auf Ebene der Daten gibt es sogenannten Datenparallelismus [4].
      Er kann beispielsweise in Schleifennestern gefunden werden,
      die viele Male ausgeführt werden und auf unabhängigen aber
      gleich strukturierten Daten arbeiten.

      Grafische Prozessoren (GPUs) spezialisieren sich darauf
      datenparallele Probleme zu berechnen. [5]
      In einem System, in dem sowohl eine GPU als auch eine CPU vorhanden
      sind, kann die GPU die Berechnungen der CPU unterstützen,
      indem datenparallele Probleme von ihr übernommen werden.
      Der Fachbegriff dazu heißt GPU Offloading.
      Die GPU berechnet aufgrund ihrer internen Struktur und Ressourcen
      datenparallele Probleme effizienter und schneller als die CPU und
      beschleunigt dadurch die Gesamtausführung eines Programms.

      In diesem Softwareprojekt wollen wir gemeinsam herausfinden,
      ob sich GPU Offloading in Pony integrieren lässt.
      Dazu experimentieren wir mit Ponys Compiler und schreiben Teile
      dieses Compilers um.

      Das SWP bietet die Möglichkeit, einmal genauer in den internen
      Aufbau eines Compilers zu blicken und sich anzusehen, wie genau
      GPUs dazu verwendet werden können, ein Programm zu beschleunigen.
      Darüber hinaus werden wir die Compiler Infrastruktur LLVM [6]
      kennenlernen, denn der Pony Compiler ist ein Compiler Frontend
      zu LLVM.
      Falls Ihnen der Name LLVM nichts sagt, ist es vielleicht interessant
      für Sie zu wissen, dass sowohl der Rust, als auch der Clang Compiler
      Frontends zu LLVM sind.

      Das Softwareprojekt zielt darauf ab im Bereich GPU Offloading zu forschen,
      möglicherweise mit der Option später die Ergebnisse der Experimente
      zu veröffentlichen und zu den beiden genannten Open-Source-Projekten
      Pony und LLVM beizutragen.

       

      Ablauf

      Während der Vorlesungszeit wird die Aufgabenstellung mit reduziertem Anwesenheits- und Arbeitsaufwand spezifiziert. Die eigentliche Bearbeitung der Aufgabenstellung erfolgt dann in der vorlesungsfreien Zeit.

       

      Links:

      [1]: [Pony](https://www.ponylang.io/discover/#what-is-pony)
      [2]: [Actor Model](https://en.wikipedia.org/wiki/Actor_model)
      [3]: [Task-level parallelism](https://en.wikipedia.org/wiki/Task_parallelism)
      [4]: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware Software Interface [RISC-V Edition]. 2nd. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, 2021. ISBN: 9780128203316. Page 528.
      [5]: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware Software Interface [RISC-V Edition]. 2nd. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, 2021. ISBN: 9780128203316. Appendix B.
      [6]: [LLVM](https://llvm.org/)

       

       

    • 19334412 Projektseminar
      SWP: Szenario-Management im Future Security Lab (Larissa Groth)
      Zeit: Di 12:00-14:00 (Erster Termin: 16.04.2024)
      Ort: T9/K 040 Multimediaraum (Takustr. 9)

      Kommentar

      Das Projekt BeLIFE, Teil der AG Technische Informatik, konzentriert sich auf die Verbesserung des Wissenstransfers und des kommunikativen Austausches in der zivilen Sicherheitsforschung. Zentraler Bestandteil des Projekts ist das Future Security Lab, das in den Räumlichkeiten des Einstein Center Digital Future in Mitte beheimatet ist. Hier werden Politiker:innen von Bundes- und Landesebenen, aber auch Vertreter:innen aus Behörden und Organisationen mit Sicherheitsaufgaben willkommen geheißen. 

      Im Rahmen des Softwareprojekts entwickeln die Studierenden Konzepte, um die bestehende technische Infrastruktur des Raumes zu optimieren und kreativ weiterzuentwickeln. Ziel ist es insbesondere die Usability des Raumes auf Seiten der Wissenschaftler:innen zu erhöhen, aber auch die User Experience der Besuchenden zu verbessern. Um das zu erreichen, besteht das Softwareprojekt aus mehreren Teilbereichen, die sich entweder aus einem konkreten Problem ergeben, das es zu lösen gilt, oder kreative Herangehensweisen und Ideenreichtum erfordern. Die zu bearbeitenden Aufgaben generieren sich aus den Bereichen Systemadministration, Interfaceentwicklung sowie Licht-/Ton-Installation und -Orchestrierung und umfassen Problemstellungen wie paralleler Startup aller Rechner in einem Netzwerk über WakeOn LAN aus einer Web-App heraus oder die Optimierung der vorhandenen WebApp zur Szenariopräsentation. 

      Die Bearbeitung der Aufgabenstellung erfolgt ausschließlich in Kleingruppen (3-5 Studierende). Die Zusammenarbeit und Sicherung des entwickelten Codes erfolgt über das Fachbereichs-eigene Gitlab oder ein öffentliches Github. Die Ergebnisse sind geeignet zu dokumentieren, z.B. über die Readme-Dateien des Gits und ein gut strukturiertes Wiki. Modularität und Erweiterbarkeit des entwickelten Codes und eine top Dokumentation sind entscheidend für den Erfolg dieses Softwareprojekts!

      Zum Ablauf: Dieses Softwareprojekt findet Semesterbegleitend statt. Es gibt wenige Meetings in großer Runde mit allen Teilnehmenden, diese sind aber verpflichtend. Darüber hinaus gibt es kurze wöchentliche Treffen, in denen mind. 1 Gruppenmitglied über den aktuellen Stand berichtet, wobei wir hier im Verlauf eines Monats mit allen Mitgliedern gesprochen haben wollen. Der erste Termin (16.04.2024) wird in Berlin Mitte im Future Security Lab, Wilhelmstr. 67, 10117 Berlin, stattfinden. Im Rahmen dieses Termins werden die bereits implementierten Lösungen präsentiert und die Problemstellungen besprochen. Danach gibt es insgesamt 3 Präsentationstermine: die Präsentation eines ersten Ansatzes zur Problemlösung (07.05.2024), eine kurze Zwischenpräsentation (04.06.2024) und die Abschlusspräsentation (16.07.2024). 
      Die Studierenden erhalten zusätzlich regelmäßig die Möglichkeit, in den Räumlichkeiten des Future Security Labs zu arbeiten und sich so mit der Ausstattung vertraut zu machen. 

  • Softwareprojekt - Technische Informatik B

    0089cA3.7
    • 19315312 Projektseminar
      Softwareprojekt: Verteilte Systeme (Justus Purat)
      Zeit: Di 12:00-14:00 (Erster Termin: 16.04.2024)
      Ort: T9/046 Seminarraum (Takustr. 9)

      Kommentar

      Das Softwareprojekt: Verteilte Systeme behandelt Themen aus verschiedenen Projekten der AG Zuverlässige Systeme. Dabei ist eine Aufgabenstellung selbstständig durch Entwurf, Implementierung und Testen zu bearbeiten.

      Das Softwareprojekt ist verschiedenen Modulen zugeordnet. Bitte informieren Sie sich vorher, ob sie die Veranstaltung in einem Modul aus ihrem Studiengang belegen können.

      Themen in diesem Semester sind:
      - (Weiter-)Entwicklung einer Anwendung in Kooperation mit der Charité Berlin
      - Intelligente Clustersteuerung
      - SmartContract - Entwicklung
      - Tangle - Technologien als Alternative zur Blockchain für IoT

      Details werden in der ersten Sitzung besprochen.
      Das Softwareprojekt: Verteilte Systeme wird je nach Bedarf der Studierenden in deutscher oder englischer Sprache durchgeführt.

    • 19322512 Projektseminar
      Softwareprojekt: GPU Offloading and Compiler Optimization (Barry Linnert)
      Zeit: Mi 12:00-14:00 (Erster Termin: 24.04.2024)
      Ort: T9/046 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      BA und MA Informatik

      Webseite

      https://www.mi.fu-berlin.de/w/SE/SoftwareprojektCompilerOptimization2024

      Dozent & Ansprechpartner

      Barry Linnert führt die Veranstaltung durch.

      Kommentar

      Pony [1] ist eine Programmiersprache, die dafür designed wird, hoch
      performant zu sein.
      Sie basiert auf dem Akteur-Modell [2]: Akteure beinhalten
      sequentielle Code-Abschnitte, verschiedene Akteure werden
      nebenläufig und unabhängig voneinander ausgeführt.
      Die Nebenläufigkeit auf der Ebene von Akteuren [3] siedelt
      Beschleunigung direkt im Design der Sprache an.
      Es gibt jedoch auch andere Formen von Parallelismus auf anderen Ebenen,
      welche dazu genutzt werden könnten, Pony noch performanter zu machen.
      Auf Ebene der Daten gibt es sogenannten Datenparallelismus [4].
      Er kann beispielsweise in Schleifennestern gefunden werden,
      die viele Male ausgeführt werden und auf unabhängigen aber
      gleich strukturierten Daten arbeiten.

      Grafische Prozessoren (GPUs) spezialisieren sich darauf
      datenparallele Probleme zu berechnen. [5]
      In einem System, in dem sowohl eine GPU als auch eine CPU vorhanden
      sind, kann die GPU die Berechnungen der CPU unterstützen,
      indem datenparallele Probleme von ihr übernommen werden.
      Der Fachbegriff dazu heißt GPU Offloading.
      Die GPU berechnet aufgrund ihrer internen Struktur und Ressourcen
      datenparallele Probleme effizienter und schneller als die CPU und
      beschleunigt dadurch die Gesamtausführung eines Programms.

      In diesem Softwareprojekt wollen wir gemeinsam herausfinden,
      ob sich GPU Offloading in Pony integrieren lässt.
      Dazu experimentieren wir mit Ponys Compiler und schreiben Teile
      dieses Compilers um.

      Das SWP bietet die Möglichkeit, einmal genauer in den internen
      Aufbau eines Compilers zu blicken und sich anzusehen, wie genau
      GPUs dazu verwendet werden können, ein Programm zu beschleunigen.
      Darüber hinaus werden wir die Compiler Infrastruktur LLVM [6]
      kennenlernen, denn der Pony Compiler ist ein Compiler Frontend
      zu LLVM.
      Falls Ihnen der Name LLVM nichts sagt, ist es vielleicht interessant
      für Sie zu wissen, dass sowohl der Rust, als auch der Clang Compiler
      Frontends zu LLVM sind.

      Das Softwareprojekt zielt darauf ab im Bereich GPU Offloading zu forschen,
      möglicherweise mit der Option später die Ergebnisse der Experimente
      zu veröffentlichen und zu den beiden genannten Open-Source-Projekten
      Pony und LLVM beizutragen.

       

      Ablauf

      Während der Vorlesungszeit wird die Aufgabenstellung mit reduziertem Anwesenheits- und Arbeitsaufwand spezifiziert. Die eigentliche Bearbeitung der Aufgabenstellung erfolgt dann in der vorlesungsfreien Zeit.

       

      Links:

      [1]: [Pony](https://www.ponylang.io/discover/#what-is-pony)
      [2]: [Actor Model](https://en.wikipedia.org/wiki/Actor_model)
      [3]: [Task-level parallelism](https://en.wikipedia.org/wiki/Task_parallelism)
      [4]: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware Software Interface [RISC-V Edition]. 2nd. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, 2021. ISBN: 9780128203316. Page 528.
      [5]: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware Software Interface [RISC-V Edition]. 2nd. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, 2021. ISBN: 9780128203316. Appendix B.
      [6]: [LLVM](https://llvm.org/)

       

       

    • 19334412 Projektseminar
      SWP: Szenario-Management im Future Security Lab (Larissa Groth)
      Zeit: Di 12:00-14:00 (Erster Termin: 16.04.2024)
      Ort: T9/K 040 Multimediaraum (Takustr. 9)

      Kommentar

      Das Projekt BeLIFE, Teil der AG Technische Informatik, konzentriert sich auf die Verbesserung des Wissenstransfers und des kommunikativen Austausches in der zivilen Sicherheitsforschung. Zentraler Bestandteil des Projekts ist das Future Security Lab, das in den Räumlichkeiten des Einstein Center Digital Future in Mitte beheimatet ist. Hier werden Politiker:innen von Bundes- und Landesebenen, aber auch Vertreter:innen aus Behörden und Organisationen mit Sicherheitsaufgaben willkommen geheißen. 

      Im Rahmen des Softwareprojekts entwickeln die Studierenden Konzepte, um die bestehende technische Infrastruktur des Raumes zu optimieren und kreativ weiterzuentwickeln. Ziel ist es insbesondere die Usability des Raumes auf Seiten der Wissenschaftler:innen zu erhöhen, aber auch die User Experience der Besuchenden zu verbessern. Um das zu erreichen, besteht das Softwareprojekt aus mehreren Teilbereichen, die sich entweder aus einem konkreten Problem ergeben, das es zu lösen gilt, oder kreative Herangehensweisen und Ideenreichtum erfordern. Die zu bearbeitenden Aufgaben generieren sich aus den Bereichen Systemadministration, Interfaceentwicklung sowie Licht-/Ton-Installation und -Orchestrierung und umfassen Problemstellungen wie paralleler Startup aller Rechner in einem Netzwerk über WakeOn LAN aus einer Web-App heraus oder die Optimierung der vorhandenen WebApp zur Szenariopräsentation. 

      Die Bearbeitung der Aufgabenstellung erfolgt ausschließlich in Kleingruppen (3-5 Studierende). Die Zusammenarbeit und Sicherung des entwickelten Codes erfolgt über das Fachbereichs-eigene Gitlab oder ein öffentliches Github. Die Ergebnisse sind geeignet zu dokumentieren, z.B. über die Readme-Dateien des Gits und ein gut strukturiertes Wiki. Modularität und Erweiterbarkeit des entwickelten Codes und eine top Dokumentation sind entscheidend für den Erfolg dieses Softwareprojekts!

      Zum Ablauf: Dieses Softwareprojekt findet Semesterbegleitend statt. Es gibt wenige Meetings in großer Runde mit allen Teilnehmenden, diese sind aber verpflichtend. Darüber hinaus gibt es kurze wöchentliche Treffen, in denen mind. 1 Gruppenmitglied über den aktuellen Stand berichtet, wobei wir hier im Verlauf eines Monats mit allen Mitgliedern gesprochen haben wollen. Der erste Termin (16.04.2024) wird in Berlin Mitte im Future Security Lab, Wilhelmstr. 67, 10117 Berlin, stattfinden. Im Rahmen dieses Termins werden die bereits implementierten Lösungen präsentiert und die Problemstellungen besprochen. Danach gibt es insgesamt 3 Präsentationstermine: die Präsentation eines ersten Ansatzes zur Problemlösung (07.05.2024), eine kurze Zwischenpräsentation (04.06.2024) und die Abschlusspräsentation (16.07.2024). 
      Die Studierenden erhalten zusätzlich regelmäßig die Möglichkeit, in den Räumlichkeiten des Future Security Labs zu arbeiten und sich so mit der Ausstattung vertraut zu machen. 

  • Wissenschaftliches Arbeiten Technische Informatik A

    0089cA3.8
    • 19307111 Seminar
      Seminar: Zuverlässige Systeme (Justus Purat)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: T9/049 Seminarraum (Takustr. 9)

      Kommentar

      Das "Seminar: Verteilte Systeme" behandelt sowohl theoretische als auch praktische Themen aus verschiedenen Projekten der Arbeitsgruppe "Zuverlässige verteilte Systeme". Dabei ist eine Aufgabenstellung selbstständig alleine oder in einer Gruppe von maximal 2-3 Studierenden durch Literaturrecherche, Evaluation und Schreiben eines wissenschaftlichen Reports zu bearbeiten.

      Das Seminar ist verschiedenen Modulen zugeordnet. Bitte informieren Sie sich vorher, ob sie die Veranstaltung in einem Modul aus ihrem Studiengang belegen können.

      Themen in diesem Semester sind:
      - Blockchain - Technologien im Alltag (PoW, PoS, Offlinenutzung)
      - Tangle - Technologien als Alternative zur Blockchain für IoT
      - Could - Computing
      - Consensus algorithms

      Details werden in der ersten Sitzung besprochen.
      Das Seminar: Verteilte Systeme wird je nach Bedarf der Studierenden in deutscher oder englischer Sprache durchgeführt.

    • 19329617 Seminar/Proseminar
      Seminar/Proseminar: IoT im Smart Home (Larissa Groth)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: K 063 Hardwarepraktikum (Takustr. 9)

      Kommentar

      Dieses Seminar konzentriert sich auf verschiedene Aspekte der Technischen Informatik. Zu Beginn des Seminars werden Themenvorschläge ausgegeben, die sich vor allem mit Teilaspekten des Internets der Dinge und Sicherheitsaspekten in Smart Homes befassen. Auch eigene Themenvorschläge sind möglich und erwünscht, der Bezug zur Technischen Informatik muss aber gegeben sein. Die Bearbeitung der Themen kann alleine oder in Kleingruppen (2 Studierende) erfolgen. Dann muss aber deutlich werden, wer welchen Teil zur Seminararbeit beigetragen hat.

      Zum Ablauf: Dieses Seminar findet Semester-begleitend statt. Es gibt wenige Meetings, diese sind aber verpflichtend. Am ersten Termin (16.04.2024) wird die Themenliste ausgegeben und besprochen. Bitte bereiten Sie einen kurzen (2-3 Minuten) Abriss Ihres eigenen Themenvorschlages vor, wenn Sie diesen in das Seminar einbringen möchten. Zur nächsten Woche (23.04.2024, kein Präsenztermin!) erfolgt dann die Themenvergabe per Whiteboard Assignment. Danach gibt es insgesamt 3 Präsentationstermine: die Themenvorstellung (07.05.2024), eine kurze Zwischenpräsentation (04.06.2024 und 11.06.2024) und die Abschlusspräsentation (09.07.2024, 16.07.2024 und ggfs. 23.07.2024).

  • Wissenschaftliches Arbeiten Technische Informatik B

    0089cA3.9
    • 19307111 Seminar
      Seminar: Zuverlässige Systeme (Justus Purat)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: T9/049 Seminarraum (Takustr. 9)

      Kommentar

      Das "Seminar: Verteilte Systeme" behandelt sowohl theoretische als auch praktische Themen aus verschiedenen Projekten der Arbeitsgruppe "Zuverlässige verteilte Systeme". Dabei ist eine Aufgabenstellung selbstständig alleine oder in einer Gruppe von maximal 2-3 Studierenden durch Literaturrecherche, Evaluation und Schreiben eines wissenschaftlichen Reports zu bearbeiten.

      Das Seminar ist verschiedenen Modulen zugeordnet. Bitte informieren Sie sich vorher, ob sie die Veranstaltung in einem Modul aus ihrem Studiengang belegen können.

      Themen in diesem Semester sind:
      - Blockchain - Technologien im Alltag (PoW, PoS, Offlinenutzung)
      - Tangle - Technologien als Alternative zur Blockchain für IoT
      - Could - Computing
      - Consensus algorithms

      Details werden in der ersten Sitzung besprochen.
      Das Seminar: Verteilte Systeme wird je nach Bedarf der Studierenden in deutscher oder englischer Sprache durchgeführt.

    • 19329617 Seminar/Proseminar
      Seminar/Proseminar: IoT im Smart Home (Larissa Groth)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: K 063 Hardwarepraktikum (Takustr. 9)

      Kommentar

      Dieses Seminar konzentriert sich auf verschiedene Aspekte der Technischen Informatik. Zu Beginn des Seminars werden Themenvorschläge ausgegeben, die sich vor allem mit Teilaspekten des Internets der Dinge und Sicherheitsaspekten in Smart Homes befassen. Auch eigene Themenvorschläge sind möglich und erwünscht, der Bezug zur Technischen Informatik muss aber gegeben sein. Die Bearbeitung der Themen kann alleine oder in Kleingruppen (2 Studierende) erfolgen. Dann muss aber deutlich werden, wer welchen Teil zur Seminararbeit beigetragen hat.

      Zum Ablauf: Dieses Seminar findet Semester-begleitend statt. Es gibt wenige Meetings, diese sind aber verpflichtend. Am ersten Termin (16.04.2024) wird die Themenliste ausgegeben und besprochen. Bitte bereiten Sie einen kurzen (2-3 Minuten) Abriss Ihres eigenen Themenvorschlages vor, wenn Sie diesen in das Seminar einbringen möchten. Zur nächsten Woche (23.04.2024, kein Präsenztermin!) erfolgt dann die Themenvergabe per Whiteboard Assignment. Danach gibt es insgesamt 3 Präsentationstermine: die Themenvorstellung (07.05.2024), eine kurze Zwischenpräsentation (04.06.2024 und 11.06.2024) und die Abschlusspräsentation (09.07.2024, 16.07.2024 und ggfs. 23.07.2024).