Schwerpunkte

Die Grundlage für eine dazu notwendige Beweglichkeit in der Problemlösung wird durch eine flexible und offene Ausbildung gelegt. Zunächst durch die Vermittlung fundierter technischer Grundlagen (Algorithmen, Datenstrukturen, Programmierung, Netzwerktechnologie etc.). Schon nach den ersten beiden Semestern werden diese Grundlagen vor dem Hintergrund konkreter Projekte stetig in die Praxis umgesetzt.

Gleichzeitig erfolgt eine anwendungsbezogene Vertiefung, die sich in spezifischen Vertiefungsmodulen (auch als Studienzweige bezeichnet) niederschlägt. Sowohl der Aufbau einer betriebswirtschaftlichen Grundausbildung als auch die gezielte Weiterentwicklung der sozialen Kompetenz runden das Ausbildungskonzept ab.

Programmierung und Softwareentwicklung

Die Ausbildung in den Bereichen Programmierung und Softwareentwicklung bilden den Kern des Studiengangs Software Engineering.

Die Programmierausbildung startet mit einer Einführung und geht dann in die Behandlung der wesentlichen Konzepte, vor allem Algorithmen und Datenstrukturen über. Dazu wird Pascal verwendet, eine einfache Programmiersprache, die sich für die Lehre gut eignet. Im Zentrum stehen aber Programmiersprachen und Entwicklungsplattformen, die in der Praxis von Relevanz sind. Nach einer kurzen Behandlung von C geht es intensiv um C++, weil das eine gute Basis für die neueren Technologien bietet: zuerst wird Java und im Anschluss .NET mit C# ausführlich behandelt. Natürlich haben auch HTML, CSS und JavaScript sowie PHP für Web-Anwendungen ihren Platz im Curriculum.

Für die professionelle Softwareentwicklung sind nicht nur Programmiersprachen und Bibliotheken mit ihren Entwicklungsumgebungen notwendig, sondern auch Modelle, Methoden und Werkzeuge, die den Prozess und die Teamarbeit unterstützen. Deshalb spielen die Unified Modelling Language (UML), Werkezuge für Versionsverwaltung und Taskmanagement, Testautomatisierung sowie Continuous Integration (CI) und Continuous Delivery (CD) eine wichtige Rolle im Curriculum und so wie später im Berufsfeld.

Roman Schacherl, softaware

"Ich absolvierte eine HTL und konnte bereits programmieren – aber dieser Studiengang hat mein Wissen noch einmal deutlich erweitert. Exzellente Vortragende, die praxisnah unterrichten und einen wertschätzenden Umgang pflegen. Fast alle unsere Mitarbeiter*innen haben diesen Studiengang absolviert – und profitieren heute noch tagtäglich von den gelernten Inhalten. Prädikat: äußerst empfehlenswert."

Datenbanken

Für die meisten Softwaresysteme ist nicht nur das Thema Datenverarbeitung sondern das damit einhergehende Verwalten und Organisieren von Daten entscheidend. Ein weiterer Kernpunkt der Ausbildung dreht sich daher um das Thema Datenbanken. Durch Kombination von Vorlesungs- und Übungsteilen über mehrere Semester ist dieser möglicherweise komplex anmutende Stoff jedoch auch ohne Vorwissen gut zu erlernen. Die Datenmengen sind derzeit in vielen Bereichen schon sehr groß, aber sie wachsen ständig weiter an. Daher ist eine solide Ausbildung für den professionellen Umgang damit unumgänglich.

Im Software-Engineering-Studium werden allgemeine Methoden zur Erstellung von soliden Datenmodellen, z.B. als Entity-Relationship-Diagramm oder mit Hilfe der Unified Modelling Language (UML), behandelt. Daraus werden dann relationale Modelle abgeleitet, die in bekannten Datenbank-Management-Systemen wie z.B. Oracle in realistischen Szenarien erprobt werden können. Das geschieht etwa mit Hilfe der Structured Query Language (SQL), mit der Aufgaben wie z.B. rekursive Abfragen oder der Umgang mit Mehrbenutzerszenarien behandelt wird. Damit kann nicht nur die Integrität und Qualität der Datenverarbeitung und -speicherung erhöht werden, sondern auch die Verarbeitungsgeschwindigkeit, z.B. durch Normalisierung und den Einsatz von Indizes. Dabei ist der Fokus aber nicht auf eine spezielle Implementierung gerichtet. Natürlich wird auch die notwendige Theorie z.B. zum Thema Transaktionsmanagement behandelt und kann daher auf beliebige Datenbanksysteme angewendet werden.

