Der Bachelorstudiengang Informatik hat eine Regelstudienzeit von 7 Semestern und lässt sich in verschiedene Phasen einteilen.

Die Semester 1 und 2 bilden den 1. Studienabschnitt. Hier werden die wichtigsten Grundlagen für ein erfolgreiches Informatik-Studium gelegt. Wichtige Fächer sind z.B. Mathematik (mit einem Schwerpunkt auf algebraischen Strukturen), Grundlagen der Informatik, strukturiertes und objektorientiertes Programmieren und eine Einführung in die Theoretische Informatik. Im 2. Studienabschnitt folgen Pflichtmodule und Wahlpflichtfächer mit folgenden Möglichkeiten zur Vertiefung:

  • Machine Learning
    (Berufsbilder: Data Scientist, ML Engineer, AI Solution Engineer)
  • IT-Sicherheit
    (Berufsbilder: IT Security Engineer, Full Stack Developer, IT Security Officer)

Im 5. Semester ist ein Praxissemester vorgesehen.

Praxisbezug des Studiengangs

Das Studium der Informatik an der Ohm ist stark praxisorientiert. Praxisorientierte Lehre sowie angewandte Forschung zeichnen die Fakultät Informatik aus. Mit der Industrie der Metropolregion Nürnberg als Heimat für kreative IT mit ihrer Vielzahl von kleinen, mittelgroßen und großen Unternehmen ist die Fakultät eng vernetzt. Zwei Drittel der Abschlussarbeiten und viele IT-Projekte finden in Kooperation mit externen Partnern statt.

Ein Praxissemester außerhalb der Hochschule ist fester Bestandteil des Studiums. Wenn Sie sich entscheiden, das Studium dual zu absolvieren, können Sie das Studium außerdem mit intensiven Praxisphasen oder sogar einer Berufsausbildung verknüpfen.

Das 5. Semester ist ein Praxissemester. Die Studierenden absolvieren ein Praktikum von 20 Wochen Dauer in einem Unternehmen. Sie werden dabei von einem Professor der Fakultät Informatik betreut. Ein Praxisseminar, in dem die Studierenden ihre Erfahrungen austauschen können, sowie eine Lehrveranstaltung zu Projektmanagement runden das Praxissemester ab.

Lernziele

Kenntnisse erlangen in der Projektarbeit oder im Servicegeschäft von Informatik- oderMedien-Dienstleistern bzw. in Informatik- oder Medienbereichen. Alternativ sammelnvon Erfahrungen in der Projektarbeit in Forschungs- und Entwicklungsbereichen fürInformations-,  Kommunikations- und Softwaretechnologien.

Inhalt

Verantwortliche Durchführung von Projekten/Teilprojekten der Softwareentwicklungoder verantwortliche Übernahme von Aufgaben/Teilaufgaben bei der Abwicklung vonInformatik-Dienstleistungen

Hinweis Module

Die folgenden Modulbeschreibungen geben Ihnen einen Eindruck von den konkreten Studieninhalten. Die für jedes Semester aktuelle und vollständige Modulbeschreibung samt Detailinformationen finden Sie im Modulhandbuch. Siehe unten auf dieser Seite.

Module im 1. bis 2. Semester

Lernziele

Kenntnis und Verständnis der Repräsentation von Daten wie ganze und reelle Zahlen und Zeichenketten; Verständnis der mathematischen Grundlagen von Rechenoperationen auf diesen Repräsentationen und selbständige Anwendung; Befähigung zur  Konvertierung zwischen Repräsentationen mit besonderem Gewicht auf dem Binär-, Oktal- und Hexadezimalsystem.
Analyse von logischen Schaltungen; Verständnis der mathematisch-logischen Grundlagen; selbständige Gestaltung von Logikschaltungen auf Basis eines vorgegebenen Verhaltens; Verständnis für den grundlegenden Entwurf von Computersystemen; Analyse und Erstellung von Maschinensprache- und Assemblerprogrammen.

Inhalt

  • Repräsentation positiver ganzer Zahlen in verschiedenen Stellenwertsystemen
  • Negative ganze Zahlen in verschiedenen Stellenwertsystemen
  • Reelle Zahlen im Standardformat (IEEE-754)
  • Rechenoperationen und Konvertierungen
  • Boolesche Algebren
  • Boolesche Ausdrücke und Funktionen
  • Schaltnetze und Schaltwerke
  • Allgemeine Computerarchitektur
  • Maschinensprache am Beispiel der MIPS-Architektur
  • Assemblersprache der MIPS-Architektur

Lernziele

