Machine learning is changing the world. It can be found in almost all
segments including healthcare services, education, transport, food,
entertainment and many more. Specifically, in the field of computer
vision, machine learning techniques have enabled programs to interpret
and understand the world, sometimes even better than humans.
In this course, we will work on several projects to solve several
computer vision tasks using python. The students will have a chance to
get their hands on the classical (or potentially deep) machine learning
algorithms in teams, and apply those techniques to some of the most
interesting topics in computer vision.
- Trainer/in: Ursula Fantauzzo
- Trainer/in: Ming Gui
- Trainer/in: Johannes Schusterbauer
Das Praktikum SEP-Java besteht aus zwei Teilen: Der erste Teil ist ein Einzelpraktikum, der zweite Teil ein Teampraktikum. Das Einzelpraktikum besteht aus der Lösung mehrerer Programmieraufgaben, die alle Teilnehmer:innen selbstständig bearbeiten müssen. Jede Einzelaufgabe wird individuell bewertet und muss bestanden werden, um zum Teampraktikum zugelassen zu werden. Das Teampraktikum besteht aus einem größeren Softwareprojekt, das in Teams von 5-6 Personen umgesetzt wird.
Ziel des Praktikums ist es, Programmierkenntnisse zu erlangen, die es Ihnen ermöglichen, produktiv und professionell zu programmieren. Sie müssen anwenden: Prinzipien der objektorientierten Programmierung, Design Patterns, Unit Testing, Netzwerkkommunikation via JSON, und GUI-Programmierung mit JavaFX. Zusätzlich üben Sie grundlegende agile Methoden, Methodiken der KI-gestützten Softwareentwicklung, und die Verwendung von Entwicklungsumgebungen und Git.
Der Fokus des Praktikum ist nicht auf der reinen Programmierung, sondern auf bestimmten Technologien und Techniken der modernen Softwareentwicklung.
Von allen Teilnehmer:innen wird während des Praktikum eine aktive und professionelle Kommunikation erwartet.
Im zweiten Teil des Praktikum wird eine wöchentlich kontinuierliche Arbeit im Team erwartet. Es finden statt der Plenartreffen wöchentliche Treffen in Ihrem jeweiligen Team mit einer zugewiesenen Tutor:in in Präsenz statt.
Wir erwarten, dass Studierende im Durchschnitt 24 Stunden pro Woche für das Praktikum aufwenden. Bei fehlendem Vorwissen müssen Sie mit mehr Aufwand rechnen. Ein wiederholtes Fehlen bei Teamtreffen oder nicht erledigte Aufgaben führen zum Nicht-Bestehen des Praktikum.
Die Prüfung findet im Praktikum durch eine mündliche Prüfung statt, in der Fragen zu Grundlagen, Einzelaufgaben, und der Arbeit im Teamprojekt gestellt werden.
- Trainer/in: Thomas Lemberger
- Trainer/in: Henrik Wachowitz
Beschreibung:
In diesem Praktikum entwerfen, spezifizieren und implementieren die Studierenden unter Anleitung ein größeres Softwareprojekt.
Dabei
werden die in den Vorlesungen “Einführung in die Programmierung” und
“Programmierung und Modellierung” erlernten grundlegenden Konzepte und
Techniken praktisch eingesetzt und erweitert. Des Weiteren werden
Kenntnisse über Softwareentwicklungs-Tools wie
Versionsverwaltungsprogramme (Git) oder Integrated Development
Environments (IDE) vermittelt.
In der ersten Phase des Praktikums
(Vorprojekt) werden nochmals grundlegende Fähigkeiten in der
Programmentwicklung in Einzelarbeit geübt.
Nach Bestehen der ersten
Phase werden die Studierenden in Teams von 5-6 Personen aufgeteilt. In
der Hauptphase des Praktikums wird dann eine größere Java-Applikation im
Team entwickelt. Hierbei können die Studierenden dann auch wertvolle
Erfahrungen über Team- und Projektarbeit sammeln.
Bitte beachten:
12 ECTS entsprechen einem Arbeitsaufwand von ca. 24 Stunden pro Woche. Es ist in keiner Weise ausreichend, nur den Plenumstermin und die Tutortreffen wahrzunehmen, sondern sie müssen sehr viel eigenständig am Computer arbeiten und programmieren. Sie müssen genug Zeit für dieses Praktikum einplanen um problemlos einen Termin mit ihren Gruppenmitgliedern zu finden.
Termine und Ort:
| Veranstaltung | Zeit | Ort |
Beginn | |
|---|---|---|---|---|
| Plenum |
|
tba |
tba |
- Trainer/in: Simon Rauch
- Trainer/in: Udo Schlegel
- Trainer/in: Matthias Schubert
Übersicht
Dieses Praktikum (6 ECTS) vermittelt praxisnahes Wissen zu verschiedenen Fuzzingtechniken. Studierende lernen, wie Software gezielt getestet wird, um Fehler, Abstürze und Sicherheitslücken aufzudecken. Sie entwickeln eigene Fuzzer, nutzen etablierte Frameworks wie LibAFL oder AFL++ und wenden diese auf verschiedene Programme an, zum Beispiel Kommandozeilen-Tools, Parser oder Netzwerkdienste. Mit Abschluss des Praktikums sollen die Studierenden nicht nur die Funktionsweise von Fuzzing verstehen, sondern auch in der Lage sein selbstständig Fuzzing-Architekturen zu entwerfen und Ergebnisse strukturiert auszuwerten.
Struktur
Im Rahmen der Veranstaltung wird es regelmäßig Übungsaufgaben geben, welche in Zweiergruppen bearbeitet werden.
Die Veranstaltung ist aufgeteilt in Übungstermine und Praktikumstermine.
An den Übungsterminen werden wöchentlich die für die Aufgaben benötigtenLehrinhalte vermittelt.
An den Praktikumsterminen haben die Studierenden die Möglichkeit unter Aufsicht des Dozierenden an den Aufgaben zu arbeiten und um Hilfestellungen zu bitten.
Am Ende des Praktikums geben alle Gruppen einen Vortrag über die Ergebnisse Ihrer finale Abgabe.
- Trainer/in: Merlin Sievers