Lehre im Wintersemester 2020/21
Skriptsprachen
Skriptsprachen wie Python sind inzwischen mehr als ein nützliches Werkzeug für Ad-Hoc-Aufgaben. Verbreitete Frameworks wie ansible, TensorFlow, PyTorch und SciKit Learn zeigen, dass Python sich auch für ernsthafte Anwendungen eignet. Auch viele Algorithmen lassen sich in Python sehr einfach umsetzen.
Im Modul lernen wir viele dieser Aspekte kennen. Zum Abschluss des Moduls entwickeln Sie ein eigenes Projekt in Python und setzen dabei Ihre kreativen Ideen um.
Lernergebnisse
Die Studierenden verstehen die Eigenschaften einer Skriptsprache wie Python und beherrschen ihren Einsatz zur Automatisierung von Aufgaben in der Systemintegration und zur Erstellung von Prototypen und Anwendungen.
Sie sind in der Lage, Aufgabenstellungen aus Themenfeldern wie Graphentheorie, dynamische Programmierung oder Machine Learning mit Python zu lösen und verstehen, welche Vorteile Python dabei gegenüber anderen Programmiersprachen bietet.
Die Vorlesung und die Praktikumsteilnahme befähigen zur selbständigen Durchführung einer schriftlichen Ausarbeitung und zur Erarbeitung weiterer Programmierkenntnisse.
mehr ...Vertiefung Software Engineering
Software Engineering ist das zentrale Thema der Anwendungsentwicklung. Dieses Modul greift Themen des Software Engineering auf, vertieft diese Inhalte und betrachtet sie unter praxisorientierten Gesichtspunkten.
Inhaltlich werden Themen wie
- Architektur- und Entwurfsmuster,
- Konfigurationsmanagement,
- Softwaremetriken,
- Softwaretest und Integration sowie
- Softwareentwurfsmodelle (funktions-/daten-/objektorientiert) behandelt.
Lernergebnisse
Die Studierenden sind mit den in großen Softwareentwicklungsprojekten auftretenden Problemen vertraut. Sie kennen den Prozess des Software-Engineerings sowie die Ergebnistypen der einzelnen Prozessschritte und verstehen ihren Einfluss auf den Erfolg eines Softwareentwicklungsprojektes. Sie können bei gegebenen Anforderungen die Teststrategie für ein Softwareprojekt entwickeln und die verschiedenen Teststufen planen.
Durch verschiedene Best-Practice-Beispiele haben die Studierenden die theoretischen Ansätze des Software Engineerings in konkreten Implementierungen gesehen und können diese auf neue Situationen übertragen.
mehr ...Moderne Web-Frameworks
Im Modul lernen wir die Frontend-Frameworks Vue.js, Angular und React anhand einer konkreten Beispielanwendung kennen. In einer Projektarbeit erstellen Sie als Gruppe oder einzeln eine eigene Webanwendung.
Lernergebnisse
Die Studierenden verstehen die Funktionsweise moderner Webanwendungen und kennen die Vor- und Nachteile verschiedener Ansätze wie etwa Rich Internet Applications oder Single-Page-Anwendungen. Sie können erläutern, welche Komponente die Präsentationslogik enthält.
Die Studierenden haben insbesondere durch praktische Rechnerübungen sowohl Frontends als auch Backends von Web-Anwendungen auf Basis populärer Frameworks implementiert, und sie sind in der Lage, Web-Anwendungen vergleichbarer Komplexität selbständig zu planen und zu entwickeln.
Inhalte
Moderne Web-Frameworks wie etwa
- Vue.js,
- React oder
- Angular werden anhand einer Beispielanwendung vorgestellt.
Im Praktikum werden darauf abgestimmten Präsenzaufgaben zur Erstellung einer einfachen Webanwendung mithilfe verschiedener Frameworks bearbeitet und die unterschiedlichen Ansätze der Frameworks kritisch reflektiert.
mehr ...Software Engineering
Im Modul Software Engineering wird vermittelt, wie man Softwareprodukte systematisch erstellt.
Schwerpunkte sind die Themen
- Requirement Engineering,
- Objektorientierte Analyse,
- Objektorientiertes Design und
- das Erlernen der UML.
Lernergebnisse
Die Studierenden sind in der Lage, Softwareprodukte systematisch zu erstellen. Dazu haben sie sich theoretisch und praktisch in gängige Techniken des Software Engineering eingearbeitet. Sie können insbesondere im direkten Gespräch mit Nicht-Informatiker*innen eine erste Anforderungsanalyse erstellen.
Sie beherrschen die Modellierung in UML und die Umsetzung mit einer objektorientierten Programmiersprache. Dazu gehört auch, unter verschiedenen Software-Architekturmodellen das oder die passenden Modelle begründet auszuwählen.
Über die technischen Fähigkeiten hinaus haben die Studierenden Projektmanagement-Kompetenzen (u.a. klassisch und agil) erworben und sich auch mit den Themen Dokumentation und Systemtest befasst.
mehr ...Grundlagen der Programmierung
Das Modul Grundlagen der Programmierung führt in das algorithmische Denken ein und vermittelt grundlegende Programmierkenntnisse.
Lernergebnisse
Die Studierenden kennen die elementaren Datentypen zur Darstellung von Informationen in einem Computersystem mit ihren jeweiligen Eigenschaften und können für konkrete Aufgabenstellungen die jeweils geeigneten Datentypen auswählen.
Sie verstehen die Bedeutung kombinatorischer Fragestellungen in der Informatik und erlangen die Kompetenz, einfache kombinatorische Probleme zu lösen.
Die Studierenden kennen die grundlegenden Kodierungen für Zahlen und Zeichen und ihre Anwendungsbereiche und können die Komponenten eines von-Neumann-Rechners benennen und seine Funktionsweise erklären.
Sie beherrschen die Formulierung einfacher Algorithmen als Pseudocode und in einer Skriptsprache und erhalten so Kompetenzen, die zum Bearbeiten elementarer Aufgabenstellungen nötig sind (z.B. Sortieren einer Liste, Bestimmung des ggT zweier Zahlen).
Inhalte
Die Inhalte orientieren sich am Buch Algorithmen kapieren von Arditya Bhargava und folgenden Themen:
- Was ist ein Algorithmus?
- Landau-Notion
- Darstellungen ganzer und reeller Zahlen
- Informationsdarstellung (Texte, Multimedia)
- Boolesche Algebra, Logik
- Formulierung von Algorithmen als Pseudocode