Verständnis grundlegender Konzepte formaler Sprachen,  der Automatentheorie sowie formaler Grammatiken und ihrer Zusammenhänge. Einordnung formaler Sprachen in die Chomsky-Hierarchie. Fähigkeit zur Abgrenzung regulärer und nicht-regulärer Sprachen. Analysieren von Automaten und Chomsky-Grammatiken. Formulieren von Grammatiken, regulären Ausdrücken und Automaten für formale Sprachen. Anwenden von Transformationen zur Überführung dieser Repräsentationen formaler Sprachen in äquivalente Modelle. Kenntnis des Berechenbarkeitsbegriffs und ausgewählter Entscheidbarkeitsprobleme.

Inhalt

Endliche Automaten und formale Sprachen, Chomsky-Grammatiken und -Hierarchie, Kellerautomaten, Turingautomaten, Determinismus vs. Nichtdeterminismus, Berechenbarkeit und Entscheidbarkeit

Lernziele

Begriffe und Strukturen aus verschiedenen grundlegenden Gebieten der Mathematik (Zahlen, Aussagenlogik, Mengen, Relationen und Funktionen) definieren und verstehen.
Methoden der Kombinatorik zur Lösung von Zählproblemen einsetzen.
Begriffe und Aussagen der elementaren Zahlentheorie aufstellen und Verständnis für spätere Anwendungen (insbesondere in der Kryptographie) erlangen.
Rechenverfahren im Umgang mit komplexen Zahlen einüben und durchführen.
Grundlegende Begriffe der Algebra kennen und in ihrer Bedeutung verstehen.

Inhalt

Zahlen, Aussagenlogik und Mengen, Relationen und Funktionen, Kombinatorik, Elemente der Zahlentheorie, komplexe Zahlen, Algebra (Gruppen, Ringe, Körper)

Lernziele

Grundlegende Begriffe und Strukturen der Linearen Algebra und der Analysis definieren und verstehen.
Methoden des Rechnens mit Vektoren, Matrizen, Folgen und Reihen einüben und durchführen.
Rechenverfahren der Differential- und Integralrechnung benutzen und in ausgewählten Problemstellungen anwenden.
Differenzen- und Differentialgleichungen verstehen und Lösungsmethoden durchführen.

Inhalt

Lineare Algebra, Folgen und Reihen, Differential- und Integralrechnung, Differenzengleichungen, Differentialgleichungen

Lernziele

Grundlegende Datenstrukturen unter Einbeziehung externer Speichermedien kennen; zugehörige Algorithmen und ihre Zusammenhänge verstehen sowie diese korrekt für konkrete Beispiele ausführen können; die Aspekte, Korrektheit, Komplexität und Effizienz von Algorithmen sowie übliche Entwurfsprinzipien kennen; einfache Algorithmen analysieren und ihren Aufwand mathematisch beschreiben und kategorisieren bzw. deren Korrektheit beweisen können; Algorithmen hinsichtlich ihres Aufwands einordnen und vergleichend bewerten können.

Inhalt

Die Aspekte Korrektheit, Komplexität und Effizienz von Algorithmen sowie die Entwurfsprinzipien für Algorithmen.
Inhalt sind unter anderem die Themen Sortieren und Suchen, Suchbäume, Hashverfahren, Organisation von Wörterbüchern und Graphalgorithmen.
Umsetzung ausgewählter Algorithmen auf Basis einer Programmiersprache.

 

Lernziele

Bei Abschluss des Lernprozesses wird der erfolgreiche Studierende in der Lage sein, die wesentlichen Eigenschaften - wie Rechnerstrukturen einschließlich Prozessoren, Peripheriegeräten, Speicherorganisation, Caching, Superskalarität, Pipelining, Multithreading, Cache-Kohärenz und Verbindungsstrukturen, Mikroarchitekturen und Instruktionssatz-Architekturen von Prozessoren, Bewertung der Leistungsfähigkeit und Fehlertoleranz von Rechnersystemen sowie Nutzung von Parallelität - von Computerarchitekturen im Detail zu verstehen, zu analysieren und zu entwerfen.

Inhalt

  • Darstellung wichtiger Rechnerstrukturen, einschließlich Prozessoren, Peripherie-
    geräten, Speicherorganisation, Caching, Superskalarität, Pipelining, Multithreading,
    Cache-Kohärenz und Verbindungsstrukturen.
  • Mikroarchitekturen und Instruktionssatz-Architekturen von Prozessoren.
  • Bewertung der Leistungsfähigkeit und Fehlertoleranz von Rechnersystemen.
  • Nutzung von Parallelität.

