Grundlagen der Programmierung

Studiengang:
Applied Computer and Communication Technology (B. Eng.)
Wehrtechnik (B. Eng.)

Modulbestandteile:
Grundlagen der Programmierung (5-stündig)
Praktikum Grundlagen der Programmierung (3-stündig)

PythagorasBaum

Inhalte:
In diesem Modul werden die zentralen Begriffe und Konzepte der Programmierung vermittelt. Dazu werden die folgenden Themen behandelt: Information und Repräsentation, Algorithmen und Datenstrukturen, Programme und Programmiersprachen: funktionale, imperative, strukturierte und objektorientierte Programmierung. In Rahmen der objektorientierten Programmierung wird auf die die Verwendung von Klassen und Klassenbibliotheken, sowie die Modularisierung von Software eingegangen.

Die Studierenden sollen die Fähigkeit zum problemnahen Programmieren erwerben: Modellieren und beschreiben der realen Probleme, Konstruktion der Lösung mit Hilfe der Informatik, Systematische Umsetzung der Lösung mit Hilfe der Programmiersprache.

Im Praktikum wird das Gelernte mit der Entwicklungsumgebung „Netbeans“ und der Programmiersprache „Java“ vertieft. Dabei lernen die Studierenden auch ihre Programme zu Testen und zu Debuggen.

Qualifikationsziele:
Die Studenten lernen die Begriffe, Konzepte, Mittel und Methoden des Programmierens sowie wichtige Algorithmen und Lösungsmuster kennen. Sie erwerben die Fähigkeit zum funktionalen, imperativen, strukturierten und objektorientierten Programmieren von Anwendungen in „Java“.

Voraussetzung für die Teilnahme:
Der Studierende benötigt die Kenntnisse des Moduls: Grundlagen der Informatik

Geschätzter studentischer Arbeitsaufwand (workload):
6 ECTS-LP (182 Stunden)

Beschreibung der Lehr- und Lernformen:
Seminaristischer Unterricht (5-stündig)
Praktikum (3-stündig)

Häufigkeit des Angebots:
Das Modul dauert ein Trimester. Das Modul beginnt jedes Studienjahr im Wintertrimester. Das Modul wird pro Studienjahr einmal angeboten. Als Startzeitpunkt ist das Wintertrimester im 1. Studienjahr vorgesehen.

Software Engineering

Studiengang:
Applied Computer and Communication Technology (B. Eng.)
Wehrtechnik (B. Eng.)

Modulbestandteile:
Höhere Programmierung (3-stündig)
Praktikum Höhere Programmierung (2-stündig)
Software Engineering (3-stündig)
Praktikum Software Engineering (4-stündig)

Schema Software Engineering

Inhalte:
Die Studierenden erweitern ihr in Grundlagen der Programmierung erworbenes Wissen um dynamisches, ereignis-, komponenten- und musterorientiertes Programmieren, um die Nutzung von Erweiterung von Bibliotheken, sowie die Kenntnis von parallelem und verteiltem Programmieren von Anwendungen und Applets in "Java".
Im Praktikum Höhere Programmierung vertiefen die Studierenden ihr erworbenes Wissen anhand praktischer Beispiele und lernen das praktische Arbeiten mit Programmierkonstrukten wie Rekursion, Verkettung, Ströme, Container, Ereignisse, Threads und Metaprogrammierung in Java.
In der Vorlesung und im Praktikum "Software Engineering" erlernen die Studierenden das Programmieren "im Großen". In der Vorlesung wird der Prozess des Software-Engineerings besprochen. Im Praktikum haben die Studierenden die Gelegenheit in Projektteams das Gelernte zu üben. Dazu spezifizieren, entwerfen, implementieren und testen die Studierenden in den Projektteams ein kleines Projekt und erstellen dabei die für ein Softwareprojekt üblichen Dokumente.

Qualifikationsziele:
Der Student wird befähigt, größere ereignisorientierte Anwendungen in "Java" selbständig zu entwickeln, sowie sich in parallele und verteilte Programmierung einzuarbeiten. Es wird die Fähigkeit zum objektorientierten Programmieren größerer Anwendungen vermittelt, um über die Kenntnis der Prinzipien, Mittel, Methoden und Muster des Software Engineering auch im Team komplexe Software-Projekte realisieren zu können.

