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