SoSe 24  
Dahlem School o...  
Fachwissenschaf...  
Lehrveranstaltung

Lehramt an Integrierten Sekundarschulen und Gymnasien – Quereinstieg (ab WiSe 2019)

Fachwissenschaft und Fachdidaktik Informatik 2

0511b_m72
  • Vertiefung Fachdidaktik Informatik im Profil Quereinstieg

    0502bA1.2
    • 19323311 Seminar
      Ausgewählte Themen der Informatikdidaktik (Ralf Romeike)
      Zeit: Di 09:00-12:00 (Erster Termin: 16.04.2024)
      Ort: KöLu24-26/SR 016 (vorrang Schülerlabor) (Königin-Luise-Str. 24 / 26)

      Kommentar

      Willkommen im Seminar "Ausgewählte Themen" der Fachdidaktik Informatik!

      In diesem Seminar befassen wir uns mit verschiedenen Gegenstandsbereichen der Informatikdidaktik bzw. des Informatikunterrichts.

       

       

  • F2 Informatik: Schulpraktische Studien

    0557aA1.3
    • 19314911 Seminar
      Schulpraktische Studien im Unterrichtsfach Informatik: Vorbereitungsseminar (Ralf Romeike)
      Zeit: Mi 10:00-12:00 (Erster Termin: 17.04.2024)
      Ort: KöLu24-26/SR 016 (vorrang Schülerlabor) (Königin-Luise-Str. 24 / 26)

      Kommentar

      Willkommen im Vorbereitungsseminar zum Praxissemester in Informatik!

      In diesem Masterseminar haben Sie die Gelegenheit, die zuvor vor allem aus theoretischer Perspektive gewonnenen Kompetenzen mit Blick auf deren praktische Anwendung zu reflektieren und in der Entwicklung und Gestaltung von Informatikunterricht anzuwenden.

      Wir organisieren die Lehrveranstaltung primär wieder über den Moodle-Kurs, der am Montag der Vorlesungszeit zur Selbsteinschreibung freigeschaltet wird:

      https://moodle.mi.fu-berlin.de/moodle/course/view.php?id=XXX

      Kurs-Passwort: "Kompetenz"

      Die Lehrveranstaltungszeiten (mittwochs von 10:15 Uhr bis 11:45 Uhr) werden regelmäßig für synchrone Lerntätigkeiten verwendet.

       

      Voraussetzungen:
      Das Vorbereitungsseminar baut direkt auf die Kompetenzen, die Sie in der Lehrveranstaltung „Grundlagen der Didaktik der Informatik“ erworben haben, auf. Sollten Sie diese Lehrveranstaltung nicht bei Professor Romeike absolviert haben, senden Sie ihm bitte eine E-Mail in der Sie aufzeigen, wann und wo Sie die entsprechenden Kompetenzen erworben haben und ggf. welche Kompetenzdefizite Sie diesbzgl. besitzen. Eine Darstellung der dieser Lehrveranstaltung zugrundeliegenden Kompetenzen finden Sie im Moodlekurs.

       

      WICHTIG! Hinweise zur Wahl der Praktikumsschule!
      Zu Beginn des Sommersemesters können die Priorisierungen für die Praktikumsschulen im Praxissemester-Portal eingereicht werden.

      Für das Fach Informatik muss hierbei seitens der Studierenden dafür Sorge getragen werden, dass die ausgewählte Schule auch Informatikunterricht anbietet. Insbesondere bei ISS war das in der Vergangenheit oftmals nicht der Fall!

      Aus diesem Grund ist aus Sicht der Informatik ein Gymnasium als Praktikumsschule zu empfehlen. Sollten Sie sich für eine ISS entscheiden, sprechen Sie bitte mit der Schule ab, dass Sie dort auch Informatikunterricht (nicht "Informationstechnische Grundbildung"!), mindestens im Wahlpflichtbereich ab Klasse 9 beobachten und unterrichten können.

      Bitte beachten Sie zusätzlich, dass ein Algorithmus die Studierenden auf Grund der genannten Priorisierungen verteilt, sodass es immer sein kann, dass Studierende nicht die höchsten Priorisierungen zugeteilt bekommen. Sollte Ihnen eine ISS zugeteilt werden, erkundigen Sie sich ebenfalls, ob Sie dort im Informatikunterricht eingesetzt werden können. Sollte das nicht der Fall sein, wenden Sie sich bitte an das Praktikumsbüro für einen Wechsel der Schule.

      Ein den Ausbildungsanforderungen genügendes Unterrichtspraktikum in Informatik ist an ISS i.d.R. leider kaum möglich.

  • Schulpraktische Studien im Unterrichtsfach Informatik - Fach 2

    0557bA1.3
    • 19314911 Seminar
      Schulpraktische Studien im Unterrichtsfach Informatik: Vorbereitungsseminar (Ralf Romeike)
      Zeit: Mi 10:00-12:00 (Erster Termin: 17.04.2024)
      Ort: KöLu24-26/SR 016 (vorrang Schülerlabor) (Königin-Luise-Str. 24 / 26)

      Kommentar

      Willkommen im Vorbereitungsseminar zum Praxissemester in Informatik!

      In diesem Masterseminar haben Sie die Gelegenheit, die zuvor vor allem aus theoretischer Perspektive gewonnenen Kompetenzen mit Blick auf deren praktische Anwendung zu reflektieren und in der Entwicklung und Gestaltung von Informatikunterricht anzuwenden.

      Wir organisieren die Lehrveranstaltung primär wieder über den Moodle-Kurs, der am Montag der Vorlesungszeit zur Selbsteinschreibung freigeschaltet wird:

      https://moodle.mi.fu-berlin.de/moodle/course/view.php?id=XXX

      Kurs-Passwort: "Kompetenz"

      Die Lehrveranstaltungszeiten (mittwochs von 10:15 Uhr bis 11:45 Uhr) werden regelmäßig für synchrone Lerntätigkeiten verwendet.

       

      Voraussetzungen:
      Das Vorbereitungsseminar baut direkt auf die Kompetenzen, die Sie in der Lehrveranstaltung „Grundlagen der Didaktik der Informatik“ erworben haben, auf. Sollten Sie diese Lehrveranstaltung nicht bei Professor Romeike absolviert haben, senden Sie ihm bitte eine E-Mail in der Sie aufzeigen, wann und wo Sie die entsprechenden Kompetenzen erworben haben und ggf. welche Kompetenzdefizite Sie diesbzgl. besitzen. Eine Darstellung der dieser Lehrveranstaltung zugrundeliegenden Kompetenzen finden Sie im Moodlekurs.

       

      WICHTIG! Hinweise zur Wahl der Praktikumsschule!
      Zu Beginn des Sommersemesters können die Priorisierungen für die Praktikumsschulen im Praxissemester-Portal eingereicht werden.

      Für das Fach Informatik muss hierbei seitens der Studierenden dafür Sorge getragen werden, dass die ausgewählte Schule auch Informatikunterricht anbietet. Insbesondere bei ISS war das in der Vergangenheit oftmals nicht der Fall!

      Aus diesem Grund ist aus Sicht der Informatik ein Gymnasium als Praktikumsschule zu empfehlen. Sollten Sie sich für eine ISS entscheiden, sprechen Sie bitte mit der Schule ab, dass Sie dort auch Informatikunterricht (nicht "Informationstechnische Grundbildung"!), mindestens im Wahlpflichtbereich ab Klasse 9 beobachten und unterrichten können.

      Bitte beachten Sie zusätzlich, dass ein Algorithmus die Studierenden auf Grund der genannten Priorisierungen verteilt, sodass es immer sein kann, dass Studierende nicht die höchsten Priorisierungen zugeteilt bekommen. Sollte Ihnen eine ISS zugeteilt werden, erkundigen Sie sich ebenfalls, ob Sie dort im Informatikunterricht eingesetzt werden können. Sollte das nicht der Fall sein, wenden Sie sich bitte an das Praktikumsbüro für einen Wechsel der Schule.

      Ein den Ausbildungsanforderungen genügendes Unterrichtspraktikum in Informatik ist an ISS i.d.R. leider kaum möglich.

  • Bildverarbeitung

    0089cA1.1
    • 19303001 Vorlesung
      Bildverarbeitung (Daniel Göhring)
      Zeit: Di 12:00-14:00 (Erster Termin: 16.04.2024)
      Ort: T9/SR 006 Seminarraum (Takustr. 9)

      Kommentar

      In der Vorlesung werden grundlegende Methoden der Bildverarbeitung vorgestellt. Folgende Themen werden behandelt:

      • Bilder, Bildsensoren
      • Farbräume
      • Bildstatistiken
      • Histogramme
      • Filterverfahren
      • Faltung und Faltungssatz
      • Diskrete Fouriertransformation
      • Schnelle Fouriertransformation
      • Diskrete Cosinustransformation
      • JPEG
      • Haar-Wavelets
      • Bildpyramiden
      • Bildmischung

       

      Literaturhinweise

      Rafael Gonzalez, C., and Richard Woods. "Digital image processing" Pearson Education.

    • 19303002 Übung
      Übung zu Bildverarbeitung (Daniel Göhring)
      Zeit: Do 12:00-14:00 (Erster Termin: 18.04.2024)
      Ort: T9/SR 005 Übungsraum (Takustr. 9)
  • Computergrafik

    0089cA1.2
    • 19303201 Vorlesung
      Computergrafik (Marco Block-Berlitz)
      Zeit: Fr 10:00-14:00 (Erster Termin: 19.04.2024)
      Ort: T9/SR 005 Übungsraum (Takustr. 9)

      Kommentar

      Inhalte der Veranstaltung

      • Allgemeiner Überblick zur Computergrafik
      • Grundlagen der Computergrafik
        • Punkte, Linien, Polygone, Kreise, Ellipsen
        • Flächen füllen, Clipping und Kurven
      • OpenGL und GLSL
        • Einführung in OpenGL mit LWJGL
        • Shaderprogrammierung in GLSL
        • Einfache Spieleumgebungen entwickeln
      • Grundlagen des Beleuchtungsdesigns
        • Wahrnehmung von Licht, Farbblindheit, Barrierefreie UIs
        • Ziele des Beleuchtungsdesigns
        • Three- und Four-Point-Lighting, Komposition einer Szene
      • Lokale Beleuchtungsmodelle
        • Materialeigenschaften, Lichtquellenmodelle
        • Elementare Beleuchtungsmodelle
        • Beleuchtungsmodelle von Phong- und OpenGL
      • Schattierungsmodelle und visuelle Wahrnehmung
        • Flat- und Gouraud-Shading
        • Neuronale Netze und Machbandeffekt, Phong-Shading
      • Texture-Mapping
        • Allgemein und Prozedural
        • Perlin-Noise
      • Normal-Mapping
      • Geometrische Transformationen
        • 2D und 3D, Homogene Koordinaten
        • Euler-Winkel und Quaternione
      • Koordinatensysteme
        • World-, View-, Clip-Space, MVP-Matrix
        • Tangentialraum, Orthogonalisierung
      • Mikrostrukturen mit BRDF
        • Radiometrie, Kartesische und Polarkoordinaten
        • Raumwinkel, Rendergleichung
        • Herleitung und Untersuchung von BRDFs
      • Displacement-Mapping
        • Per-Vertex- und Per-Pixel-Displacement-Mapping
      • Echtzeitschatten
        • Hard-, Soft- und Filtered-Hard-Shadows
        • Shadow-Volumes, Shadow-Mapping
        • Screen-Space-Ambient-Occlusion

      Die Themen werden teilweise mit Programmbeispielen in Java, LWJGL, OpenGL und GLSL vorgestellt.
      Diese Werkzeuge sind für die Bearbeitung der Übungsaufgaben ebenfalls vorgesehen. Die Vorlesung
      orientiert sich dabei hauptsächlich an folgendem Lehrbuch [1].

      Die notwendigen mathematischen Grundlagen werden bei Bedarf eingeführt.

      Zielgruppe

      B.Sc.-Studierende ab 5. Semester, M.Sc.-Studierende in Informatik, Mathematik, Physik o.ä.,

      Literaturhinweise

      Literatur zur Veranstaltung

      [1] Block-Berlitz M.: "Warum sich der Dino furchtbar erschreckte - Lehrbuch zu Beleuchtung und Rendering mit Java,
           LWJGL, OpenGL, OpenCV und GLSL", vividus Wissenschaftsverlag, 3. Auflage, 2021

      Ergänzende Literatur

      [2] Birn J.: "Digital Lighting & Rendering", 3. Auflage, New Riders Verlag, 2015
      [3] Foley J.D., et al.: "Computer Graphics: Principles and Practise", Addison-Wesley Verlag, 2. Auflage, 1997
      [4] Shirley P., et al.: "Fundamentals of Computer Graphics", CRC Press, AK Peters, 3. Auflage, 2009
      [5] Akenine-Möller T., et al.: "Real-Time Rendering", 3. Auflage, AK Peters, 2008
      [6] Eisemann E., et al.: "Real-Time Shadows", CRC Press, AK Peters, 2012
      [7] Gortler S. J.: "Founddations of 3D Computer Graphics", MIT Press, 2012
      [8] Han JH: "3D Graphics for Game Programming", CRC Press, 2011
      [9] Ammeraal L, et al.: "Computer Graphics for Java Programmers", Springer Verlag, 3. Auflage, 2017
      [10] Olano M. et al.: "Real-Time Shading", AK Peters, 2002
      [11] Shreiner M., et al.: "OpenGL Programming Guide: The Official Guide to Learning OpenGL", Addison-Wesley Verlag, 2007
      [12] Angel E.: "Interactive Computer Graphics", Addison-Wesley Verlag, 4. Auflage, 2006

       

    • 19303202 Übung
      Übung zu Computergrafik (Marco Block-Berlitz)
      Zeit: Fr 14:00-16:00 (Erster Termin: 19.04.2024)
      Ort: T9/SR 005 Übungsraum (Takustr. 9)

      Kommentar

      In der Vorlesung "Computergrafik" werden die vorgestellten Themen teilweise mit Programmbeispielen in
      Java, LWJGL, OpenGL und GLSL vorgestellt [1]. Diese Beispiele liegen als Programmpaket für die Bearbeitung
      und Ausführung in Eclipse bereit:

      http://www.vividus-verlag.de/beleuchtung_und_rendering

      Diese Werkzeuge sind für die Bearbeitung der Übungsaufgaben ebenfalls vorgesehen. In vorheriger Absprache
      können allerdings auch andere Werkzeuge, als die zuvor genannten, zum Einsatz kommen.

       

      [1] Block-Berlitz M.: "Warum sich der Dino furchtbar erschreckte - Lehrbuch zu Beleuchtung und Rendering
      mit Java, LWJGL, OpenGL, OpenCV und GLSL", vividus Wissenschaftsverlag, 3. Auflage, 2021

  • Künstliche Intelligenz

    0089cA1.9
  • Datenbanksysteme

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

    0086cA3.3
    • 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)
  • Grundlagen der Theoretischen Informatik

    0086cA4.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)
  • Betriebs- u. Kommunikationssysteme

    0087dA1.9
    • 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

  • Softwareprojekt A

    0159cA1.1
    • 19308312 Projektseminar
      Softwareprojekt: Anwendungen von Algorithmen (Mahmoud Elashmawi)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: T9/SR 006 Seminarraum (Takustr. 9)

      Kommentar

      Inhalt

      Ein typisches Anwendungsgebiet von Algorithmen wird ausgewählt und softwaretechnisch behandelt. In diesem Semester soll es um Algorithmen zum Graphenzeichnen gehen. Das Ziel ist es, Programme zur Herstellung guter Zeichnungen zu schreiben und damit an dem Zeichenwettbewerb teilzunehmen, der im September im Zusammenhang mit der internationalen Konferenz über Graph Drawing and Network Visualization stattfindet.

      Voraussetzungen

      Grundkenntnisse in Entwurf und Analyse von Algorithmen

      Literaturhinweise

      je nach Anwendungsgebiet

    • 19308412 Projektseminar
      Softwareprojekt: Datenverwaltung (Muhammed-Ugur Karagülle)
      Zeit: Mo 12:00-14:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
      Ort: 1.1.26 Seminarraum E1 (Arnimallee 14)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      Studierende im Master- bzw. Bachelorstudiengang

      Voraussetzungen

      Gute Programmierkenntnisse, Einführung in Datenbanksysteme.

      Kommentar

      Projekte können anwendungs- oder systemorientiert sein. Eine größere Aufgabe der Systementwicklung wird arbeitsteilig gelöst. Dazu gehören alle Phasen der Softwareentwicklung. Schwerpunkt sind Datenverwaltungssysteme.

      Die Veranstaltung wird in zwei Phasen durchgeführt. Die zweite Phase (Implementierung, Test, Auslieferung) kann als Blockveranstaltung in der vorlesungsfreien Zeit durchgeführt werden.

      Literaturhinweise

      Wird bekannt gegeben. / To be announced.

    • 19314012 Projektseminar
      Softwareprojekt: Semantische Technologien (Adrian Paschke)
      Zeit: Mi 14:00-16:00 (Erster Termin: 17.04.2024)
      Ort: T9/055 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Weitere Informationen finden sich auf der Veranstaltungsseite.

      Kommentar

      Im Rahmen des Softwareprojekts werden gemischte Gruppen von Bachelor- und Master-Studenten gebildet, die entweder ein eigenständiges Projekt erstellen oder aber ein Teil eines größeren Projektes im Bereich semantischer Technologien übernehmen. Bei der Umsetzung der Aufgaben werden vertiefte Programmierkenntnisse in der Anwendung semantischer Technologien und künstlicher Intelligenz im Corporate Semantic Web erworben, Projektmanagement und Teamfähigkeit gefördert, sowie Praktiken der guten Software-Entwicklung großer verteilter Systeme und Semantic Web Anwendungen geübt. Das Softwareprojekt kann in Zusammenarbeit mit einem externen Partner aus der Industrie oder Standardisierung durchgeführt werden. Die Fortführung des Projektes als Bachelor- oder Masterarbeit ist möglich und ausdrücklich erwünscht.

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

       

       

    • 19323612 Projektseminar
      Softwareprojekt: AMOS-Projekt (Lutz Prechelt, Dirk Riehle)
      Zeit: Mi 10:00-14:00 (Erster Termin: 17.04.2024)
      Ort: Online - zeitABhängig

      Zusätzl. Angaben / Voraussetzungen

      Lernziele und Kompetenzen

      • Studierende lernen zu Softwareprodukten und Softwareentwicklung in der Industrie
      • Studierende lernen zu agilen Methoden, insbesondere Scrum und Extreme Programming
      • Studierende lernen zu Open-Source-Softwareentwicklung und ihren Prinzipien
      • Studierende erwerben praktische Erfahrung mit Scrum und Extrem Programming

      Zielgruppe

      Studierende der Informatik (und verwandte Disziplinen). Für die Softwareentwickler:innen Rolle sollten Sie praktische Programmiererfahrung mitbringen. Dieser Kurs ist nicht geeignet, um Programmieren zu lernen.

      Sprache

      Englisch (Vorlesungen auf Englisch, Team-Meeting auf Deutsch oder Englisch nach Wahl der Studierenden)

      Benotung

      • Softwareentwickler:in (zu 100%)
        • 10% der Note: 5 Kurzquizzes zu jeweils 5 Fragen mit 2 Punkten
        • 90% der Note: Wöchentliche Projektarbeit

      Weiteres

      • SWS: 4 SWS (2 SWS VL, 2 SWS Team-Meeting)
      • Semester: Jedes Semester
      • Modalität: Online, universitätsübergreifend
      • Tags: Scrum

      Kommentar

      Dieser Kurs lehrt agile Methoden (Scrum und XP) und Open-Source-Werkzeuge anhand eines semesterlangen Projekts. Der Kurs findet online und universitätsübergreifend statt. Lehr- und Lerninhalte umfassen:

      • Agile Methoden und verwandte Entwicklungsprozesse
      • Scrum Rollen und Prozesspraktiken, inkl. Produktmanagement und Entwicklungsleitung
      • Technische Praktiken wie Refactoring, Continuous Integration, und test-getriebene Entwicklung
      • Prinzipien und Praktiken der Open-Source-Softwareentwicklung

      Das Projekt ist ein Softwareentwicklungsprojekt, bei dem jedes Studierendenteam mit einem Industriepartner zusammenarbeitet, der die Projektidee bereitstellt. Studierende arbeiten praktisch und angewandt.

      Studierende nehmen die Rolle einer Softwareentwicklerin oder eines Softwareentwicklers ein. In dieser Rolle schätzen sie den Aufwand von Anforderungen und setzen sie im Projekt um. Teilnehmende Studierende müssen über vorherige Softwareentwicklungserfahrung verfügen.

      Studierende werden in Teams von 7-9 Personen organisiert. Ein Team besteht aus einem Scrum Master, zwei Product Ownern, und sechs Softwareentwickler:innen. Ein Industriepartner stellt die allgemeinen Anforderungen bereit, welche von den Product Ownern ausgearbeitet und von den Softwareentwickler:innen umgesetzt werden. Das Projektangebot wird kurz vor Semesterbeginn vorgestellt werden.

      Der Kurs besteht aus einer 90 min. Vorlesung, gefolgt von einem 90 min. Team-Meeting (Teilnahme verpflichtend). Bitte registrieren Sie sich nicht für diesen Kurs, falls Sie nicht regelmäßig am Team-Meeting teilnehmen können.

      Registrierung und weitere Kursinformation finden Sie auf eine Google Spreadsheet über https://amos.uni1.de – bitte registrieren Sie Ihr Teilnahmeinteresse durch Ausfüllen des dort verlinkten Formulars zur Interessenbekundung, sobald sich dieses öffnet.

      Literaturhinweise

      http://goo.gl/5Wqnr7

    • 19329012 Projektseminar
      Softwareprojekt: Continual Learning (Manuel Heurich)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: T9/051 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      ,,

      Kommentar

      In diesem Kurs werden die Konzepte und Techniken des Continual Learning, eines wichtigen Bereichs im maschinellen Lernen, untersucht. Continual Learning, auch als lebenslanges Lernen bekannt, bezieht sich auf die Fähigkeit von KI-Systemen, kontinuierlich zu lernen und sich an neue Informationen anzupassen, ohne dabei früher erworbenes Wissen zu verlieren. Diese Fähigkeit ist entscheidend für die Entwicklung flexiblerer und anpassungsfähigerer KI-Systeme, insbesondere in sich schnell verändernden und datenreichen Umgebungen.

      Der Kurs richtet sich an Studierende der (Bio-)Informatik und Data Science, die ein tieferes Verständnis für fortgeschrittene Konzepte im maschinellen Lernen entwickeln und praktische Erfahrungen im Bereich Continual Learning sammeln möchten.

      Literaturhinweise

      ,,

    • 19329912 Projektseminar
      Softwareprojekt: Threat Assessment and Hacking Challenge (Volker Roth)
      Zeit: Di 10:00-12:00 (Erster Termin: 16.04.2024)
      Ort: T9/055 Seminarraum (Takustr. 9)

      Kommentar

      Students will be tasked to devise and implement a basic consumer electronic device of
      their choice (e.g. RFID tagging system, radio controller, keyboard) using a development platform
      (Propeller 1, Raspberry PI, Arduino), focusing on threat modelling and assessment for possible
      attacks on their device. At the half of the semester they will present their result and asked to assess
      and break into other groups UI prototypes, presenting once more their results at the end of the
      semester.

    • 19333912 Projektseminar
      Softwareprojekt: Lab Machine Learning for Data Science (Grégoire Montavon)
      Zeit: Fr 14:00-16:00 (Erster Termin: 19.04.2024)
      Ort: T9/K 036 Rechnerpoolraum (Takustr. 9)

      Kommentar

      The course will consist of applying machine learning techniques for extracting domain insights from real-world or simulated datasets. It will take the form of multiple lab exercises in Python, where the students will extract data, apply visualization techniques, train machine learning models on this data, use model selection/validation techniques, and finally apply interpretability techniques to extract domain insights from the learned models.

      Recommended prior course: Machine Learning for Data Science

      Format: Oral exam at the end of the semester

       

    • 19334212 Projektseminar
      Softwareprojekt: Maschinelles Lernen in den Lebenswissenschaften (Katharina Baum)
      Zeit: Di 14:00-16:00, Di 16:00-18:00 (Erster Termin: 16.04.2024)
      Ort: T9/049 Seminarraum (Takustr. 9)

      Kommentar

      Während des Projektes werden wir verschiedene Machine-Learning (ML)-Methoden trainieren und die Ergebnisse evaluieren. Hierfür werden verschiedene, zum Teil große Datensätze aus dem Bereich der Lebenswissenschaften für das maschinelle Lernen vorbereitet und hinsichtlich einer vorher definierten Fragestellung analysiert. Die Fragestellung kann von uns ausgegeben und dicht an unseren Forschungsinteressen liegen oder gemeinsam mit uns erarbeitet werden. Eine konkrete Anwendung kann die personalisierte Medizin sein, wie etwa eine Vorhersage der Wirkung von Krebsmedikamenten anhand von umfassenden Daten von Krebszellen, oder auch zeitliche Vorhersagen, zum Beispiel von Infektionszahlen in Epidemien. Die Programmiersprache ist Python, und wir planen die Verwendung von modernen Python-Modulen für ML wie scikit-learn, TensorFlow oder PyTorch. Gute Python-Kenntnisse sind Voraussetzung. Das Ziel ist die Erstellung eines Python-Pakets, das für den konkreten Anwendungsfall wiederverwendbaren Code zur Präprozessierung, Training auf ML-Modelle und Evaluation der Ergebnisse mit Dokumentation (z.B. mit sphinx) liefert. Das Softwareprojekt findet semesterbegleitend statt.

      Update 22.04.: Wir haben noch Plätze frei!

      Bei Interesse und für die Anmeldung im CM meldet euch bitte bei uns pascal.iversen@fu-berlin.de und pauline.hiort@fu-berlin.de. 

      Wir bieten vorrausichtlich eins von zwei möglichen Projekten an:
      (1)    Active learning for drug reponse prediction in cancer: Das Projekt zielt darauf ab, durch aktives Lernen die Vorhersage von der Effizienz von Medikamenten bei Krebs mit Deep Learning Modellen zu verbessern.
      (2)    Deep learning for drug combination response prediction: Hier werdet ihr eine deep learning base-line implementieren für Medikamentenkombinationenvorhersagen und mit einer publizierten Methode vergleichen. Ihr werdet dann die Methoden mit randomisiertem Input testen.
      Im Whiteboard finden Sie mehr Informationen dazu.

    • 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. 

    • 19337112 Projektseminar
      Softwareprojekt: Open Hardware (Tim Landgraf)
      Zeit: Mi 10:00-12:00 (Erster Termin: 17.04.2024)
      Ort: T9/049 Seminarraum (Takustr. 9)

      Kommentar

      In der wissenschaftlichen Gemeinschaft hat sich die Praxis von offenem Quellcode und offenen Daten als Standard für Reproduzierbarkeit und Transparenz etabliert. Im Gegensatz dazu befindet sich "Open Hardware" noch in einem frühen Entwicklungsstadium. Oft werden in der Forschung eigene Hardware-Lösungen entwickelt – sei es aus finanziellen Gründen oder weil kommerzielle Produkte die spezifischen Anforderungen nicht erfüllen. Diese Eigenentwicklungen werden jedoch selten als vollwertige Forschungsergebnisse anerkannt und finden in wissenschaftlichen Publikationen meist nur als methodische Komponenten Erwähnung. In diesem Projekt untersuchen wir, wie ein offenes Publikationssystem gestaltet werden kann, um Forschenden zu ermöglichen, ihre Entwicklungen im Bereich Open Hardware effektiver zu publizieren. Unser Ziel ist es, ein System zu entwickeln, das die einfache Veröffentlichung, Begutachtung und Verifizierung von Open Hardware in der wissenschaftlichen Forschung unterstützt.

  • Softwareprojekt B

    0159cA1.2
    • 19308312 Projektseminar
      Softwareprojekt: Anwendungen von Algorithmen (Mahmoud Elashmawi)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: T9/SR 006 Seminarraum (Takustr. 9)

      Kommentar

      Inhalt

      Ein typisches Anwendungsgebiet von Algorithmen wird ausgewählt und softwaretechnisch behandelt. In diesem Semester soll es um Algorithmen zum Graphenzeichnen gehen. Das Ziel ist es, Programme zur Herstellung guter Zeichnungen zu schreiben und damit an dem Zeichenwettbewerb teilzunehmen, der im September im Zusammenhang mit der internationalen Konferenz über Graph Drawing and Network Visualization stattfindet.

      Voraussetzungen

      Grundkenntnisse in Entwurf und Analyse von Algorithmen

      Literaturhinweise

      je nach Anwendungsgebiet

    • 19308412 Projektseminar
      Softwareprojekt: Datenverwaltung (Muhammed-Ugur Karagülle)
      Zeit: Mo 12:00-14:00, zusätzliche Termine siehe LV-Details (Erster Termin: 15.04.2024)
      Ort: 1.1.26 Seminarraum E1 (Arnimallee 14)

      Zusätzl. Angaben / Voraussetzungen

      Zielgruppe

      Studierende im Master- bzw. Bachelorstudiengang

      Voraussetzungen

      Gute Programmierkenntnisse, Einführung in Datenbanksysteme.

      Kommentar

      Projekte können anwendungs- oder systemorientiert sein. Eine größere Aufgabe der Systementwicklung wird arbeitsteilig gelöst. Dazu gehören alle Phasen der Softwareentwicklung. Schwerpunkt sind Datenverwaltungssysteme.

      Die Veranstaltung wird in zwei Phasen durchgeführt. Die zweite Phase (Implementierung, Test, Auslieferung) kann als Blockveranstaltung in der vorlesungsfreien Zeit durchgeführt werden.

      Literaturhinweise

      Wird bekannt gegeben. / To be announced.

    • 19314012 Projektseminar
      Softwareprojekt: Semantische Technologien (Adrian Paschke)
      Zeit: Mi 14:00-16:00 (Erster Termin: 17.04.2024)
      Ort: T9/055 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      Weitere Informationen finden sich auf der Veranstaltungsseite.

      Kommentar

      Im Rahmen des Softwareprojekts werden gemischte Gruppen von Bachelor- und Master-Studenten gebildet, die entweder ein eigenständiges Projekt erstellen oder aber ein Teil eines größeren Projektes im Bereich semantischer Technologien übernehmen. Bei der Umsetzung der Aufgaben werden vertiefte Programmierkenntnisse in der Anwendung semantischer Technologien und künstlicher Intelligenz im Corporate Semantic Web erworben, Projektmanagement und Teamfähigkeit gefördert, sowie Praktiken der guten Software-Entwicklung großer verteilter Systeme und Semantic Web Anwendungen geübt. Das Softwareprojekt kann in Zusammenarbeit mit einem externen Partner aus der Industrie oder Standardisierung durchgeführt werden. Die Fortführung des Projektes als Bachelor- oder Masterarbeit ist möglich und ausdrücklich erwünscht.

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

       

       

    • 19323612 Projektseminar
      Softwareprojekt: AMOS-Projekt (Lutz Prechelt, Dirk Riehle)
      Zeit: Mi 10:00-14:00 (Erster Termin: 17.04.2024)
      Ort: Online - zeitABhängig

      Zusätzl. Angaben / Voraussetzungen

      Lernziele und Kompetenzen

      • Studierende lernen zu Softwareprodukten und Softwareentwicklung in der Industrie
      • Studierende lernen zu agilen Methoden, insbesondere Scrum und Extreme Programming
      • Studierende lernen zu Open-Source-Softwareentwicklung und ihren Prinzipien
      • Studierende erwerben praktische Erfahrung mit Scrum und Extrem Programming

      Zielgruppe

      Studierende der Informatik (und verwandte Disziplinen). Für die Softwareentwickler:innen Rolle sollten Sie praktische Programmiererfahrung mitbringen. Dieser Kurs ist nicht geeignet, um Programmieren zu lernen.

      Sprache

      Englisch (Vorlesungen auf Englisch, Team-Meeting auf Deutsch oder Englisch nach Wahl der Studierenden)

      Benotung

      • Softwareentwickler:in (zu 100%)
        • 10% der Note: 5 Kurzquizzes zu jeweils 5 Fragen mit 2 Punkten
        • 90% der Note: Wöchentliche Projektarbeit

      Weiteres

      • SWS: 4 SWS (2 SWS VL, 2 SWS Team-Meeting)
      • Semester: Jedes Semester
      • Modalität: Online, universitätsübergreifend
      • Tags: Scrum

      Kommentar

      Dieser Kurs lehrt agile Methoden (Scrum und XP) und Open-Source-Werkzeuge anhand eines semesterlangen Projekts. Der Kurs findet online und universitätsübergreifend statt. Lehr- und Lerninhalte umfassen:

      • Agile Methoden und verwandte Entwicklungsprozesse
      • Scrum Rollen und Prozesspraktiken, inkl. Produktmanagement und Entwicklungsleitung
      • Technische Praktiken wie Refactoring, Continuous Integration, und test-getriebene Entwicklung
      • Prinzipien und Praktiken der Open-Source-Softwareentwicklung

      Das Projekt ist ein Softwareentwicklungsprojekt, bei dem jedes Studierendenteam mit einem Industriepartner zusammenarbeitet, der die Projektidee bereitstellt. Studierende arbeiten praktisch und angewandt.

      Studierende nehmen die Rolle einer Softwareentwicklerin oder eines Softwareentwicklers ein. In dieser Rolle schätzen sie den Aufwand von Anforderungen und setzen sie im Projekt um. Teilnehmende Studierende müssen über vorherige Softwareentwicklungserfahrung verfügen.

      Studierende werden in Teams von 7-9 Personen organisiert. Ein Team besteht aus einem Scrum Master, zwei Product Ownern, und sechs Softwareentwickler:innen. Ein Industriepartner stellt die allgemeinen Anforderungen bereit, welche von den Product Ownern ausgearbeitet und von den Softwareentwickler:innen umgesetzt werden. Das Projektangebot wird kurz vor Semesterbeginn vorgestellt werden.

      Der Kurs besteht aus einer 90 min. Vorlesung, gefolgt von einem 90 min. Team-Meeting (Teilnahme verpflichtend). Bitte registrieren Sie sich nicht für diesen Kurs, falls Sie nicht regelmäßig am Team-Meeting teilnehmen können.

      Registrierung und weitere Kursinformation finden Sie auf eine Google Spreadsheet über https://amos.uni1.de – bitte registrieren Sie Ihr Teilnahmeinteresse durch Ausfüllen des dort verlinkten Formulars zur Interessenbekundung, sobald sich dieses öffnet.

      Literaturhinweise

      http://goo.gl/5Wqnr7

    • 19329012 Projektseminar
      Softwareprojekt: Continual Learning (Manuel Heurich)
      Zeit: Di 14:00-16:00 (Erster Termin: 16.04.2024)
      Ort: T9/051 Seminarraum (Takustr. 9)

      Zusätzl. Angaben / Voraussetzungen

      ,,

      Kommentar

      In diesem Kurs werden die Konzepte und Techniken des Continual Learning, eines wichtigen Bereichs im maschinellen Lernen, untersucht. Continual Learning, auch als lebenslanges Lernen bekannt, bezieht sich auf die Fähigkeit von KI-Systemen, kontinuierlich zu lernen und sich an neue Informationen anzupassen, ohne dabei früher erworbenes Wissen zu verlieren. Diese Fähigkeit ist entscheidend für die Entwicklung flexiblerer und anpassungsfähigerer KI-Systeme, insbesondere in sich schnell verändernden und datenreichen Umgebungen.

      Der Kurs richtet sich an Studierende der (Bio-)Informatik und Data Science, die ein tieferes Verständnis für fortgeschrittene Konzepte im maschinellen Lernen entwickeln und praktische Erfahrungen im Bereich Continual Learning sammeln möchten.

      Literaturhinweise

      ,,

    • 19329912 Projektseminar
      Softwareprojekt: Threat Assessment and Hacking Challenge (Volker Roth)
      Zeit: Di 10:00-12:00 (Erster Termin: 16.04.2024)
      Ort: T9/055 Seminarraum (Takustr. 9)

      Kommentar

      Students will be tasked to devise and implement a basic consumer electronic device of
      their choice (e.g. RFID tagging system, radio controller, keyboard) using a development platform
      (Propeller 1, Raspberry PI, Arduino), focusing on threat modelling and assessment for possible
      attacks on their device. At the half of the semester they will present their result and asked to assess
      and break into other groups UI prototypes, presenting once more their results at the end of the
      semester.

    • 19333912 Projektseminar
      Softwareprojekt: Lab Machine Learning for Data Science (Grégoire Montavon)
      Zeit: Fr 14:00-16:00 (Erster Termin: 19.04.2024)
      Ort: T9/K 036 Rechnerpoolraum (Takustr. 9)

      Kommentar

      The course will consist of applying machine learning techniques for extracting domain insights from real-world or simulated datasets. It will take the form of multiple lab exercises in Python, where the students will extract data, apply visualization techniques, train machine learning models on this data, use model selection/validation techniques, and finally apply interpretability techniques to extract domain insights from the learned models.

      Recommended prior course: Machine Learning for Data Science

      Format: Oral exam at the end of the semester

       

    • 19334212 Projektseminar
      Softwareprojekt: Maschinelles Lernen in den Lebenswissenschaften (Katharina Baum)
      Zeit: Di 14:00-16:00, Di 16:00-18:00 (Erster Termin: 16.04.2024)
      Ort: T9/049 Seminarraum (Takustr. 9)

      Kommentar

      Während des Projektes werden wir verschiedene Machine-Learning (ML)-Methoden trainieren und die Ergebnisse evaluieren. Hierfür werden verschiedene, zum Teil große Datensätze aus dem Bereich der Lebenswissenschaften für das maschinelle Lernen vorbereitet und hinsichtlich einer vorher definierten Fragestellung analysiert. Die Fragestellung kann von uns ausgegeben und dicht an unseren Forschungsinteressen liegen oder gemeinsam mit uns erarbeitet werden. Eine konkrete Anwendung kann die personalisierte Medizin sein, wie etwa eine Vorhersage der Wirkung von Krebsmedikamenten anhand von umfassenden Daten von Krebszellen, oder auch zeitliche Vorhersagen, zum Beispiel von Infektionszahlen in Epidemien. Die Programmiersprache ist Python, und wir planen die Verwendung von modernen Python-Modulen für ML wie scikit-learn, TensorFlow oder PyTorch. Gute Python-Kenntnisse sind Voraussetzung. Das Ziel ist die Erstellung eines Python-Pakets, das für den konkreten Anwendungsfall wiederverwendbaren Code zur Präprozessierung, Training auf ML-Modelle und Evaluation der Ergebnisse mit Dokumentation (z.B. mit sphinx) liefert. Das Softwareprojekt findet semesterbegleitend statt.

      Update 22.04.: Wir haben noch Plätze frei!

      Bei Interesse und für die Anmeldung im CM meldet euch bitte bei uns pascal.iversen@fu-berlin.de und pauline.hiort@fu-berlin.de. 

      Wir bieten vorrausichtlich eins von zwei möglichen Projekten an:
      (1)    Active learning for drug reponse prediction in cancer: Das Projekt zielt darauf ab, durch aktives Lernen die Vorhersage von der Effizienz von Medikamenten bei Krebs mit Deep Learning Modellen zu verbessern.
      (2)    Deep learning for drug combination response prediction: Hier werdet ihr eine deep learning base-line implementieren für Medikamentenkombinationenvorhersagen und mit einer publizierten Methode vergleichen. Ihr werdet dann die Methoden mit randomisiertem Input testen.
      Im Whiteboard finden Sie mehr Informationen dazu.

    • 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. 

    • 19337112 Projektseminar
      Softwareprojekt: Open Hardware (Tim Landgraf)
      Zeit: Mi 10:00-12:00 (Erster Termin: 17.04.2024)
      Ort: T9/049 Seminarraum (Takustr. 9)

      Kommentar

      In der wissenschaftlichen Gemeinschaft hat sich die Praxis von offenem Quellcode und offenen Daten als Standard für Reproduzierbarkeit und Transparenz etabliert. Im Gegensatz dazu befindet sich "Open Hardware" noch in einem frühen Entwicklungsstadium. Oft werden in der Forschung eigene Hardware-Lösungen entwickelt – sei es aus finanziellen Gründen oder weil kommerzielle Produkte die spezifischen Anforderungen nicht erfüllen. Diese Eigenentwicklungen werden jedoch selten als vollwertige Forschungsergebnisse anerkannt und finden in wissenschaftlichen Publikationen meist nur als methodische Komponenten Erwähnung. In diesem Projekt untersuchen wir, wie ein offenes Publikationssystem gestaltet werden kann, um Forschenden zu ermöglichen, ihre Entwicklungen im Bereich Open Hardware effektiver zu publizieren. Unser Ziel ist es, ein System zu entwickeln, das die einfache Veröffentlichung, Begutachtung und Verifizierung von Open Hardware in der wissenschaftlichen Forschung unterstützt.

  • Algorithmen, Datenstrukturen und Datenabstraktion A

    0511bA3.13
    • 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)
    • Grundlagen und Vertiefung Fachdidaktik Informatik im Profil Quereinstieg 0502bA1.1
    • Medizinische Bildverarbeitung 0089cA1.10
    • Modellgetriebene Softwareentwicklung 0089cA1.11
    • Netzbasierte Informationssysteme 0089cA1.13
    • Rechnersicherheit 0089cA1.16
    • Übersetzerbau 0089cA1.19
    • XML-Technologien 0089cA1.21
    • Praktiken professioneller Softwareentwicklung 0089cA1.22
    • Computer-Vision 0089cA1.3
    • Datenbanktechnologie 0089cA1.4
    • Grundlagen des Softwaretestens 0089cA1.7
    • Semantik von Programmiersprachen 0089cA2.9
    • Betriebssysteme 0089cA3.1
    • Robotik 0089cA3.4
    • Objektorientierte Programmierung für Stud. mit Programmierkenntnissen 0086cA1.2
    • Objektorientierte Programmierung für Stud. ohne Programmierkenntnisse 0086cA1.3
    • Auswirkungen der Informatik 0086cA3.1
    • Grundlagen der Technischen Informatik 0086cB1.1
    • Rechnerarchitektur 0087dA1.8
    • Gesellschaftliche Aspekte der Informatik 0159cA2.3