Bachelor, Vollzeit, Berufsbegleitend
- Campus Hagenberg
- E-Mail se@fh-hagenberg.at
- Telefon +43 5 0804 22000
- Infoblatt downloaden Anfrage stellen
Studienplan Vollzeit
Module
Formale Grundlagen
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Logische und formale Grundlagen der Informatik |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Logische und formale Grundlagen der InformatikDie Studierenden verstehen ausgesuchte Inhalte der Mathematik und kennen die Sprache und Methode der Mathematik. Damit sind die Studierenden in der Lage, technische Problemstellungen strukturiert zu analysieren und mit mathematischen Problemlösungsansätzen umzugehen. Logische und formale Grundlagen der Informatik
Aussagenlogik, Prädikatenlogik, Mengenlehre, Relationen (Äquivalenz¬relationen und Ordnungsrelationen), Funktionen, Induktionsbeweise Logische und formale Grundlagen der Informatik
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte aus den Bereichen Aussagenlogik, Prädikatenlogik, Mengenlehre, Relationen und Funktionen. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mathematik |
3 | 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MathematikDie Studierenden können Methoden der Mathematik auf Problemstellungen der Informatik und des Software Engineering anwenden. Sie können für die wichtigsten mathematischen Modellprobleme algorithmische Lösungsmethoden anwenden und die Rechenergebnisse für das vorliegende praktische Problem interpretieren. Mathematik 1 - Algebra
Lineare Algebra: Vektorräume, lineare Funktionen, Basen, Matrizen, Determinanten, lineare Gleichungssysteme, Gauß'sches Eliminationsverfahren; Geometrie: Skalarprodukt, Orthogonalität, Projektionen, Orthonormalbasen. Mathematik 1 - Algebra
In der Übung synchron zur Vorlesung praktische Umsetzung der Lehrinhalte Mathematik 2 - Statistik
Wahrscheinlichkeitsräume, Kombinatorik, Zufallsvariable, wichtige diskrete und stetige Wahrscheinlichkeits-verteilungen, beschreibende Statistik, Parameter-schätzung, Konfidenzintervalle, Einführung in die Testtheorie. Mathematik 2 - Statistik
In der Übung synchron zur Vorlesung praktische Umsetzung der Lehrinhalte aus Bereich: Wahrscheinlichkeitsräume, Dichte- und Verteilungsfunktion, wichtige diskrete und stetige Wahrscheinlichkeitsverteilungen, beschreibende Statistik, Parameterschätzung, Einführung in die Testtheorie. |
Technische Fächer
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Elementare Algorithmen und Datenstrukturen |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Elementare Algorithmen und DatenstrukturenDie Studierenden kennen die wichtigsten Operationen auf statischen und dynamischen Datenstrukturen. Sie kennen die wichtigsten elementaren Algorithmen, insbesondere für das Suchen und das Sortieren sowie das Konzept der Rekursion. Sie kennen Pseudozufallszahlen, Möglichkeiten ihrer Erzeugung, Bewertung und Anwendung. Die Studierenden können Algorithmen spezifizieren, entwerfen, implementieren und deren Komplexi-tät hinsichtlich Struktur, Speicherbedarf und Laufzeit analysieren. Elementare Algorithmen und Datenstrukturen
Standardoperationen auf statischen Datenstrukturen (Felder), Erzeugung und Verwaltung von dynamischen Datenstrukturen (einfach- und doppelt verkettete Listen und verschiedene Arten von Bäumen) sowie Standardoperationen darauf. Elementare Algorithmen für das Suchen (sequentielle und binäre Suche) auf Feldern, verketteten Listen und binären (Such-)Bäumen. Konzept der Rekursion, rekursive Algorithmen und ihr Ablauf, Transforma-tion von rekursiven in iterative Algorithmen und umgekehrt. Sortieralgorithmen (Auswahl- und Einfügesortieren, Shellsortieren, Austauschsortieren und Quicksort ), deren Anwendung und Analyse. Konzept der Pseudo-Zufallszahlen, Generatoren für und Eigenschaften von Zufallszahlenfolgen sowie Beispiel für die Anwendungen von Zufallszahlen. Spezifizieren und entwerfen von Algorithmen nach funktionalen Gesichtspunkten (Methode der schrittweisen Verfeinerung). Struktur-, Speicher- und Laufzeitkomplexität von Algorithmen sowie Analyse von Algorithmen hinsichtlich dieser Komplexitätsarten. Elementare Algorithmen und Datenstrukturen
Übungen vertiefen den Stoff der Vorlesung durch praktische Beispiele. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Einführung in die Programmierung |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Einführung in die ProgrammierungDie Studierenden besitzen detaillierte Kenntnisse über das imperative (prozedurale) Programmierparadigma, kennen die wichtigsten Konstrukte (Variablen, Datentypen, Anweisungen, Ausdrücke, Prozeduren und Funktionen) und deren Ausprägung in einer konkreten Programmiersprache und können diese zur Lösung einfacher Aufgaben anwenden. Einführung in die Programmierung
Einführung in die imperative (prozedurale) Programmierung: Grundbegriffe der Syntax und der Semantik von imperativen Programmiersprachen, Variable und skalare Datentypen, einfache Anweisungen (Zuweisung, binäre Verzweigung, Schleifen), Ausdrücke, Entwicklungszyklus (Editieren, Übersetzen, Testen und Debuggen) mit einer einfachen Entwicklungsumgebung, einfache Ein/Ausgabe, Prozeduren und Funktionen mit Parametern (Formal- und Aktualparameter, Parameterübergabemechanismen), strukturierte Datentypen (ein- und mehrdimensionale Felder und Verbunde), Blockstruktur: Gültigkeitsbereiche von Bezeichnern und Lebensdauern von Variablen, Programmierstil. Einführung in die Programmierung
Übungen vertiefen den Stoff der Vorlesung durch praktische Beispiele. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fortgeschrittene Algorithmen und Datenstrukturen |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fortgeschrittene Algorithmen und DatenstrukturenDie Studierenden kennen die wichtigsten fortgeschrittenen Algorithmen, insbesondere für die Hashingbasierte Suche und das Suchens von Mustern. Sie kennen die Möglichkeiten der Dateibearbeitung. Und sie kennen das Konzept des datenorientierten Softwareentwurfs mittels attributierter Grammatiken, beherrschen damit auch die Grundlagen des Compilerbaus. Fortgeschrittene Algorithmen und Datenstrukturen
Fortgeschrittene Suchverfahren (Hashing-basierte Suche): Idee, Hash.-Funktionen, Hash-Tabellen, Kollisionen und Strategien zur Behandlung, Analyse. Mustersuche (Pattern-Matching mit den Verfahren Brute-Force, Knuth-Morris-Pratt, Boyer-Moore und Rabin-Karp), Anwendungen und Analysen. Arten von Dateien und Möglichkeiten zu deren Bearbeitung (insbesondere für Textdateien). Datenorientierter Programmentwurf: Grammatiken zur Beschreibung der Syntax von Eingabedaten, Grobstruktur von Übersetzungsprogrammen, Lexikalische Analyse, Syntaxanalyse im rekursiven Abstieg, attributierte Grammatiken und deren Implementierung durch Semantikanschluss. Fortgeschrittene Algorithmen und Datenstrukturen
Übungen vertiefen den Stoff der Vorlesung durch praktische Beispiele. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Objektorientierte Programmierung |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Objektorientierte ProgrammierungDie Studierenden besitzen detaillierte Kenntnisse des Paradigmas der objektorientierten Programmierung (OOP). Sie kennen die Ausprägung der dafür notwendigen Sprachkonstrukte in einer einfachen objektorientierten Programmiersprache und können diese zur Lösung noch relativ einfacher Aufgabenstellungen anwenden. Objektorientierte Programmierung
Darstellung der Entwicklung ausgehend von den Problemen der „konventionellen“ Programmierung, objektorientiertes Denkmodell, Objektbegriff, Klassifikation objektorientierter Programmiersprachen (prototyp- u. klassenbasierte), Klassenbegriff, Konzept der Realisierung von Klassen (von abstrakten Datenstrukturen über abstrakte Datentypen hin zu Klassen und Objekten), verschiedene Arten der Vererbung, statische und dynamische Objekte, Polymorphismus, statische und dynamische Bindung, Methodenaufruf und Methodensuche; abstrakte Klassen und Schnittstellen. Beispiele einfacher Klassenbibliotheken (etwa für heterogene Objektsammlungen). Objektorientierte Programmierung
Übungen vertiefen den Stoff der Vorlesung durch praktische Beispiele, gegen Ende des Semesters wird ein kleines Application Framework analysiert und erweitert. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Betriebssysteme |
1 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BetriebssystemeDie Studierenden kennen die technischen Grundlagen von Betriebssystemen, deren Komponenten und die grundlegenden Verfahren zur effektiven Verwaltung der vorhandenen Hardware. Einführung in die Betriebssysteme
Einführung in Linux: Verwendung des CLI zur Navigation im Dateisystem, Dateisystemobjekte, Linux-Berechtigungskonzept (Benutzerverwaltung und Berechtigungen), symbolische Links, Varianten der Software-Installation un-ter Linux, der Umgang mit virtuellen Maschinen und viele Beispiele für den flüssigen Umgang mit dem Betriebssystem Linux (Bewegen im Dateisystem, File Manipulationen, ausgewählte Kommandos für das Arbeiten mit Text und Dateien, etc.). Betriebssysteme
Einführung in die grundlegenden Konzepte von Multitasking-Betriebssyste-men: Booten/Bootloader, Interrupts (Arten von Interrupts, Ablauf), Prozess Management (Context Switch, Prozesszustände, Scheduling, Prozesskon-text), Memory Management (Ziele, Aufbau eines Prozessspeichers, Spei-cheradressierung, virtueller Adressraum, Page Table, Auswahlstrategien Paging), Dateisysteme und Aufbau und Architektur des E/A-Systems. Betriebssysteme
In der Übung werden die Inhalte vertieft, die aus dem ersten Semester bekannt sind. Zusätzlich wird eine breite Auswahl an Kommandos, die das Ar-beiten im Terminal vereinfachen, besprochen und anhand von praktischen Beispielen geübt. Außerdem werden reguläre Ausdrücke besprochen (sowie der Befehl grep), die Funktionsweise des Stream Editors (sed) und Konzepte der Shell-Programmierung in der Bash erlernt und vertieft. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Computernetzwerke |
3 | 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ComputernetzwerkeDie Studierenden verfügen über Kenntnisse über alle Ebenen technischer Netze. Sie kennen die funktionale Gliederung von Kommunikationsaufgaben in Schichten und deren Zusammenwirken. Weiters kennen sie technische Ausprägungen von Protokollen sowie deren Eignung für konkrete Anwendungs-bereiche. Sie können netzwerk-spezifische Fragestellungen gemäß dem Schichtenmodell einordnen und konkrete Lösungen ausarbeiten sowie bestehende Lösungen bewerten. Sie kennen aktuelle technische Ausprägungen mit den dazugehörigen Protokollen zu allen Schichten und wissen auch über Sicherheitsaspekte bei Netzwerken Bescheid. Weiters haben die Absolvent*innen Kenntnisse über Programmierschnittstellen für netzwerkbasierte Software. Computernetzwerke 1
Einführung, Schichtenmodelle, Übertragungsmedien, Rahmen und Prüf-summen, Topologien, Ethernet, Switches, TCP/IP: Protokolle (ARP, IPv4, IPv6, ICMP, UDP, TCP) und VLANs. Computernetzwerke 1
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte. Computernetzwerke 2
Firewalls, angewandte Kryptografie, Virtual Private Networks, Socket-Programmierung: Architektur von Client/Server-Programmen, verbindungslose und verbindungsorientierte Kommunikation, Architekturen für Server (Concurrent u. Iterativ), Multi-Protokoll-Server, APIs., Programmieren von Client/Server-Applikationen in C. Computernetzwerke 2
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Grundlagen der Computergrafik und Bildverarbeitung |
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Grundlagen der Computergrafik und BildverarbeitungDie Studierenden kennen die mathematischen Grundlagen der Computergrafik, wissen über die Repräsentationsmöglichkeiten digitaler Bilder und kennen die elementaren Algorithmen und Methoden zur digitalen Bildverarbeitung. Grundlagen der Computergrafik und Bildverarbeitung
Einführung in die Computergrafik: Farbmodelle und Farberkennung, Modellierung, Transformationen, Projektionen, Ausschneiden und Entfernen, Beleuchtung und Schattierung, Strahlenverfolgung (ray tracing), Rasterung, dynamische Szenen und Animationen, Szenegrafen. Grundlagen der Bildverarbeitung: Digitale Bilder, Farbräume, Abtasttheorem; Resampling, Interpolation; Kompression; Bildverbesserung: Glättungsfilter, Kantendetektion, Intensitätstransformation; Segmentierung: intensitätsbasierte Verfahren, Optimal Threshold, Region Growing, Morphologische Operatoren. Grundlagen der Computergrafik und Bildverarbeitung
Einführung in die Computergrafik: Farbmodelle und Farberkennung, Modellierung, Transformationen, Projektionen, Ausschneiden und Entfernen, Beleuchtung und Schattierung, Strahlenverfolgung (ray tracing), Rasterung, dynamische Szenen und Animationen, Szenegrafen. Grundlagen der Bildverarbeitung: Digitale Bilder, Farbräume, Abtasttheorem; Resampling, Interpolation; Kompression; Bildverbesserung: Glättungsfilter, Kantendetektion, Intensitätstransformation; Segmentierung: intensitätsbasierte Verfahren, Optimal Threshold, Region Growing, Morphologische Operatoren. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Einführung in die Informatik und Rechnerarchitektur |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Einführung in die Informatik und RechnerarchitekturDie Studierenden kennen die logischen und technischen Grundlagen der Informatik, beginnend bei Zahlendarstellungen, Kodierungsverfahren, Schaltalgebra, Rechnerkomponenten bis zu den Grundlagen der Rech-nerarchitektur. Die Studierenden verstehen den Aufbau und die prinzipielle Funktionsweise einfacher CPUs und kennen die Zusammenhänge zwischen Struktur, zeitlichen Abläufen und der Programmierbarkeit in Maschinensprache. Die Studierenden haben somit ein fundiertes Verständnis für Aufbau, Struktur und Funktionsweise der Rechner. Einführung in die Informatik und Rechnerarchitektur
Zahlensysteme und Zeichencodes, Schaltalgebra, kombinatorische Schaltungen, Aufbau einer exemplarischen ALU, sequentielle Schaltungen, endliche Automaten, Speicherzelle, Register und Hauptspeicher, Busse und Datenpfade, Aufbau einer mikroprogrammierten CPU, Einführung in die Mikroprogrammierung, Einführung in Assembler, Grundlagen der Rechnerarchitekturen, CISC/RISC, Supeskalare Architekturen, Pipelining. Einführung in die Informatik und Rechnerarchitektur
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte mit Hilfe von Simulatoren für Schaltungen und CPU Entwurf. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Daten Engineering 1: Datenmodellierung und Datenbankdesign |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Daten Engineering 1: Datenmodellierung und DatenbankdesignDie Studierenden besitzen Kenntnisse über Konzepte, Methoden und Sprachen des Datenbankentwurfs. Der Schwerpunkt liegt in der konzeptuellen und logischen Datenbankmodellierung. Sie kennen die Grundlagen der Modellierung (Modellbegriff, Phasen der Modellierung etc.) sowie der Modellierungstechniken und -methoden im Überblick (Datenmodellierung, Funktionsmodellierung, Prozessmodellierung, objektorientierte Modellierung) und können diese anwenden. Sie kennen die Grundlagen von relationalen Datenbanksystemen und sind in der Lage, den Entwurfsprozess mit konkreten Datenbankmodellen durchzuführen und einen konkreten Datenbankentwurf zu implementieren. Sie kennen die Architektur von Datenbanksystemen und Gründe für ihren Einsatz. Sie kennen die Grundlagen von Abfragesprachen (Relationenalgebra, Relationenkalkül, SQL), um interaktiv und aus Anwendungen Daten zu definieren, abzufragen und zu manipulieren. Datenmodellierung und Datenbankdesign
Einführung und Vorteile des Einsatzes von Datenbanksystemen, Grundlegende Konzepte (Datenmodell, Schema, Instanzen) und Komponenten von Datenbanksystemen, Architekturen von Datenbanksystemen und Datenunabhängigkeit, Grundlagen Modellierung (Modellbegriff, Techniken und Methoden), Datenbankmodelle, Entity-Relationship-Modell und UML, Relationenmodell und relationale Anfragemodelle (Relationenalgebra, Anfrage- und Tupelkalkül), Phasen des Datenbankentwurfs (kon-zeptueller, logischer, physischer Entwurf), relationaler Datenbankentwurf (funktionale Abhängigkeiten, Normalformen, Transformationseigenschaften), Grundlagen Datenbankdefinition, Datenbankanfragen und -manipulation mit interaktiven Abfragesprachen (SQL), Sichten, physische Datenorganisation, Zugriffsschutz in Datenbanksystemen. Datenmodellierung und Datenbankdesign
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Daten Engineering 2: Datenbanksysteme |
5 | 2.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Daten Engineering 2: DatenbanksystemeDie Studierenden besitzen detaillierte Kenntnisse über erweiterte SQL-Konzepte (rekursive Anfragen, OLAP-Operationen, prozedurale SQL-Erweiterungen, Sichten, Trigger etc.) und können diese praktisch in der Anwendungsentwicklung einsetzen. Sie kennen die Konzepte, Verfahren und Techniken der Mehrbenutzerkontrolle und Transaktionssteuerung und können diese in Datenbanksystemen praktisch anwenden. Sie kennen Optimierungsprinzipien und -mechanismen (Anfrageoptimierung, algebraische Optimierung etc.) sowie die Grundlagen der Datenorganisation und Zugriffsstrukturen. Sie kennen objektrelationale Datenbankkonzepte und können diese exemplarisch an einem ausgewählten Datenbanksystem praktisch anwenden und die Umsetzung beurteilen. Sie verfügen über grundlegende Kenntnisse über Data Warehousing bzw. mehrdimensionaler Datenmodellierung sowie OLAP sowie über alternative Datenbanktechnologien (bspw. NoSQL, In-Memory). Die Studierenden kennen die Grundlagen semistrukturierter Datenmodelle und können die Möglichkeiten und Grenzen der Anwendungsbereiche einschätzen. Sie besitzen detaillierte theoretische und praktische Kenntnisse über die Schemabeschreibungssprache XML. Sie kennen die mit XML verbundenen Technologien und können diese für die Definition, Anfrage, Verarbeitung und Speicherung von XML-Dokumenten praktisch einsetzen. Sie können moderne Speicherungsalternativen von XML-Dokumenten in relationalen (inklusive Integration mit SQL) und nativen Datenbanksystemen bewerten und praktisch an ausgewählten Systemen anwenden. Sie kennen alternative technologische Ansätze wie JSON. Datenbanksysteme
Erweiterte Entwurfsmodelle (Spezialisierung, Generalisierung, Aggregation, Komposition, mengenwertige und strukturierte Attribute etc.) und de-ren Abbildung auf das relationale Modell. Erweiterte Konzepte von SQL: SQL-Datendefinition (Tabellen, Integritätsbedingungen, referentielle Aktionen, Domänenkonzept, generierte/virtuelle Spalten, Schemaevo-lution und -modifikation, Grundlagen Data Dictionary etc.) SQL-Anfragen (skalare Funktionen, dreiwertige Logik, Bereichsselektion, Ungewissheitsselektion, Verbundarten, Unterabfragen, Korrelierte Abfragen, Prädikate für den Zugriff auf Mengen, Quantoren und Mengenvergleiche, Mengenoperationen, Aggregatfunktionen, Gruppierungen, Benannte Anfragen und Rekursion, Sequenzgeneratoren, OLAP-Operationen) SQL-Datenmanipulation (Merge, komplexe Datenmanipulation mit Unterabfragen, Datenmanipulation und Integritätsbedingungen) SQL-Views (materialsiert vs. virtuell, Sichtarten, Probleme bei der Transformation von Anfragen / Änderungen) SQL-Autorisierungskonzepte (Arten von Rechten, Vergabe und Rücknahme, Anlegen von Benutzern und Rollen) Prozedurale SQL-Erweiterungen und Verhaltensimplementierung (Einführung Anwendungsentwicklung, Stored Procedures/Functions, Pakete/Module, Cursor-Konzept, Ausnahmebehandlung). Integritätssicherung durch Trigger (Grundprinzipien, Trigger-Arten, aktives Verhalten). Objektrelationale Modelle (Grundlagen, objektrelationale Konzepte in SQL, Methoden in SQL, objektrelationale Datenbanksysteme). Mehrbenutzerkontrolle und Transaktionsmodelle (Konsistenzprobleme, Transaktionseigenschaften, Serialisierbarkeitstheorie, Fehlersicherheit, Transaktionsverwaltung, pessimistische und optimistische Verfahren, Hierarchisches Sperren und 2-Phasensperrprotokoll, Transaktionssteuerung in SQL). Wiederherstellung und Datensicherung (Protokollierungsarten, Recovery-Strategien). Dateiorganisation und Zugriffsstrukturen (Speichertechniken, Indexierte Dateien, Baumverfahren, Hashverfahren, Cluster-Bildung, Umsetzung in SQL). Optimierung (methodische Vorgangsweise, logische Optimierung, physische Optimierung mit Index und Cluster, Analyse von Ausführungsplänen) Grundlagen Data Warehousing und OLAP (Grundkonzepte, Multidim. Datenmodell, Snowflake- und Star-Schema, OLAP-Operationen in SQL. Konzepte und Daten- und Konsistenzmodelle von ausgewählten alternativen Datenbanksystemen (bspw. NoSQL, InMemory etc.). Datenbanksysteme
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte. Semistrukturierte Datenmodelle und XML
Grundlagen und Merkmale semistrukturierter Datenmodelle. Grundlagen und Merkmale von Auszeichnungssprachen: XML-Grundlagen Schemadefinition: DTDs, XMLSchema. Anfrage- bzw. Transformationssprachen: XPath, XSLT, XQuery. Verarbeitung: XML-APIs (SAX, DOM, StAX etc.), Grundlagen zu XML Data Binding. Speicherung: Abbildung von XML auf relationale Datenbanken, Abbildung von Datenbanken auf XML, Fokus auf SQL/XML:2011-14. Alternative semistrukturierte Datenmodelle: JavaScript Object Notation (JSON), JSON-Verarbeitung, Abbildung JSON auf Datenbanken (Oracle, NoSQL), Interoperabilität JSON und XML. Semistrukturierte Datenmodelle und XML
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 1.1: klassische Sprachen und Softwarebibliotheken |
10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 1.1: klassische Sprachen und SoftwarebibliothekenDie Studierenden besitzen detaillierte Kenntnisse über die Möglichkeiten und verfügen über Fertigkeiten in der imperativen Programmierung mittels C und der hybriden (imperative u./o. objektorientierte u./o. generische) Programmierung mittels C++. Sie kennen und beherrschen die am weitesten verbreiteten Entwicklungswerkzeuge dafür. Darüber hinaus besitzen sie detaillierte Kenntnisse über die Konzepte, die Bestandteile und die Möglichkeiten der Verwendung der Standardbibliotheken klassischer Programmiersprachen wie C und C++. Sie sind auch in der Lage, neue Bibliotheken von Grund auf zu entwerfen und bestehende zu erweitern. Softwarebibliotheken
Verhältnis von Programmiersprachen zu ihren Bibliotheken und Bedeutung der Bibliotheken für die Softwareentwicklung. Die Konzepte und Elemente der C-Standardbibliothek. Die Konzepte und Elemente der C++-Standardbibliothek, besonders die iostream-Klassenbibliothek und die Standard Template Library (STL) mit Behältern, Iteratoren und Algorithmen. Die string-Klassen als Sonderfall eines STL-Behälters. Die Konzepte und wichtigsten Teiler der BOOST-Bibliothek. Softwarebibliotheken
Die Übungen vertiefen die Vorlesung, indem praktische Beispiele behandelt werden. Softwareentwicklung mit klassischen Sprachen
Die Programmiersprache ANSI/ISO C für die imperative Programmierung mit besonderer Betonung der schwierigen/fehleranfälligen Konzepte, mit dem Ziel einen guten Programmierstil zu entwickeln. Kurze Wiederholung der Grundlagen der objektorientierten Programmierung aus dem Modul PRO2. Programmierung mit ANSI/ISO C++: Programmiersprache C++ für die imperative aber vor allem für die objektorientierte und generische Programmierung (mit Schablonen, templates), Konzept der Ausnahmen und deren Behandlung (exception handling). Softwareentwicklung mit klassischen Sprachen
Die Übungen vertiefen die Vorlesung, indem Beispiele neuer Algorithmen (z. B. für kombinatorische Suchprobleme) und Datenstrukturen (z. B. Graphen) in C und C++ umgesetzt werden. Die Übungen werden unter UNIX durchgeführt, wobei besonders auch auf Programmentwicklungswerkzeuge (großteils Open-Source-Software) eingegangen wird. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 2.1: moderne Plattformen und Softwaremuster |
8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 2.1: moderne Plattformen und SoftwaremusterDie Studierenden können mit den modernden Softwareentwicklungs-Plattformen Java von Sun und .NET von Microsoft (hier insbesondere mit der Sprache C#) objekt- und komponenten-orientiert Software entwickeln. Sie haben neben der Windows-Plattform auch UNIX-Derivate (insbesondere Linux) als Plattform für die Softwareentwicklung kennen gelernt und sind im Umgang mit mehreren, modernen, Entwicklungswerkzeugen und mit integrierter Entwicklungsumgebung geübt. Softwareentwicklung mit modernen Plattformen
Bestandteile einer modernen Programmierplattform Programmierung mit der Java-Plattform von Oracle: Konzepte (insbesondere virtuelle Maschine und Java-Bytecode), Programmiersprache Java, Zeichenketten, Behälter und Algorithmen, Serialisierung, Parallelität mit-tels mehrere Ausführungsfäden (threads), verteilte Anwendungen mittels remote method invocation (RMI), Grafische Benutzeroberflächen für Anwendungen und Applets mittels abstract windowing tootlkit (AWT) und Java FX, Zugriff auf relationale Datenbanken mittels Java database connectivity (JDBC) und einfache serverseitige Programmierung mittels Servlets. Programmierung mit der .NET-Plattform von Microsoft: Konzepte (virtuelle Maschine mit gemeinsamem Typsystem und gemeinsamer Zwischensprache für verschiedene Programmiersprachen), Programmiersprache C#, Behälter, grafische Benutzeroberflächen mittels Windows.Forms. Softwareentwicklung mit modernen Plattformen
Die Übungen vertiefen die Vorlesung, indem konkrete Beispiele mit den verschiedenen Technologien umgesetzt werden. Softwaremuster
Konzept und Hierarchie von Mustern (patterns) in der Softwareentwicklung (top-down): Architektur- und Entwurfsmuster sowie Ausdrucksweisen (idioms). Grundlagen für gutes objektorientiertes Design (Beispiele wichtiger Prinzipen wie des Liskov'schen Substitutionsprinzips). Ausdrucksweisen wie property, smart pointer und enum pattern (Java): Entwurfsmusterkatalog von Gamma et al. mit Erzeugungs-, Struktur- und Verhaltensmustern: Überblick über alle Muster und Behandlung der wichtigsten davon anhand von Java-Beispielen. Begriff „Architektur“ in der Software, Entwurf und Beschreibung von Architek-turen (z. B. mit den fünf Sichten: konzeptuelle Sicht, Implementierungssicht, Infrastruktursicht, Laufzeitsicht und Datensicht), Architekturen als Schichten-Modelle (mehrschichtige Architekturen, z. B. mit Präsentations-, Anwendungs- und Persistenzschicht), Architekturmuster. Softwaremuster
In der Übung synchron zur Vorlesung praktische Behandlung der Lehrinhalte. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 3: Komponenten-orientierte Softwareentwicklung |
6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 3: Komponenten-orientierte SoftwareentwicklungDie Studierenden kennen die wesentlichen Grundlagen komponentenorientierter Softwareentwicklung und können diese auf modernen Entwicklungsplattformen, insbesondere auf der .NET-Plattform (hier liegt der technologische Schwerpunkt dieser Lehrveranstaltung) anwenden. Auf konzeptioneller Ebene werden den Studierenden die wesentlichen Kenntnisse zum Entwurf und zur Implementierung mehrschichtiger Anwendungen vermittelt. Anhand eines größeren, zusammenhängenden Übungsprojekts wird die praktische Umsetzung dieser Konzepte trainiert und vertieft. Komponenten-orientierte Softwareentwicklung
Einführung in die Konzepte der komponentenorientierten Software-Entwicklung, Architektur von mehrschichtigen Anwendungen, Grundkonzepte der .NET-Technologie, Assemblies, .NET Core, Fortgeschrittene Konzepte von C# (Vererbung, Erweiterungsmethoden, Generics, Kovarianz/Kontravarianz, asynchrone Programmierung) , Basiskonzepte des .NET-Frameworks (Delegates, Attribute, Base-Class-Library, Streams, LINQ), Implementierung der Datenbankzugriffsschicht (Entwurfsmuster und Umsetzung mit ADO.NET), Entwicklung von Rich-Clients (Windows Presentation Foundation, Universal Windows Platform) und Web-Anwendungen (ASP.NET Core, Blazor), RESTful Web Services (konzeptionelle Grundlagen und Umsetzung mit ASP.NET Core, OpenAPI-Metadaten, Abgrenzung zu RPC). Komponenten-orientierte Softwareentwicklung
Einführung in die Konzepte der komponentenorientierten Software-Entwicklung, Architektur von mehrschichtigen Anwendungen, Grundkonzepte der .NET-Technologie, Assemblies, .NET Core, Fortgeschrittene Konzepte von C# (Vererbung, Erweiterungsmethoden, Generics, Kovarianz/Kontravarianz, asynchrone Programmierung) , Basiskonzepte des .NET-Frameworks (Delegates, Attribute, Base-Class-Library, Streams, LINQ), Implementierung der Datenbankzugriffsschicht (Entwurfsmuster und Umsetzung mit ADO.NET), Entwicklung von Rich-Clients (Windows Presentation Foundation, Universal Windows Platform) und Web-Anwendungen (ASP.NET Core, Blazor), RESTful Web Services (konzeptionelle Grundlagen und Umsetzung mit ASP.NET Core, OpenAPI-Metadaten, Abgrenzung zu RPC). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Web-Architekturen und Frameworks |
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Web-Architekturen und FrameworksDie Studierenden kennen die wichtigsten Konzepte zum Session-Management in Web-Anwendungen sowie Architekturen von Web-Anwendungen. Darüberhinaus sind sie in der Lage hochperformante Web-Anwendungen zu entwickeln und eine adäquate Sicherheit (z.B. mit Secure Socket Layer) zu gewährleisten. Zusätzlich besitzen sie Kenntnisse zu aktuellen Trends wie Asynchronous JavaScript (AJAX) sowie Rich Internet Applications (RIA). Web-Architekturen und Frameworks
HTTP 1 und 2 AJAX und Web Sockets, JavaServer Faces Single Page Applications (SPAs) am Beispiel von Angular Authentifizierung in Web-Anwendungen mit OAuth und OpenID Connect Progressive Web Applications (PWAs) SPAs mit React, Transport Layer Security / Secure Socket Layer Web-Sicherheit auf der Basis von Open Web Application Security Project (OWASP), Architekturen und Muster Web-Architekturen und Frameworks
In den Übungen synchron zur Vorlesung praktische Behandlung der Lehrinhalte, wobei besonders darauf geachtet wird, dass anhand einer größeren Software-Architektur (z.B. web-basiertes Buchgeschäft (vgl. Amazon) die diskutierten Konzepte selbständig umgesetzt werden. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 4: Enterprise-Technologien |
6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklung 4: Enterprise-TechnologienDie Studierenden kennen wesentliche Konzepte und Werkzeuge zur Realisierung von Enterprise-Anwendungen. Der Ausbildungsschwerpunkt liegt in der Vermittlung von theoretischen und praktischen Kenntnissen im Entwurf und in der Implementierung komplexer, mehrschichtiger Anwendungen. Sie kennen Werkzeuge und Frameworks, welche wesentliche Bereiche der Anwendungsentwicklung unterstützen (O/R-Mapping-Frameworks, leichtgewichtige Container-Frameworks). Softwareentwicklung mit Enterprise-Technologien
Grundlagen von Java-basierten Komponententechnologien (JavaBeans, OSGi/Declarative Services, Java Platform Module System), Konzepte und Anwendung von O/R-Mapping-Werkzeugen (Hibernate, JPA), Entwicklung mehrschichtiger Anwendungen mit Spring (Datenzugriff mit JDBC, JPA, Spring Data; Geschäftslogik: Transaktionsdefinition mithilfe von AOP; Entwicklung von REST APIs mit Spring Web MVC, Entwicklung und Betrieb von Web-Anwendungen mit Spring Boot). Softwareentwicklung mit Enterprise-Technologien
Grundlagen von Java-basierten Komponententechnologien (JavaBeans, OSGi/Declarative Services, Java Platform Module System), Konzepte und Anwendung von O/R-Mapping-Werkzeugen (Hibernate, JPA), Entwicklung mehrschichtiger Anwendungen mit Spring (Datenzugriff mit JDBC, JPA, Spring Data; Geschäftslogik: Transaktionsdefinition mithilfe von AOP; Entwicklung von REST APIs mit Spring Web MVC, Entwicklung und Betrieb von Web-Anwendungen mit Spring Boot). |
Integrative Fächer und praktische Projekte
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bachelorarbeit und -seminar, Wissenschaftliches Arbeiten |
7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bachelorarbeit und -seminar, Wissenschaftliches ArbeitenDie Studierenden sind in der Lage, eine wissenschaftliche Arbeit zu verfassen und zeigen diese Kompetenz bei der Erstellung der Bachelorarbeit. Wissenschaftliches Arbeiten
Lehrziel: Die Studierenden werden in die Lage versetzt, eine wissenschaftliche Arbeit (z.B. die Bachelorarbeit) zu verfassen. Wesentliche Lehrinhalte: - Methoden der Wissenschaft - Recherche, wissenschaftliche Datenbanken - Zitierregeln - Aufbau wissenschaftlicher Dokumente - Form wissenschaftliches Arbeitens Die Anwendung von Literaturverwaltungsprogrammen und technischer Textverarbeitungssoftware. Bachelorarbeit
Die Studierenden verfassen fachlich ergänzend zu einer anderen Lehrveranstaltung aus dem 4. oder 5. Semester (je nach gewähltem Thema) und mit Unterstützung durch die beiden anderen Lehrveranstaltungen in diesem Modul (Wissenschaftliches Arbeiten und Bachelorarbeitsseminar) ihre Bachelorarbeit. Die Studierenden werden bei der Erstellung der Bachelorarbeit individuell von einem / einer Lehrenden betreut. Bachelorarbeitsseminar
Das Bachelorseminar dient der Vorbereitung der Erstellung der schriftlichen Bachelorarbeiten. Die Studierenden kennen Anforderungen an wissenschaftliches Arbeiten insbesondere Anforderungen an die Schriftform. Sie stellen ihre Arbeitsfortschritte begleitend zur Erstellung ihrer Abschlussarbeit im Bachelorseminar zur Diskussion. Rahmenbedingungen der Erstellung der Bachelorarbeit, gemeinsame Reflexion in der Gruppe, Klärung von Problemen und Schwierigkeiten, Klärung von theo-retischen-inhaltlichen, methodischen und formalen Fragen. Dadurch, dass die Studierenden zweimal über ihre Bachelorarbeit vortragen und Feedback dazu bekommen, bereiten sie sich auch schon auf die Bachelorprüfung Ende des 6. Semesters vor. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Berufspraktikum |
20.5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BerufspraktikumDie Studierenden können das erlernte, theoretische Wissen in ihrem Praktikum bei einem realen Unternehmen umsetzen und vertiefen dadurch das Verständnis und vor allem den Anwendungsbezug des erlernten Wissens. Der Berufspraktikumsbericht dient im Wesentlichen zur Dokumentation des Berufspraktikums und fördert drüber hinaus die Schreibkompetenz. Berufspraktikum
Die Studierenden arbeiten vollzeitlich in einem Team in einem Unternehmen für mind. 12 Wochen (also mind. 60 Arbeitstage) an einem Softwareprojekt mit. Die Studierenden werden dabei nicht nur von einem/einer MitarbeiterIn des Unternehmens betreut, sondern auch von einem/einer Lehrenden des Studiengangs. Die Dokumentation des Berufspraktikums erfolgt im Rahmen des Berufspraktikumsseminars (s.u.) in Form einer Seminararbeit. Diese wird von dem/der selben Lehrenden betreut und beurteilt wie das Berufspraktikum. Berufspraktikumsseminar
Begleitend zum Berufspraktikum erfolgt die Dokumentation des Berufspraktikums in Form einer Seminararbeit. Diese wird von dem/der selben Lehrenden betreut wie das Berufspraktikum. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareprojekt Engineering |
4.5 | 2.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareprojekt EngineeringDie Studierenden können in Teams einfache, gebrauchstaugliche Software im Rahmen von Projekten ingenieurmäßig erstellen und Qualitätssicherung betreiben. Wichtig sind dabei weniger individuelle Fähigkeiten in Spezialbereichen als das Integrieren der Fähigkeiten mehrerer Personen zu einer produktorientierten Problemlösung im Team. Die Studierenden können informative Präsentationen (vor allem) über tech-nische Inhalte erstellen und diese selbstsicher vor Publikum halten. Die Studierenden können sich in ein Team einfügen, typische Probleme, die bei Teamarbeit auftreten können, erkennen und zu ihrer Lösung beitragen. Softwareprojekt-Engineering 1: Teamorientierte Softwareentwicklung
Begriffswelt in Softwareprojekten, Produkt- und Projektentwicklungszyklus, ingenieurmäßige Projektentwicklung, Aufbauorganisation (software-entwicklungsspezifische Organisationsformen), Ablauforganisation (Vorgehensmethoden, Software- und Projektlebenszyklus), Teamführung und Motivation, Konfigurationsmanagement, Qualitätssicherung, Dokumentation von Softwareprojekten. Softwareprojekt-Engineering 1: Teamorientierte Softwareentwicklung
Begriffswelt in Softwareprojekten, Produkt- und Projektentwicklungszyklus, ingenieurmäßige Projektentwicklung, Aufbauorganisation (software-entwicklungsspezifische Organisationsformen), Ablauforganisation (Vorgehensmethoden, Software- und Projektlebenszyklus), Teamführung und Motivation, Konfigurationsmanagement, Qualitätssicherung, Dokumentation von Softwareprojekten. Teambuilding und Präsentation
Erstellung von individuellen, kreativen und strukturierten Präsentationen. (Wie erfolgt Wissensvermittlung durch unterschiedliche, abwechslungsreiche Elemente, um die Aufmerksamkeit des Publikums, durch mehrere Wahrnehmungskanäle, zu steigern?) Selbstbewusstes, authentisches Auftreten, Umfangreiches und detailliertes Feedback sowie Videoanalyse. Probleme in Projektteams, gruppenpsychologische Phänomene, Prozessanalyse, Rollen im Team, Zusammenarbeit in selbstorganisierten Teams, Teamphasen und passende Führung, Konfliktdefinition, Arten von Konflikten, Eskalationsstufen, apokalyptische Reiter, gewaltfreie Kommunikation, Konfliktanalyse, persönlicher Umgang mit Konflikten, Konfliktlö-sungstrategien, Win-Win-Situationen erzeugen, das Harvard-Konzept, Konfliktmoderation Softwareprojekt-Engineering 2: Skalierbare Prozessmodelle
Klassischer Projektablauf und dessen Skalierbarkeit, moderne Modelle und Methoden der Softwareprojekt-Entwicklung, Anforderungsanalyse, Projekt-planung, Risikomanagement, projektseitige Unterstützung bei der Realisierung (Design, Implementierung, Testen), Produkteinführung, Betrieb, Wartung und Pflege Softwareprojekt-Engineering 2: Skalierbare Prozessmodelle
Klassischer Projektablauf und dessen Skalierbarkeit, moderne Modelle und Methoden der Softwareprojekt-Entwicklung, Anforderungsanalyse, Projekt-planung, Risikomanagement, projektseitige Unterstützung bei der Realisierung (Design, Implementierung, Testen), Produkteinführung, Betrieb, Wartung und Pflege |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bachelorprüfung |
1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BachelorprüfungDie Studierenden sind in der Lage, Ihr Wissen im Rahmen einer abschließenden Prüfung gem. § 16 Abs. 1 FHStG vor einem facheinschlägigen Prü-fungssenat präsentieren und haben somit auch die Kompetenz mit schwierigen Prüfungssituationen umzugehen. Bachelorprüfung
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklungs-Prozesse |
4 | 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwareentwicklungs-ProzesseDie Studierenden können das im Modul SPE erarbeitete Grundverständnis für die ingenieurmäßige Softwareentwicklung zu adaptierbaren Prozessen für die Softwareentwicklung integrieren. Sie haben ein vertieftes Prozessverständnis und kennen Vorgehensalternativen sowie Möglichkeiten der Prozessverbesserung anhand von Studienbeispielen und Praxisfällen. Sie kennen geeignete Modellierungssprachen (UML) sowie Werkzeuge dafür im Detail und können auf besonders wichtige Entwicklungsaspekte – Softwarequalität allgemein und Usability im Besonderen – eingehen. Moderne Entwicklungsprozesse und Werkzeuge
Moderne iterativ-inkrementelle („agile“) Softwareentwicklung und deren Prozesse, Änderungen in Organisation, Werkzeugen und Dokumentation, deter-ministische und empirische Prozessmodelle, Value-based Software Engineering, Kanban, Beispiele agiler Vorgehensweisen, Workshop zu Scrum, bewährte Praktiken anhand von Fallbeispielen aus Studienbetrieb und Praxis, Large-Scale-Agile Vorgehensweisen (LeSS, SAFe, „Spotify“-Modell etc.), Ausblick/Trends im agilen Vorgehen. Moderne Entwicklungsprozesse und Werkzeuge
Grundlagen und Anwendung moderner Werkzeuge, die in agilen Software-Entwicklungsprojekten (z.B. mit Scrum) verwendet werden: zentrale und dezentrale Versionsverwaltungssysteme (z.B. Subversion und Git), Werkzeuge zur Verwaltung von Aufgaben in agilen Softwareprojekten (z.B. GitLab, Jira Software, Azure DevOps). Softwareentwicklung mit UML
Modellbegriff und Modellierungsbegriff, Grundlagen objektorientierte Analyse und Entwurf, UML-Grundlagen (Historie, Spracharchitektur, Metamodell etc.), objektorientierte Analyse und Modellierung anhand von UML (Klassendiagramm, Anwendungsfalldiagramm, Zustandsdiagramm, Sequenzdiagramm, Aktivitätsdiagramm, Verteilungsdiagramm), weiterführende Themen (UML-Profil, Diagrammaustausch etc.) Im Rahmen einer durchgehenden Fallstudie werden in Teams von ca. drei Studierenden ausgewählte UML-Diagrammarten im Kontext einer iterativ-inkrementellen Vorgehensweise angewendet und weiterführende Entwurfsthemen (bspw. Design Patterns) diskutiert. Die zu entwickelnden UML-Diagramme sollen einen durchgängigen Entwurf von Softwaresystemen ermöglichen. Software-Entwicklungsprozesse - Testautomatisierung und Continuous Delivery
Grundlagen zum Testen von Software (Testarten, Modul-tests/Integrationstests/Systemtests, Testpyramide). Prinzipien und Muster zum Schreiben von Modultests und testbarer Software, Test Driven Deve-lopment. Unit-Test- und Mocking-Frameworks. Testautomatisierung, Maß-zahlen und Reporting. Grundlagen zu Continuous Integration/Delivery/Deployment. Build-Automatisierung und CI/CD-Pipelines. Software-Entwicklungsprozesse - Testautomatisierung und Continuous Delivery
Grundlagen zum Testen von Software (Testarten, Modul-tests/Integrationstests/Systemtests, Testpyramide). Prinzipien und Muster zum Schreiben von Modultests und testbarer Software, Test Driven Deve-lopment. Unit-Test- und Mocking-Frameworks. Testautomatisierung, Maß-zahlen und Reporting. Grundlagen zu Continuous Integration/Delivery/Deployment. Build-Automatisierung und CI/CD-Pipelines. Usability Engineering
Gebrauchstauglichkeit: Normen und Messung/Prüfung, Interaktionsaspekte und -konzepte, Gestaltungsprinzipien nach der Wahrnehmungspsychologie, Ergonomie, Benutzerschnittstellendesign, sensuelle und sensomotorische Ein- und Ausgabegeräte und -konzepte, Barrierefreiheit, Interaktion mit mobilen Systemen (Wearable Computing, Ubiquituous Computing), Web-Usability, Software Postures, Interaction Design Patterns, Usability Engineering. Usability Engineering
Gebrauchstauglichkeit: Normen und Messung/Prüfung, Interaktionsaspekte und -konzepte, Gestaltungsprinzipien nach der Wahrnehmungspsychologie, Ergonomie, Benutzerschnittstellendesign, sensuelle und sensomotorische Ein- und Ausgabegeräte und -konzepte, Barrierefreiheit, Interaktion mit mobilen Systemen (Wearable Computing, Ubiquituous Computing), Web-Usability, Software Postures, Interaction Design Patterns, Usability Engineering. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Software-Studienprojekt 1 |
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Software-Studienprojekt 1Die Studierenden können das in SPE, SPR und den weiteren Modulen erlernte theoretische Wissen in Kooperationsprojekten mit realen Auftraggebern umsetzen und vertiefen dadurch das Verständnis und vor allem den Anwendungsbezug des erlernten Wissens. Dazu realisieren die Studierenden im 4. und 5. Semester in Teams ein umfangreiches Softwareprojekt (mit einem Gesamtaufwand von ca. einem Personenjahr) mit einem realen Auftraggeber. Software-Studienprojekt 1
Realisierung des ersten Teils eines umfangreichen Projekts mit realem Auftraggeber (aus Industrie/Wirtschaft oder Forschung) im Team, Durchlaufen definierter Projektphasen, Üben der Vorgehensmethoden und -modelle sowie der Erstellung aller relevanten Projekt(prozess)dokumente und Produktdokumente. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Software Studienprojekt Teil 2 |
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Software Studienprojekt Teil 2Die Studierenden können das in SPE, SPR und den weiteren Modulen erlernte theoretische Wissen in Kooperationsprojekten mit realen Auftraggebern umsetzen und vertiefen dadurch das Verständnis und vor allem den Anwendungsbezug des erlernten Wissens. Dazu realisieren die Studierenden im 4. und 5. Semester in Teams ein umfangreiches Softwareprojekt (mit einem Gesamtaufwand von ca. einem Personenjahr) mit einem realen Auftraggeber. Software-Studienprojekt 2
Realisierung des zweiten Teils eines Projekts mit realem Auftraggeber (aus der Industrie/Wirtschaft oder Forschung) im Team, Durchlaufen definierter Projektphasen, Üben der Vorgehensmethoden und -modelle sowie der Erstellung aller relevanten Projekt(prozess)dokumente und Produktdokumente. Mit dem Ziel des Abschlusses des Full-Cycle-Projekts. |
Wahlfächer und Vertiefungen
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wahlfach und Scripting |
2 | 18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wahlfach und Scripting(zu Scripting:) Studierende haben Kenntnisse über Scripting-Technologien sowie deren Anwendung in Web-basierten Systemen. Sie haben einen Überblick über aktuelle Script-Sprachen und kennen eine davon im Detail (PHP in der Vertiefung WEB und JavaScript in der Vertiefung BIZ). (zum Wahlfach:) Die Studierenden kennen (abhängig ihrer Auswahl) die wichtigsten (*) Konzepte von mobilen Rechensystemen, (*) der Open-Source-Softwareentwicklung oder der Softwareentwicklung (*) für Android (mit Java) bzw. (*) für iOS (mit Swift). Scripting
In der Vorlesung werden nach der Erläuterung der Grundlagen von HTTP und Client/Server-Architekturen die Möglichkeiten zur Erzeugung von dynamischen Inhalten und die Realisierung von zustandsbehafteten Web-Anwendungen (z. B. mit View State und Sessions) behandelt. Dann werden die wesentlichen Konzepte von Scriptsprachen (z. B. Interpretation und dynamische Typisierung) erläutert bevor mit PHP (für die Vertiefung WEB) bzw. JavaScript (für die Vertiefung BIZ) ein Beispiel einer Scriptsprache im Detail behandelt wird. Zusätzlich werden verschiedene Möglichkeiten des Datenbankanschlusses (z. B. an MySQL) besprochen. In den Übungen werden nach dem Aufsetzen eines Servers und der Untersuchung von Request und Response die in der Vorlesung behandelten Script-Sprachen für die Lösung eines Übungsprojekts (z. B. Bookshop) eingesetzt. Einführung in die Softwareentwicklung mittels Android
„Im Zentrum der Lehrveranstaltung steht die Anwendungsentwicklung unter Verwendung des mobilen Betriebssystems Android. Neben den grundlegenden Anwendungsbausteinen (Activity, Service, Receiver, …) konzentriert sich die LVA auf die verschiedenen zur Verfügung stehenden APIs. Insbesondere werden Themen wie UI-Gestaltung, Persistenz, Kommunikation, Ortung, Sensorik und Web-Technologien theoretisch und praktisch behandelt.“ Einführung in die Softwareentwicklung mittels Android
Die Übung ergänzt die Vorlesung und zeigt anhand der Entwicklung kleinerer Lösungen für Aufgabenstellungen und eines Abschlussprojekts die Möglichkeiten der Softwareentwicklung für Android auf. iOS-Programmierung mit Swift
Anwendungsentwicklung unter Verwendung des mobilen Betriebssystems iOS mit der Programmiersprache Swift. Der Fokus liegt nach einer Erläuterung der historischen Entwicklung auf der Darstellung der neuen Sprachkonstrukte von Swift: •mächtige Aufzählungen, •Typsystem (Wert- und Referenzdatentypen), •Optionen, •Protokolle, •Erweiterungen, •generische Programmierung, •Speicherverwaltung und •funktionales Programmieren welche die Grundlage für die Entwicklung von Anwendungen auf den Apple-Plattformen bilden. Die Programmierschnittstellen der Plattform (APIs) werden danach angeschnitten. iOS-Programmierung mit Swift
Die Übung ergänzt die Vorlesung und zeigt anhand der Entwicklung kleinerer Lösungen für Aufgabenstellungen und eines Abschlussprojekts die Möglichkeiten der Softwareentwicklung für iOS-Geräte auf. Mobile Computing Techniken
Die Vorlesung deckt folgende Themenbereiche ab: Einführung in „Mobile Rechen-Systeme“ Entwicklung mobiler Systeme mit .NET Compact Framework und Java Micro Edition Context-Aware Systems/Location-Based Services Geographic Positioning System (GPS) Geographic Information Systems (GIS) Radio Frequency Identification (RFID) Mobile Computing Techniken
In der Übung erfolgt synchron zur Vorlesung die praktische Behandlung der Lehrinhalte, wobei besonders darauf geachtet wird, dass anhand diverser Aufgabenstellungen wichtige Konzepte und Architekturen mobiler Systeme (im Speziellen aber Kontext-Sensitiver Systeme) software-technisch umgesetzt werden. Open Source in der Softwareentwicklung
Wesentliche Ziele der Lehrveranstaltung Open Source in der (kommerziellen) Anwendungsentwicklung sind: Vermittlung der Grundidee von Open Source Definitionen, Abgrenzungen und Umfeld von "Open Source" Rechtliche Aspekte bei der (kommerziellen) Softwareentwicklung mit Open Source Software Open Source Softwareentwicklung: Wesen, Prozess; Abgrenzung zu anderen Methoden Open Source Strategien im Unternehmen Open Source in der Softwareentwicklung
Die Übung ergänzt die Vorlesung und zeigt anhand der Entwicklung einer kleinen Anwendung, welche Aufgaben mit OpenSource Software verteilt über den gesamten Entwicklungszyklus erledigt werden können. Dabei wer-den folgende Tools wie z. B.: Eclipse (+Plugins), JUnit, Ant, CVS/Subversion, Struts, Hibernate, Jakarta Commons, Log4J, Apache, Tomcat, watij bugzilla, LaTeX, Coverage behandelt. Python-Programmierung
Python als universelle, dynamisch typisierte Scriptsprache. Besonderheiten der Syntax und Semantik (insbesondere hinsichtlich der dynamischen Typisierung). Python-Entwicklungsumgebungen (wie Spyder und PyCharm). Verwendung der wichtigsten Elemente der Python-Standardbibliothek. Beispiele typischer Anwendungen von Python für die Auswertung von Daten und deren Visualisierung mit Python-Bibliotheken (z. B. NumPy und MatPlot-Lib) sowie einfache KI-Anwendungen (z.B. mit scikit-learn). Python-Programmierung
Python als universelle, dynamisch typisierte Scriptsprache. Besonderheiten der Syntax und Semantik (insbesondere hinsichtlich der dynamischen Typisierung). Python-Entwicklungsumgebungen (wie Spyder und PyCharm). Verwendung der wichtigsten Elemente der Python-Standardbibliothek. Beispiele typischer Anwendungen von Python für die Auswertung von Daten und deren Visualisierung mit Python-Bibliotheken (z. B. NumPy und MatPlot-Lib) sowie einfache KI-Anwendungen (z.B. mit scikit-learn). Wahlfach
Wahlfach: Digitale Bildverarbeitung - (Die Lehrveranstaltung umfasst Grundlagen der digitalen Bildverarbeitung mit Schwerpunkt auf elementare Algorithmen zur Bildverbesserung, Bilderkennung und Archivierung. Der methodische Aufbau der Vorlesung beginnt mit Grundlagen zum Informationsgehalt in Bildern, Auswirkungen der Digitalisierung (Sampling-Theorem) und führt über Methoden der Darstellung zu den Farbräumen. Die Bildverbesserung wird anhand von Intensitätstransformationen (linear, histogrammbasiert), Maskenoperationen und statistischen Filtern eingeführt. Einfache Methoden der Segmentierung werden durch komplexere Verfahren, wie die Mathematischen Morphologie und topologische Methoden erweitert. Grundlegende Methoden der 3D Visualisierung werden vorgestellt. Die Bildkompression wird auf Grundlage der Informationstheorie und Varianten der Redundanz aufgebaut, es werden verlustfreie (Huffman, runlength) und verlustbehaftete Verfahren (Transform-Coding) vorgestellt.) oder Wahlfach: Mobile Computing - Die Vorlesung deckt folgende Themenbereiche ab: Einführung in mobile Rechen-Systeme, Entwicklung mobiler Systeme mit Microsoft .NET Compact Framework und Java Micro Edition, drahtlose Netzwerktechnologien (Bluetooth, GPRS, UMTS, etc.), Geographic Positioning System (GPS), Indoor Localization (WLAN, Ultrasound, Infrared, Bluetooth, etc.), Context-Aware Systems/Location-Based Services, Geographic Information Systems (GIS), Radio Frequency Identification (RFID). In der Übung erfolgt synchron zur Vorlesung die praktische Behandlung der Lehrinhalte, wobei besonders darauf geachtet wird, dass die diskutierten Konzepte selbständig umgesetzt werden. Besonderes Augenmerkt wird dabei auf effiziente Kommunikationsformen, ressourcensparende Implementierungen sowie angemessene Benutzbarkeit gelegt. Wahlfach: Open Source Softwareentwicklung - (Wesentliche Ziele der Lehrveranstaltung Open Source in der (kommerziellen) Anwendungsentwicklung sind: Vermittlung der Grundidee von Open Source Definitionen, Abgrenzungen und Umfeld von "Open Source", Rechtliche Aspekte bei der (kommerziellen) Softwareentwicklung mit Open Source Software, Open Source Softwareentwicklung: Wesen, Prozess; Abgrenzung zu anderen Methoden Open Source Strategien im Unternehmen) Wahlfach
In der Übung erfolgt synchron zur Vorlesung die praktische Behandlung der Lehrinhalte. |
Wahlpflichtige Vertiefung 1: Web Engineering - WEB
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Vertiefung: Web Engineering 1 |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 1Die Studierenden besitzen grundlegende Kenntnisse, Fähigkeiten und Fertigkeiten für den Entwurf und die Entwicklung von Web-Seiten und Web-basierten Anwendungen, mit Fokus auf deren Benutzerschnittstellen. Sie sind in der Lage, gleichermaßen auf die Konzeption (Architektur- und De-sign-Aspekte) als auch auf die technische Umsetzung (Engineering-Aspekt) von Web-Anwendungen einzugehen Web-Design und -Programmierung
Konzept von Auszeichnungssprachen und deren Interpretation; Hyptertext Markup Language (HTML), insbesondere Tabellen, Formulare und Grafiken; Cascading Style Sheets (CSS); Layout-Techniken, Responsive Design, Animationen und Effekte; Clientseitige Web-Programmierung mittels JavaScript; HTmL5, APls und Browsertechnologien; Umgang mit entsprechenden Werkzeugen, wie HTML-Editoren und Interpretierern. Web-Design und -Programmierung
Konzept von Auszeichnungssprachen und deren Interpretation; Hyptertext Markup Language (HTML), insbesondere Tabellen, Formulare und Grafiken; Cascading Style Sheets (CSS); Clientseitige Web-Programmierung mittels JavaScript; Umgang mit entsprechenden Werkzeugen, wie HTLM-Editoren und Interpretierern. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 2 |
3.5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 2Die Studierenden kennen ausgesuchte Inhalte der Mathematik mit Bezug zum Web und zu Web-Anwendungen, vor allem Graphen und Algorithmen darauf (im Sinne von: das Web als großer Graph). Sie haben die Fähigkeit, Methoden der Graphentheorie auf Problemstellungen der Informatik und des Software Engineerings anzuwenden. Die Studierenden haben Grundkenntnisse zu ERP-Systemen und können diese Anhand von konkreten Fällen auch umsetzen. Angewandte Mathematik für das Web
•Grundbegriffe der Graphentheorie inkl. Beispiele spezieller Graphentypen, Unterstrukturen, Gewichtung, Adjazenzmatrizen, Wege, Pfade, Euler, Hamilton, Isomorphismus etc. •Elementare Graphenalgorithmen (Dijkstra, A*, Kruskal) inkl. Beispiele und Begründung •Weitere Anwendungen der Graphentheorie •Modellierung des WWW (Google Page Rank...) •P vs. NP mit Beispielen (SAT, Graphcoloring) und Grundbegriffe der theoretischen Informatik •Berechenbarkeit Angewandte Mathematik für das Web
•Grundbegriffe der Graphentheorie inkl. Beispiele spezieller Graphentypen, Unterstrukturen, Gewichtung, Adjazenzmatrizen, Wege, Pfade, Euler, Hamilton, Isomorphismus etc. •Elementare Graphenalgorithmen (Dijkstra, A*, Kruskal) inkl. Beispiele und Begründung •Weitere Anwendungen der Graphentheorie •Modellierung des WWW (Google Page Rank...) •P vs. NP mit Beispielen (SAT, Graphcoloring) und Grundbegriffe der theoretischen Informatik •Berechenbarkeit |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 3 |
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 3Die Studierenden besitzen Kenntnisse der Konzepte von Virtualisierungsansätzen und Containertechnologien Sie kennen die wichtigsten Vertreter davon (vor allem docker) und können diese auswählen, installieren, administrieren und verwenden. Die Studierenden kennen die Konzepte verteilter und paralleler Software-systeme und können die Herausforderung bei der Implementierung solcher Systeme durch Einsatz entsprechender Techniken meistern. Die Studierenden kennen die Anforderungen an multimediale Benutzeroberflächen im Web sowie die wichtigsten Möglichkeiten zur der Realisierung solcher Systeme. Verteilte und parallele Softwaresysteme
Einführung in die Entwicklung paralleler und verteilter Programme (Motivation, Anwendungsgebiete, Moore’s Gesetz, TOP500 Liste), Theoretische Grundlagen (Speed Up, Effizienz, Amdahls Gesetz, Gustafsons Gesetz, Konsequenzen), Überblick über parallele Hardwarearchitekturen (Flynns Taxonomy, Pipelining, Shared Memory Systeme, Distributed Memory Systeme), Herausforderungen beim Erstellen nebenläufiger Programme (Deadlocks, Livelocks, Race Conditions, Overhead, Synchronisation), Entwicklung nebenläufiger bzw. paralleler Applikationen für .NET, OpenMP Verteilte und parallele Softwaresysteme
Übungen vertiefen den Stoff der Vorlesung durch praktische Beispiele. Virtualisierungstechnologien
Einführung und Motivation: •Gegenüberstellung von Virtualisierung und Containern •Begriffe Hypervisor, Paravirtualisierung, Container •Motivation für den Einsatz von Containern mit Hilfe der Begriffe Micro Services, DevOps, Continuous Delivery/Deployment Docker als Container-Implementierung: •Docker-Überblick •Architektur (Engine, Client, Images Container, Registry, API) •Docker command workflow für Images und Container •Technologische Grundlagen (Linux cgroups, namespaces, union file system) •Daten in Containern (Named volumes, Host mounted volumes) •Container Networking (Container <-> Host, Container <-> Container), Software Defined Networks •Automatisiertes Erstellen von Images sowie die Einbindung in ein Continuous Integration/Delivery System (Dockerfile) •Docker für Windows/Docker für Mac, docker-machine •Container Orchestrierung mit docker-compose •Clustering mit docker-swarm (Überblick) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 4 |
1.5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Web Engineering 4Die Studierenden kennen ausgesuchte, moderne Technologien und Werkzeuge für den Bau von Web-Anwendungen und können diese einsetzen. Web Engineering - Aktuelle Themen
Behandlung jeweils aktueller Themen aus dem Gebiet des Web Engineerings (z.B. aktuelle JavaScript-Frameworks für grafisch Benutzeroberflächen, neue Programmiersprachen für Web-Anwendungen wie etwa Elm). |
Wahlpflichtige Vertiefung 2: Business Software - BIZ
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Vertiefung: Business Software 1 |
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 1Die Studierenden kennen die Prinzipien, Konzepte sowie den Aufbau von ERP-Systemen. Sie erlangen ein Überblickswissen, wie ausgewählte Geschäftsprozesse durch Standardlösungen von ERP-Systemen und e-Business-Systemen abgebildet sind. Darüber hinaus sind die Studierenden in der Lage, diese Geschäftsprozess mit ERP-Systemen und e-Business-Systemen selbständig abzubilden, anzupassen und zu erweitern. Sie kennen Methoden zur Visualisierung von Daten und sind in der Lage anschauliche Business-Charts, Dashboards zu erstellen. Business Software
Die wesentlichen kaufmännischen Anwendungssysteme im Industriebetrieb und grundsätzliche Überlegungen zu Typen, Zielen, Konzeptionsregeln und besonderen Problemen der integrierten Informationsverarbeitung und deren Architekturen. Prinzipien und De-Facto Standards für ERP-Systeme, typische Geschäftsprozesse in ERP-Systemen – respektive bei Systemen für KMU (z. B. Mesonic WinLine). Evaluierung und Auswahl von ERP-Systemen, Einführung von ERP-Systemen; Customizing und Erweiterung; organisatorische Rahmenbedingungen. Business Software
In der Übung werden Inhalte von ERP, Webshop-Lösungen, CRM aber auch neue Inhalte wie Informationsvisualisierung (Charting, Dashboarding) im Business-Kontext flexibel behandelt werden. Hands-on soll dabei im Vordergrund stehen. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 2 |
3.5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 2Aufbauend auf dem Grundlagenwissen über unternehmensbezogene Standardsoftware und e-Business-Systeme verfügen die Studierenden über weitere Kenntnisse größerer Systeme (ERP-Perspektive am Beispiel von SAP). Die Studierenden kennen die Architektur, den Aufbau sowie die wichtigsten Module von SAP. Weiters kennen die Studierenden die unterschiedlichen Rollen und Pha-sen in einem klassischen ERP-Einführungsprojekt. Sie sind in der Lage, eine bestehende ERP-Lösung zu analysieren, zu customizen und gegebenenfalls mit Standard-Werkzeugen und -Methoden zu erweitern. Die Studierenden verstehen die analytische Nutzung der Daten für betriebliche Entscheidungen (Business Intelligence) und können diese auch umsetzen können. Data Warehousing
Grundlagen analytischer Informationssysteme; Data Warehousing; Extract-Transform-Load (ETL); Aufbau von Faktentabellen, Dicing & Sli-cing; OLAP, ROLAP, MOLAP; Reporting. Enterprise-Information-Systems
Aufbauend auf den Grundlagen des Moduls BIZ1 (Business Software) werden diese Geschäftsprozesse nun im Rahmen eines komplexen ERP-Systems abgebildet. Abbildung und Nutzung von Geschäftsprozessen mittels einer entsprechenden Unternehmenssoftware, z.B. SAP / ERP. Im Rahmen der Lehrveranstaltung wird die Architektur eines ERP-Systems beschrieben, im Speziellen die Begriffe System, Mandant und Systemlandschaft. Weiters gibt die Lehrveranstaltung einen Überblick über die wichtigsten Softwaremodule innerhalb eines ERP-Systems. Die Lehrveranstaltung gibt einen Überblick über die unterschiedlichen Rollen in einem ERP-Einführungsprojekt und die Aufgaben, die sie im Projekt zur erfüllen haben. Weiters werden die unterschiedlichen Phasen eines klassischen ERP-Projektes vorgestellt. Im nächsten Teil der Lehrveranstaltung werden die wesentlichen Werk-zeuge präsentiert, die für die technische Analyse von bestehenden ERP-Softwarelösungen notwendig sind. Danach folgt die Einführung in die Implementierung von Erweiterung des ERP-Systems. Dies erfolgt mithilfe der Neuanlage oder der Erweiterung von Repository-Objekten (beispielsweise Data Dic-tionary-Objekte und ABAP-Reports) und der Implementierung von neuer Funktionalität (Report-Programmierung). Dabei werden auch Konzepte und Lösung zur Erfassung und Produktivsetzung von Repository- und Customizing-Änderungen vorgestellt. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 3 |
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 3Die Studierenden kennen die Motivation und die grundlegenden Konzepte der DevOps Kultur und verstehen den Prozess der Softwareentwicklung und auslieferung als einen Produktionsprozess. Sie wissen, wie dieser Prozess überwacht, gesteuert und verbessert werden kann und können Werkzeuge zur Automatisierung des Tests, zur Auslieferung von Software und zur Überwachung des Betriebs von Software konfigurieren, integrieren und anwenden. Die Studierenden können Standard-Lösungsverfahren für die ausgewählten Planungsaufgaben in einer vorgegebenen Programmiersprache selbständig implementieren und die Ergebnisse betriebswirtschaftlich interpretieren DevOps
Motivation und grundlegende Konzepte der DevOps Kultur Softwareentwicklung und -auslieferung als Produktionsprozess Messung und Steuerung der Softwareproduktion Werkzeuge und Methoden zur Automatisierung der Softwareauslieferung (Continuous Deployment) Automatisierung von Systemtests Infrastructure as Code Logging, Tracing und Monitoring Logistik und Operations Research 1
Ausgewählte Planungsaufgaben aus dem Umfeld von ERP-Systemen mit besonderem Fokus auf Produktionsbetriebe (z.B. Produktionsprogramm-planung, Materialbedarfs- und Bestandsplanung, Losgrößen- bzw. Be-stellmengenplanung, Ablauf- und Reihenfolgeplanung, Fließbandtaktung) Implementierung von Standard-Lösungsverfahren für die ausgewählten Planungsaufgaben in einer vorgegebenen Programmiersprache (z.B. Java, C#, Python) bzw. Modellierung der Planungsaufgaben als MIP und Lösung mittels CPLEX Entwicklung (einfacher) eigenständiger Lösungsverfahren auf Basis der Algorithmen des HeuristicLab |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 4 |
1.5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vertiefung: Business Software 4Die Studierenden kennen die maßgeblichen logistischen Rahmenbedingungen zur Planung von Distributions- und Beschaffungsnetzwerken und können unter Anwendung vereinfachter Methoden konkrete Planungsaufgaben lösen. Die Studierenden können auf Basis konkreter Daten Tourenplanungsaufga-ben berechnen und die resultierenden Touren visualisieren. Die Studierenden können für ausgewählte Planungsaufgaben Standard-Lösungsverfahren selbständig programmieren und das HeuristicLab problem-adäquat einsetzen. Logistik und Operations Research 2
Modelle der Planung logistischer Netzwerke (Modelle „in der Ebene“, p-Median-Problem, Warehouse-Location-Problem) Transport- und Tourenplanung (TSP, VRP, CVRPTW) Beladungsprobleme (z.B. Knapsack, bin-packing) Implementierung von Standard-Lösungsverfahren für die ausgewählten Planungsaufgaben in einer vorgegebenen Programmiersprache (z.B. Java, C#, Python) bzw. Modellierung der Planungsaufgaben als MIP und Lösung mittels CPLEX Lösungen auf Basis von Algorithmen des HeuristicLab Visualisierung logistischer Netzwerke (z.B. mit GIS) Betriebswirtschaftliche Konzepte und Rahmenbedingungen der Beschaf-fungs- und Distributionslogistik |
Organisation und Management Fächer
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Betriebswirtschaftslehre |
3 | 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BetriebswirtschaftslehreDie Studierenden kennen die Grundlagen wirtschaftlicher Zusammenhänge und Strukturen. Die Studierenden verfügen damit über ein Denkgerüst, in das sie nachfolgende Inhalte insbesondere an der Schnittstelle zwischen Informatik und Wirtschaft in der ökonomischen Dimension sicher einordnen können. Vor allem verstehen sie die grundlegenden Bedeutungsinhalte wirtschaftlicher Kenngrößen gerade im Dienstleistungsunternehmen sicher und dauerhaft einordnen und einschätzen zu können. Betriebswirtschaftslehre und Rechnungswesen 1
Betriebswirtschaftslehre: Volkswirtschaftliche Grundlagen; Stakeholder und Shareholder, Unternehmerische Ziele und Leistungsbereiche (F&E; Beschaffung, Produktion, Absatz); Unternehmensrechtliche Grundlagen. Rechnungswesen: Rolle des Rechnungswesens im Unternehmen; Ziele und Aufgaben der Doppelten Finanzbuchhaltung, Grundlegende Systematik, einfache Buchungsfälle; Abschlussarbeiten, Grundlagen der Bilan-zierung; Bilanzanalyse; Fallbeispiele aus IT-Unternehmen; Einnahmen-Ausgaben-Rechnung (StartUp-Szenario). Betriebswirtschaftslehre und Rechnungswesen 2
Betriebswirtschaftslehre: Unternehmensführung; Strategisches/Operatives Management; Methoden und Techniken der Unternehmensführung; Finanzierung und Investition, Verfahren der Investitionsrechnung, vom Business Plan zum Business Model Canvas. Rechnungswesen: Ziele und Aufgaben der Kostenrechnung; Systeme der Kostenrechnung; Kostenarten, -stellen und -trägerrechnung; Kalkulation; Deckungsbeitragsrechnung, Plankostenrechnung, Abweichungsanalysen, Fallbeispiele aus IT-Unternehmen. E-Business
Internet als Enabling Technology für neue Geschäftsmodelle; ökonomische Auswirkungen, B2n-Modelle und deren Umsetzung, Referenzmodelle aus den Bereichen E-Government, E-Markets, E-Procurement, B2n Fulfillment, B2B Integration. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Geschäfts- und Informationsmanagement |
2 | 1 | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Geschäfts- und InformationsmanagementAufbauend auf dem erworbenen betriebswirtschaftlichen Basiswissen werden die – gerade für Softwareingenieure wichtigen – Geschäftsprozesse thematisiert (Business Cases), dadurch sind die Studierenden in der Lage, Geschäftsprozesse zu identifizieren nach verschiedenen Kriterien zu analysieren und mit praxiserprobten Methoden und Werkzeugen zu modellieren, deren Performance zu messen, zu simulieren und zielorientiert zu verbessern. Sie kennen die Möglichkeiten von Process-Mining, um Aussagen über die realen Geschäftsprozesse tätigen zu können. Auf dieser Grundlage können sie in der Folge aus der übergeordneten Sicht des IT-Managements adäquate Informationssysteme (z. B. ERP-Systeme) einsetzen, insbesondere was deren strategische Planung, deren Einsatz im Rahmen einer ganzheitlichen Infrastruktur, deren Evaluierung, Auswahl, Anpassung bzw. Erweiterung betrifft. Außerdem verfügen sie über die rechtlichen Grundlagen für die-sen Kontext in einem praxisorientierten Rahmen. Geschäftsprozessmanagement
Defizite funktionsorientierter Ablauf- und Aufbauorganisation in einem Unternehmen, Bedeutung und Begründung einer prozessorientierten, integrierten Sichtweise, ausgewählte typische Geschäftsprozesse als konkreter Betrachtungshintergrund, Identifizierung und Definition von Geschäftsprozessen; Modellierung, Analyse und Simulation von Geschäftsprozessen; Erhebungs-und Visualisierungsmethoden (EPK, BPMN 2.0); sinnvolle Einsatzmöglichkeiten für IT-Werkzeuge; Implementierung von Geschäftsprozessen mit Hilfe von Prozessmanagement-Systemen. IT-Recht
Einführung in die Grundbegriffe, Verträge, ABGB, Software als Rechtsob-jekt, Software als Sache, Eigentum/Besitz/Innehabung, Eigentum als Sachenrecht, Typenzwang, geistiges Eigentum, Software, Urheberrecht bzw. Verwertungsrechte, Softwareverträge, Übertragung/Werknutzungsrechte, Entwicklersicht, Softwareschutz, Anwendersicht, andere Variationen des Softwareschutzes, Patent, Gebrauchsmuster, Wettbewerbsrecht, berufsrechtliche Voraussetzungen, Vertragsarten für Softwareerstellung/Überlassung, Softwarefehler, Gewährleistung, Garantie, Haftung, Produkthaf-tung Informationsmanagement
Informationswirtschaft; Management der Informations-Infrastruktur; Management der Informationstechnologie; operative/administrative/strategische Aufgaben des Informationsmanagements; Produktionsfaktor Information; Gestaltung der Informationsfunktion im Unternehmen; Nutzen von Information; Kosten/Nutzen-Überlegungen; IT-Controlling; IT-Aufbauorganisation; Outsourcing; Informationssystem-Architektur als Generalbebauungsplan des Unternehmens, Methoden, Werkzeuge und Modelle zur Gestaltung von IS-Architekturen (Angebotslegung, Ausschreibung, Verkaufsverhandlung, …) |
Studienfördernde Fächer
1. | 2. | 3. | 4. | 5. | 6. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kommunikatives Englisch und Englisch Präsentation |
1.5 | 1.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kommunikatives Englisch und Englisch PräsentationDie Studierenden zeichnen sich durch folgende Fähigkeiten sowohl in englischer Sprache als auch im Bereich Sozialverhaltens aus: Teamarbeit; Umgang mit Fachliteratur; mündliche und schriftliche Arbeit von fachbezogenen Inhalten; überzeugtes, selbstsicheres Auftreten in alltäglichen Situationen wie z. B. Vorstellungen von sich und Anderen, Small-Talk, Vertreten der eigenen Meinung, Streitgespräche, Einbringen und Bearbeitung von Beschwerden; sowie Beherrschung von Vorstellungsgesprächen sowohl von der Arbeitergeber als auch von der Arbeitnehmerseite ausgesehen. Die Studierenden kennen Präsentationstechniken und können dieses in verschiedener Art und Weisen anwenden. Kommunikatives Englisch
Hauptsächlich – aber nicht exklusiv – durch Simulationen, Rollenspiele, Gruppenarbeit, Arbeit in Paaren, Präsentieren, Recherchieren, Debatten sowie Video- bzw. Audioarbeit werden grammatikalische Schwerpunkte aufgefrischt und vertieft, der fachspezifische bzw. alltägliche Wortschatz erweitert und wichtige Redewendungen vermittelt, um eine Verbesserung des schriftlichen und mündlichen Ausdrucks zu erreichen. Themenbereiche sind, unter anderem, Bewerbungsunterlagen, Einstellungsgespräche, sowie aktuelle fachspezifische und allgemeine Themen – wobei viele Themen mit unterschiedlichen Standpunkten eingebaut werden, um kritisches Reflektieren, professionelles Verhalten, und Verständnis für andere Meinungen zu üben. Technisches Englisch und Präsentation
Das Erlernte aus der LVA Kommunikatives Englisch wird vertieft, der fachspezifische bzw. alltägliche Wortschatz erweitert und wichtige Redewendungen vermittelt, um eine Verbesserung des schriftlichen und mündlichen Ausdrucks zu erreichen. Themen aus den anderen Modulen des Studiums Software Engineering werden von den Studierenden individuell bearbeitet und präsentiert, dann innerhalb der Gruppe kommentiert und diskutiert. Das Ziel ist es, fachbezogene Inhalte überzeugend auf Englisch vorzutragen und moderne, interaktive Prä-sentationstechniken zu beherrschen, eigene Leistungen kritisch zu reflektieren und konstruktives Feedback zu geben. |
Kontakt
E-MailE se@fh-hagenberg.at
TelefonT +43 5 0804 22000