Lernziele

Kenntnis wesentlicher Konzepte von Programmiersprachen und von Programmierparadigmen. Kenntnis der Übersetzung von prozeduralen und objektorientierten Programmiersprachen sowie ihrer Ausführung in modernen Laufzeitsystemen. Fähigkeit, Programme in unbekannten Programmiersprachen zu verstehen und Bezüge zu bisherigen Kenntnissen herzustellen. Fähigkeit, die Eignung unterschiedlicher Programmierparadigmen und Programmiersprachen für verschiedene Anwendungsaufgaben zu untersuchen und zu beurteilen.

Inhalt

  • Syntaxanalyse, semantische Analyse, Codegenerierung
  • Werte, Typen, Namen, Bindungen, Speicherabbildung, Kontrollfluss, Typsysteme,
    prozedurale, Daten- und generische Abstraktion.
  • Prozedurale, objektorientierte und funktionale Programmierung, Skript-Sprachen.
  • Virtuelle Maschinen, Typsysteme zur Laufzeit, Komponenten, Speicherverwaltung,
    Code-Sicherheit

Lernziele

Vertiefung der Fähigkeiten, die in Programmieren I erworben wurden.

Inhalt

Fortsetzung der Lehrinhalte von Programmieren I:
dynamische Datenstrukturen, insbesondere verkettete Listen, Operatoren, Nutzung
von Klassenbibliotheken, Ausnahmen und ihre Behandlung.

Lernziele

Fähigkeit, gesprochenes und geschriebenes Englisch mit allgemeinsprachlichen und fachlichen Inhalten zu verstehen, sowie sich in der Fremdsprache mündlich und schriftlich korrekt auszudrücken

