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.
-
19323311
Seminar
-
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.
-
19314911
Seminar
-
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.
-
19314911
Seminar
-
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)
-
19303001
Vorlesung
-
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, 2021Ergä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
http://www.vividus-verlag.de/beleuchtung_und_rendering
Java, LWJGL, OpenGL und GLSL vorgestellt [1]. Diese Beispiele liegen als Programmpaket für die Bearbeitung
und Ausführung in Eclipse bereit: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
-
19303201
Vorlesung
-
Künstliche Intelligenz
0089cA1.9-
19303701
Vorlesung
Künstliche Intelligenz (Grégoire Montavon)
Zeit: Di 16:00-18:00 (Erster Termin: 16.04.2024)
Ort: T9/Gr. Hörsaal (Takustr. 9)
Zusätzl. Angaben / Voraussetzungen
Voraussetzungen:
Grundkenntnisse in Mathematik und Algorithmen & Datenstrukturen.
Kommentar
Siehe den englischen Beschreibungstext.
Literaturhinweise
- Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach (http://aima.cs.berkeley.edu/)
- Richard Sutton and Andrew Barto, Reinforcement Learning: An Introduction (https://mitpress.mit.edu/books/reinforcement-learning-second-edition)
-
19303702
Übung
Übung zu Künstliche Intelligenz (Grégoire Montavon)
Zeit: Di 12:00-14:00 (Erster Termin: 16.04.2024)
Ort: T9/Gr. Hörsaal (Takustr. 9)
-
19303701
Vorlesung
-
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)
-
19301501
Vorlesung
-
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)
-
19301401
Vorlesung
-
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
- Theoretische Rechnermodelle
-
19301202
Übung
Übung zu Grundlagen der theoretischen Informatik (Katharina Klost)
Zeit: Di 10:00-12:00, Di 16:00-18:00, Mi 12:00-14:00, Mi 14:00-16:00 (Erster Termin: 16.04.2024)
Ort: T9/053 Seminarraum (Takustr. 9)
-
19301201
Vorlesung
-
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
-
19300701
Vorlesung
-
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 IoTDetails 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
-
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.
-
19308312
Projektseminar
-
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 IoTDetails 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
-
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.
-
19308312
Projektseminar
-
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)
-
19300101
Vorlesung
-
-
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
-