Voraussetzung für die Teilnahme:
Der Studierende benötigt die Kenntnisse des Moduls: Grundlagen der Informatik, Grundlagen der Programmierung

Geschätzter studentischer Arbeitsaufwand (workload):
11 ECTS-LP (330 Stunden)

Beschreibung der Lehr- und Lernformen:
Vorlesung Höhere Programmierung (3-stündig im Frühjahrstrimester)
Praktikum Höhere Programmierung (2-stündig im Frühjahrstrimester)
Vorlesung Software Engineering (2-stündig im Frühjahrstrimester, 1-stündig im Herbsttrimester)
Praktikum Software Engineering (4-stündig im Herbsttrimester)

Häufigkeit des Angebots:
Das Modul dauert zwei Trimester. Das Modul beginnt jedes Studienjahr im Frühjahrstrimester und endet im Herbsttrimester. Das Modul wird pro Studienjahr einmal angeboten. Als Startzeitpunkt ist das Frühjahrstrimester im 2. Studienjahr vorgesehen.

Robotersysteme

Studiengang:
Computer Aided Engineering (M. Eng.)

Modulbestandteile von:
Grundlagen sensomotorischer Systeme

DLR Hand und Arm

Inhalte:

  • Einfuhrung mit Historie
  • Grundbegriffe, Teilsysteme eines Roboters, Gelenktypen
  • Roboterkinematik (Vorwärts- und Ruckwärtsrechnung, Konfigurationsraum)
  • Roboterdynamik
  • Möglichkeiten der Programmierung von Robotern
  • Besonderheiten mobiler Robotersysteme

Voraussetzung für die Teilnahme:
Kenntnisse des Moduls Höhere Mathematik

Geschätzter studentischer Arbeitsaufwand (workload):
2 ECTS-LP (60 Stunden)

Beschreibung der Lehr- und Lernformen:
Vorlesung (2-stündig)

Häufigkeit des Angebots:
Das Modul dauert 1 Trimester. Das Modul beginnt jedes Studienjahr jeweils im Herbsttrimester. Als Startzeitpunkt ist das Herbsttrimester im 2. Studienjahr vorgesehen.

Höhere Datenstrukturen und effiziente Algorithmen

Inhalte:
Die Studierenden erhalten detaillierte Kenntnisse über höheren Datenstrukturen und effizienten Algorithmen, die diese Datenstrukturen verwenden. Ein Teil der Lehrveranstaltung beschäftigt sich mit der Komplexität von "Standard"-Operationen auf höheren Datenstrukturen. Bei diesen Operationen handelt es sich z.B. um das Einfügen, das Löschen oder das Suchen eines Elements in eine Menge von Elementen. Kennt man erst mal die Komplexität der Operationen, dann kann man hieraus auf Einsatzgebiete schließen, in der die Datenstruktur effizient verwendbar ist. Die Datenstrukturen, die in dem Modul behandelt werden sind:

  • Höhenbalancierte Suchbäume: AVL-Bäume, (a-b)-Bäume, Rot-Schwarz-Bäume
  • Selbstorganisierende Listen und Bäume: Splay Trees
  • Heaps: Binomial Heaps, Fibonacci Heaps

Ein weiteres Themengebiet des Moduls sind spezielle Problemklasse, für die effiziente Lösungsmöglichkeiten vorgestellt werden. Das Modul beschäftigt sich z.B. mit dem Problem der Selektion, mit planaren Graphen, mit dem Matching-Problem und dem Flussproblem. In diesem Zusammenhang wird auch auf die Möglichkeit der Verwendung paralleler Algorithmen eingegangen.

AVL-BaumAVL-Baum

Rot-SW-Baum Rot-Schwarz-Baum

Binärer SuchbaumBinärer Suchbaum

 

Qualifikationsziele:
Mit Hilfe der erworbenen Kenntnisse können die Studierenden die Effizienz der besprochenen Datenstrukturen in spezifischen Einsatzgebieten bewerten. Durch die Betrachtung verschiedener Problemklassen werden einige Einsatzgebiete für die vorgestellten Datenstrukturen besprochen, so dass den Studierenden eine Übertragung in weitere Einsatzgebiete erleichtert wird. Die Studierenden erhalten im Rahmen dieses Moduls aber auch einen Eindruck von den Grenzen der Lösungsmöglichkeiten durch bekannte Algorithmen und Datenstrukturen.