Inhalt

    Fachbezogene Texte;
    allgemeine sowie fachbezogene Korrespondenz und Konversation;
    Erweiterung und Festigung der Vokabelkenntnisse;
    Umgang mit Hilfsmitteln

    Lehrziele

    Die Erkenntnis, dass das eigene Fachgebiet nicht isoliert existieren kann, sondern dem Lebensumfeld zugehört

    Inhalt

      Als allgemeinwissenschaftliche Wahlpflichtfächer können alle an der Hochschule angebotenen Lehrveranstaltungen gewählt werden, soweit sie nicht Pflichtfächer oder fachwissenschaftliche Wahlpflichtfächer des Studiengangs Informatik sind beziehungsweise in der Ausschlussliste des Studiengangs geführt werden.

      Module im 3. bis 7. Semester

      Lernziele

      Grundlegende Methoden der Wahrscheinlichkeitsrechnung und der beschreibenden und schließenden Statistik verstehen und eigenständig anwenden, die Voraussetzungen ihrer Anwendung prüfen, statistische Modelle vergleichen und zur Anwendungssituation passende auswählen, Ergebnisse sinnvoll interpretieren können.

      Inhalt

      Deskriptive Statistik:
      Lage- und Streuungsmaße,
      Korrelation und Regression;
      Elemente der Wahrscheinlichkeitsrechnung:
      Zufallsvariable, Bedingte Wahrscheinlichkeiten,  Wahrscheinlichkeitsverteilungen, Poisson-Prozesse;
      Induktive Statistik:
      Punktschätzung, Intervallschätzung, Konfidenzintervalle, Testen von Hypothesen

      Lernziele

      Bei Abschluss des Lernprozesses wird der erfolgreiche Studierende in der Lage sein, Ziele, Methoden, Techniken und Verfahren des Software Engineering zu kennen und diese für konkrete Beispiele anwenden zu können. Die Studierenden werden Prozesse des Software Engineering verstehen und ausgewählte Techniken und Methoden für verschiedene Entwicklungsphasen auswählen können. Im Rahmen des begleitenden Praktikums werden sie teambasiert eine Beispielanwendung bzw. betriebliches Informationssystem im Rahmen eines vorgegeben Projektgerüsts prototypisch entwickeln können.

      Inhalt

      • Probleme der industriellen Softwareerstellung;
      • Phasenmodelle;
      • Methoden zur Anforderungsspezifikation; Entwurfsmethoden;
      • Methoden zur Systemkonstruktion; Systemintegration und Test; Software-Ergonomie;
      • Qualitätssicherung; Softwaremetriken; Projektmanagement; DV-gestützte Entwicklungsumgebungen;
      • Aufwandsschätzungen; Wirtschaftlichkeitsbetrachtungen.

      Lernziele

      Bei Abschluss des Lernprozesses wird der erfolgreiche Studierende in der Lage sein, grundlegende Konzepte und Mechanismen in Rechnernetzen, insbesondere im Umgang mit Netzwerk-Adressen verschiedener Ebenen und mit Mechanismen von Datagramm- und verbindungsorientierten Protokollen zu kennen und die grundlegenden Kommunikationsprobleme auf verschiedenen Schichten zu verstehen und Lösungen auszuwählen.

      Inhalt

      OSI-Architektur-Modell; Physische Übertragungsmedien; Kodierung, Sicherung von Rahmen, Medienzugriffsmethoden; Routing, Internet Protokoll (IP); Transportprotokolle (z.B. TCP und UDP); anwendungsnahen Schichten; Internetprotokolle; Realisierung von Diensten (mit z.B. Web Services); Infrastrukturdienste im Internet (z.B. DNS), Sicherheit

      Lernziele

      Nach dem erfolgreichen Abschluss des Moduls Datenbanken sind die Studierenden in der Lage

      • die Bedeutung von Datenbanken in Software-Systemen zu bewerten
      • verschiedene Datenbankmodelle voneinander abzugrenzen 
      • die Grundlagen relationaler Datenbanksysteme zu erklären
      • konzeptionelle Datenmodelle zu erstellen und in normalisierte relationale Datenbankschemata zu überführen 
      • komplexe SQL-Anfragen und SQL-Änderungsoperationen zu formulieren
      • die Qualität eines entworfenen Datenbankschemas zu bewerten 
      • die Eignung eines relationalen Datenbanksystems für ein gegebenes Problem einzuschätzen

      Inhalt

      Aufbau und Funktionen eines Datenbanksystems; objektorientiertes und relationales Datenmodell, objektrelationale Abbildung; relationale, objektrelationale, föderative, verteilte Datenbanksysteme; Datenmodellierung und Datenbankentwurf, Referenzmodelle, Unternehmensdatenmodelle, Datenintegration; Datenbankabfragesprachen: Datendefinition und –manipulation mit der Structured Query Language SQL;  Schnittstellen für die Anwendungsprogrammierung; Transaktionsmanagement, Concurrency und Recovery. Einführung in NoSQL-Datenbanken und Big Data.

      Lernziele

      • Einsicht in die theoretischen Grundlagen von Betriebssystemen; exemplarisch verdeutlicht an Hand konkreter Beispiele.
      • Aufbau und Architektur von Betriebssystemen verstehen und analysieren.
      • Einfache, betriebssystemspezifische Programme erstellen können (Systemprogrammierung).
      • Parallele Prozesse und Synchronisationsmechanismen verstehen und anwenden.
      • Fähigkeit, aktuelle Betriebssysteme und ihre Dienste einzuordnen und zu bewerten.

      Inhalt

      • Aufgaben und Aufbau von Betriebssystemen
      • Verwaltungsfunktionen (insbesondere Prozesse, Speicher, Dateien)
      • Kommunikationsfunktionen

      Lernziele

      Bei Abschluss des Lernprozesses wird der erfolgreiche Studierende in der Lage sein, Konzepte guter Softwarearchitektur, insbesondere Clean Code, Programmieridiome, Entwurfsmuster, Architekturmuster und Komponenten zu kennen und diese für konkrete Szenarien anwenden, die unterschiedlichen Prinzipien der Softwarearchitektur für den Entwurf eines Systems auswählen und kleine Beispielanwendung unter Vermeidung bekannter Architekturprobleme entwickeln zu können.

      Inhalt

      Dieser Kurs vermittelt grundlegende Techniken zum Entwurf, zur Beschreibung und zur Implementierung von großen, modularen Softwaresystemen. Zentraler Begriff der Vorlesung sind Patterns, welche als Grundprinzipien und Bausteine einer Softwarearchitektur verstanden werden können. Der Kurs führt Patterns auf verschiedenen Ebenen eines Softwaresystems ein: Auf Implementierungsebene (Programming Idioms), auf Ebene verschiedener Softwaremodule, Klassen und deren Zusammenspiel (Design Patterns), und schließlich als prototypische Struktur für ganze Anwendungen (Architectural Patterns). Muster werden anhand von Programmbeispielen veranschaulicht. Es werden mehrere Programmierübungen im Labor bearbeitet.

      Lernziele

      Kenntnis wesentlicher Konzepte von Programmiersprachen und von Programmierparadigmen. Kenntnis der Übersetzung von prozeduralen und objektorientierten Programmiersprachen sowie ihrer Ausführung in modernen Laufzeitsystemen. Fähigkeit, Programme in unbekannten Programmiersprachen zu verstehen und Bezüge zu bisherigen Kenntnissen herzustellen. Fähigkeit, die Eignung unterschiedlicher Programmierparadigmen und Programmiersprachen für verschiedene Anwendungsaufgaben zu untersuchen und zu beurteilen.

      Inhalt

      • Syntaxanalyse, semantische Analyse, Codegenerierung
      • Werte, Typen, Namen, Bindungen, Speicherabbildung, Kontrollfluss, Typsysteme, prozedurale, Daten- und generische Abstraktion.
      • Prozedurale, objektorientierte, funktionale, logische und deklarative Programmierung, Skript-Sprachen.
      • Virtuelle Maschinen, Typsysteme zur Laufzeit, Komponenten, Speicherverwaltung, Code-Sicherheit.

      Lernziele

      Einblick in die Vielgestaltigkeit von Anwendungen der Informationstechnologie. Fähigkeit zur Umsetzung einer Problemstellung in eine IT-Lösung mit Teamarbeit.

      Inhalt

      Die Studierenden bearbeiten in Teams von ca. 4 Mitgliedern jeweils ein Thema aus der angewandten Informatik. Sie werden dabei von einem Dozenten betreut. Typischerweise ist für eine ausgewählte  Problemstellung eine IT-Lösung in Form einer Software-Anwendung zu planen, zu entwerfen und zu implementieren, oder es sind implementierte Lösungen zu beurteilen und anzupassen.
      Die Projektarbeit erstreckt sich über 2 Semester. Im ersten der beiden Semester analysiert das Team die gestellte Aufgabe, entwickelt einen Projektplan und beginnt mit der Umsetzung des Projekts, beispielsweise dem Entwurf oder einem Prototypen zu einer Softwarelösung. Im zweiten Semester wird das Projekt fertiggestellt, mit einem Bericht dokumentiert und dem Betreuer und Mitstudierenden in einem begleitenden Seminar vorgestellt.

      Wahlmöglichkeiten und Vertiefung

      Mit Beginn des 2. Studienabschnitts, also dem 3. Semester, können Studierende vertiefende Wahlpflichtfächer wählen.

      In den letzten beiden Semestern  können die Studierenden den überwiegendenTeil ihres Studienprogramms aus einem großen Angebot an fachwissenschaftlichen Wahlpflichtfächern selbst zusammenstellen. Durch diese Wahlmöglichkeiten kann das  Studium mit Blick auf ein bestimmtes Anwendungs- oder Berufsfeld vertieft werden. Es gibt Vorschläge für gut zusammenpassende Pakete von Wahlfächern. Wenn diese gewählt werden, so wird eine entsprechende Vertiefungsrichtung im Zeugnis vermerkt. Zusätzliche Informationen dazu finden sich im Studienplan.

      Beispiele für Vertiefungsrichtungen und Ihren zentralen vertiefenden Wahlpflichtfächer sind:

      • Machine Learning
      • IT-Sicherheit

      Hier finden Sie weitere Beispiele für die Auswahl an wechselnden fachwissenschaftlichen Wahlpflichtfächern.

      Beispiel Vertiefungsrichtung Machine Learning

      Beispiel Vertiefungsrichtung IT-Sicherheit

      Bachelorarbeit im 7. Semester

      Zum Abschluss seines Studiums bearbeitet der/die Studierende in seiner/ihrer Bachelorarbeit methodisch und auf wissenschaftlicher Grundlage ein anspruchsvolles praxisbezogenes Problem aus der Medieninformatik. Die Bearbeitungsdauer ist 5 Monate. Ein großer Teil dieser Bachelorarbeiten wird in Zusammenarbeit mit der Industrie durchgeführt.

      Auslandsstudium

      Ein Auslandsstudium wird ab dem 5. Semester empfohlen. Es kann ein Studiensemester (ggf. mit Einschluss der Bachelorarbeit) und/oder ein Praxissemester sein. Im Falle eines Studiensemesters ist das Wintersemester dem Sommersemester vorzuziehen, um Überschneidungen zwischen dem Prüfungszeitraum an der Hochschule und dem Beginn des Studiensemesters im Ausland zu vermeiden. Ein Studiensemester im Ausland braucht einen Vorlauf von 9 Monaten. Die geplanten Lehrveranstaltungen sind vorab mit dem Beauftragten für Hochschulkooperationen und Auslandsbeziehungen der Fakultät abzusprechen, dann werden im Ausland erbrachte Leistungen großzügig anerkannt. Organisatorische Details sind mit dem International Office zu klären.