Wintersemester 2020/21

Praxis der Softwareentwicklung (PSE)

Thema: Erstellung und Training von Neuronalen Netzen durch visuelle Interaktion für den Schulunterricht

Prof. Dr. Bernhard Beckert, Prof. Dr. Carsten Sinz, Dr. Mattias Ulbrich, Safa Omri

Aktuelles

Die Lehrveranstaltung wird online stattfinden, weitere Informationen auf den Seiten des Lehrstuhls für Programmierparadigmen!

Allgemeines

In "Praxis der Softwareentwicklung" (PSE) lernen die Teilnehmer, ein vollständiges Softwareprojekt nach dem Stand der Softwaretechnik in einem Team mit etwa 5 bis 6 Teilnehmern durchzuführen. Ziel ist es insbesondere, Verfahren des Software-Entwurfs und der Qualitätssicherung praktisch einzusetzen, Implementierungskompetenz umzusetzen, und arbeitsteilig im Team zu kooperieren.

Allgemeine Informationen zum Bachelor-Modul inklusive formaler Voraussetzungen und Prüfungsmodalitäten sind auf den Seiten des Lehrstuhls für Programmierparadigmen am IPD zu finden. Außerdem gibt es für PSE in diesem Semester einen (allgemeinen) ILIAS-Kurs.

Hintergrund

Dieses PSE-Projekt wird im Rahmen des Projekts OSL2 (Open-Source-Lehrsoftware-Labor) durchgeführt.

Motivation

  • Maschinelles Lernen und Künstliche Intelligenz werden immer wichtiger für unseren Alltag, sodass eine Beschäftigung damit in der Schule unumgänglich ist.
  • Ziel: Eine Web-Anwendung für Deep-Learning, mit der man benutzerdefinierte Modelle erstellen, trainieren und einbinden kann. Das geht über eine einfache visuelle Schnittstelle.

Rahmenbedingungen

Implementierung der Aufgabenstellung:

  • Das Frontend wird in JavaScript und React entwickelt.
  • Das Backend wird in Python entwickelt.
  • Für die Erstellung und das Training der Neuronalen Netze wird das Framework Tensorflow verwendet.

Betreuung und regelmäßige Treffen der Gruppe:

  • Dieses Projekt wird als 5-er Gruppe angeboten
  • Online-Veranstaltung mit virtuelle Treffen per Videokonferenz

Hinweise und Erwartungen

  • Aktives Source Code Management mittels eines Versionsverwaltungssystems
  • Automatische Softwaretests
  • Kontinuierliche Integration
  • Anwendung bzw. Einhaltung von Design Patterns, Best Practices, und Style-Konventionen
  • Kommentierter Quellcode, sowie Dokumentation und Testprotokolle