Voraussetzung für die Teilnahme:
Der Studierende benötigt die Kenntnisse der Module: Grundlagen der Informatik, Grundlagen der Programmierung, Maschinenorientiertes Programmieren, Keine Teilnahmebeschränkung

Geschätzter studentischer Arbeitsaufwand (workload):
3 ECTS-LP (90 Stunden)

Beschreibung der Lehr- und Lernformen:
Seminaristischer Unterricht (4-stündig)

Häufigkeit des Angebots:
Das Modul dauert ein Trimester und wird jeweils im Herbsttrimester ab dem 2. Studienjahr angeboten. Das Modul wird pro Studienjahr einmal angeboten.

App-Programmierung mit Swift

Wahlpflichtmodul Technische Informatik und Kommunikationstechnik (B. Eng.)

Inhalte:

  • Programmierung in Swift,
  • Struktur und Lebenszyklus von Applikationen,
  • Erstellung einer App mit Swift,
  • Design von GUIs,
  • Datenhaltung,
  • Entwicklungswerkzeuge,
  • Debuggen

Qualifikationsziele:

Die Studierenden erlernen das Programmieren von Apps mit Swift. Sie kennen den Lebenszyklus und die Struktur dieser Apps. Insbesondere werden die Grundlagen zur Programmierung mobiler Applikationen unter iOS erlernt. Grundlegende Bibliotheken für die Programmierung zur Erstellung von Apps in Swift sind den Studierenden danach bekannt. Außerdem beherrschen die Studierenden den Einsatz einer Entwicklungsumgebung zur Programmierung von Apps in Swift.

Voraussetzung für die Teilnahme:

Die Studierenden benötigen die Kenntnisse der Module: Grundlagen der Programmierung, Maschinenorientiertes Programmieren, die Teilnehmerzahl ist auf 8 begrenzt.

Geschätzter studentischer Arbeitsaufwand (workload):
3 ECTS-LP (90 Stunden)

Beschreibung der Lehr- und Lernformen:
Seminaristischer Unterricht (4-stündig)

Häufigkeit des Angebots:
Das Modul dauert 1 Trimester. Das Modul beginnt jedes Studienjahr jeweils im Herbsttrimester. Als Startzeitpunkt ist das Herbsttrimester im 2. Studienjahr vorgesehen.

Erstellen von HTML5-Anwendungen

Modulverantwortliche:
Prof. Dr. Dieter Pawelczak und Prof. Dr. Andrea Baumann

Inhalte:
HTML5 Anwendungen können auf allen Endgeräten, die über einen Browser verfügen, plattformunabhängig ausgeführt werden. Im Rahmen des Moduls werden Beispielanwendungen mit Hilfe unterschiedlicher Technologien umgesetzt. Zum Einsatz kommen z.B. CSS3 (Cascading Style Sheets), JavaScript und JavaEE (Java Platform, Enterprise Edition). Dazu werden wir die Kernelemente der deklarative Sprachen CSS3 und der Skriptsprache JavaScript kennenlernen. Konzepte der client- und serverseitigen Datenhaltung werden betrachtet. Als Anwendungsserver verwenden wir den Oracle Glassfish Server. Darüberhinaus setzen wir verschiedene Frameworks ein, die uns bei der HTML5- Anwendungsentwicklung unterstützen, z.B. GWT (Google Web Toolkit) oder auch Cross Compiling mit XMLVM und Emscripten.

„HTML5“

Qualifikationsziele:
Mit Hilfe der erworbenen Kenntnisse können die Studierenden erste einfache HTML5-Anwendungen mit CSS, JavaScript und JavaEE bauen und verstehen Frameworks zur Entwicklung von HTML5 Anwendungen einzusetzen.

Voraussetzung für die Teilnahme:
Der Studierende benötigt die Kenntnisse der Module: Grundlagen der Informatik, Grundlagen der Programmierung, Maschinenorientiertes Programmieren, Maximal 12 Teilnehmer

Geschätzter studentischer Arbeitsaufwand (workload):
3 ECTS-LP (90 Stunden)

Beschreibung der Lehr- und Lernformen:
Seminaristischer Unterricht (4-stündig)

Häufigkeit des Angebots:
Das Modul dauert ein Trimester und wird jeweils im Frühjahrstrimester ab dem 2. Studienjahr angeboten. Das Modul wird pro Studienjahr einmal angeboten.