Nach der Grundausbildung für den Umgang mit Datenbanken werden diese Aspekte in höheren Semestern mit der Softwareentwicklung verknüpft - dabei spielen Datenbankzugriffe mit JDBC oder die objektrelationale Abbildung (OR-Mapping) eine wichtige Rolle. Darüber hinaus werden moderne Formen für semi-strukturierte Daten behandelt, z.B. JSON oder XML.

Dr. Verena Geist, Key Researcher, Software Competence Center Hagenberg

"Die FH Hagenberg bietet ein ausgewogenes Studienangebot, das ein sehr angenehmes und kollegiales Studentenleben, verständnisvolle und kompetente Lehrende sowie individuelle Förder- und Forderangebote miteinander vereint und somit für mich eine ideale Basis für mein Studium „Software Engineering“ darstellte. Theoretische und praxisorientierte Ausbildungsschwerpunkte mit zahlreichen Praktika - auch im Ausland - sowie gute Einblicke in die Forschung vermitteln wesentliche Kompetenzen, die für ein gelungenes späteres Berufsleben garantieren."

Betriebssysteme und Computernetzwerke

Anwendungsprogramme benötigen neben einem Computer auch ein Betriebssystem. Moderne Software ist häufig vernetzt organisiert, meist über das Internet. In diesem Schwerpunkt erhalten Studierende das für Software-Ingenieur*innen notwendige Basiswissen über Betriebssysteme und Computernetzwerke.

Das Fach Betriebssysteme arbeitet zunächst anhand von Linux wesentliche Konzepte aus Sicht der Anwender*innen – also für die tägliche Arbeit am Computer -- heraus wie z. B. Verwaltung der Benutzer*innen, Dateimanipulation oder das Arbeiten mit Dateien. Anschließend werden grundlegende Konzepte von Multitasking-Betriebssystemen (z. B. Bootloader, Prozess- und Memory-Management und Dateisysteme) behandelt.

Für das Verständnis komplexer, verteilter Software sind Kenntnisse über die darunter liegenden Kommunikationsmechanismen wichtig. Die Ausbildung im Bereich der Computernetzwerke beginnt zunächst mit Schichtenmodellen, Kommunikationsprotokollen und deren Beispiele auf hardware-nahem Niveau. Es folgt eine detaillierte Betrachtung der einzelnen Elemente des TCP/IP-Protokoll-Stacks, welche dann die Grundlage für die gehobenen Themen wie Firewalls und Virtual Private Networks bildet. Auch die Client-/Server-Programmierung auf dem klassischen Socket-Interface ist enthalten.

Julian Lettner, Software Engineer, Apple

"Das Software Engineering-Studium in Hagenberg hat für mich viele Türen geöffnet. Zuerst zu einem PhD-Studium an einer US-Universität in Kalifornien und daraus folgend zu Jobangeboten von den Top IT-Unternehmen im Silicon Valley. Darüber hinaus denke ich immer gerne an meine Studienzeit in Hagenberg zurück und schätze die gewonnen Freundschaften, die meine Kolleg*innen und ich, bis heute pflegen."

Formale Methoden

Formale Grundlagen bilden in jeder technischen Disziplin das Fundament, auf dem weiterführende Inhalte aufbauen. Für das Software Engineering werden vergleichsweise wenige mathematische Kenntnisse benötigt, wohl aber Fähigkeiten, die durch eine Auseinandersetzung mit der Methode der Mathematik geschult werden können: Abstraktes Denken, Formalisieren, Argumentieren, Analysieren und Spezifizieren von Problemstellungen, und viele mehr. Im Studiengang Software Engineering ist das Ziel der Ausbildung im Bereich der formalen Methoden somit die Vermittlung von Kompetenzen in analytischem Denken und formalem Problemlösen. Mathematische Inhalte wie Logik und Algebra dienen als Themengebiete, anhand derer obengenannte Fähigkeiten von Student*innen - unabhängig von mathematischen Vorkenntnissen - gezielt aufgebaut und gefördert werden.

Josef Mader-Kreiner, IT-Architekt, Raiffeisen Software GmbH

"Als IT-Architekt konzipiere ich komplexe Softwaresysteme und setze dafür modernste Technologien, Konzepte und Vorgehensmethoden ein. Ein umfangreiches IT-Know-how ist für diese Aufgabe unerlässlich. Das Software-Engineering-Studium in Hagenberg bildet hierfür eine ideale Basis, von der ich persönlich sehr in meinem Beruf profitiere."

Projekt-Engineering

Die Studierenden lernen, wie man Projekte erfolgreich in agilen Teams abwickelt. Dabei werden alle Projektphasen durchlaufen, von der Erhebung der Projektziele bis zur Lieferung des Produkts an den Auftraggeber. Ergänzend wird Wissen über Projektorganisation, Team Building und Social Skills vermittelt.

Dabei setzen die Studierenden ihr Wissen praktisch um und vertiefen es in realen Projekten mit Auftraggebern aus Industrie und Wirtschaft, die über mehrere Semester laufen. Darüber hinaus wird auch gelernt, wie man, ausgehend von kleinen Teams, Agilität in größeren Unternehmen umsetzt und Bereiche wie Risikomanagement und Qualitätsmanagement einbezieht.

Christine Carpella, IT-Leiterin Diakoniewerk

"Das Studium an der FH Hagenberg hat mir umfassendes IT-Wissen vermittelt und mich sowohl auf ein Doktoratsstudium an der JKU als auch auf das Berufsleben vorbereitet. Nach 13 Jahren in der Forschung und vier Jahren in einem Industriebetrieb unterstütze ich nun als IT-Leiterin des Diakoniewerks die Digitalisierung im Sozial- und Gesundheitsbereich. Der FH Hagenberg bleibe ich verbunden und erinnere mich gerne an die Studienzeit zurück, bei der ich Gleichgesinnte, Freunde und auch meinen Partner kennen lernte."

Betriebswirtschaftslehre und Sozialkompetenz

Betriebswirtschaftslehre

Die Studierenden erfahren hier die Grundlagen wirtschaftlicher Zusammenhänge und Strukturen. Vor dem Hintergrund einer volkswirtschaftlichen Betrachtung der Rahmenbedingungen wird ein Denkgerüst erarbeitet, in das unternehmensbezogene Abläufe und Messgrößen sicher und dauerhaft eingeordnet werden können.

Grundlagen des Rechnungswesens (Finanzbuchhaltung, Kostenrechnung) mit besonderem Schwerpunkt auf IT- bzw. Dienstleistungsunternehmen sowie darauf aufbauend Geschäfts­prozess- und Informationsmanagement vertiefen die Business-Kompetenz.

Sozialkompetenz

Die Unternehmensführung unterliegt einem starken Wandel, anstelle von hierarchischer Leitung stehen vor allem in IT-Unternehmen und jungen Start-Ups intensive Zusammenarbeit im Mittelpunkt. Holocracy, Agilität, Growing Mindset sind aktuelle Schlagwörter und erfordern von jeder/m Einzelnen/m ein hohes Maß an Eigenverantwortung, Kritikfähigkeit und die Bereitschaft zur Selbstreflexion. In agilen Teams sind alle gefordert, die Ergebnisse werden permanent auf den Prüfstand gestellt. Außergewöhnliche Resultate und Inspirationen werden nur durch Vertrauen, Motivation und gemeinsam gestaltete Innovationen erreicht.

In unterschiedlichen Settings mit den neuesten Methoden wird trainiert, Mitmenschen zu erreichen und sich empathisch auszutauschen, aber auch Aufmerksamkeit zu erzeugen und überzeugend aufzutreten. Durch umfangreiches und detailliertes Feedback wird Sicherheit gewonnen und jede/r kann ihr/sein persönliches Verhalten reflektieren und verbessern. 

Klemens Duchlbauer, IT | PRO - Consulting & Software GmbH

"Eine meiner Hauptaufgaben, neben der Teamleitung, ist es große Softwaresysteme vom Backend bis zum mobilen Endgerät zu designen und zu entwickeln. Softwarearchitektur spielt hier neben der Codequalität eine entscheidende Rolle. Mit dem Studium Software Engineering in Hagenberg wird dafür eine wichtige Basis geschaffen. Fundiertes Wissen in Theorie und Praxis sind ein sehr gutes Fundament, um den Herausforderungen einer modernen Softwareentwicklung gewachsen zu sein."