Informatik

Algorithmen und Datenstrukturen

Qualifikationsziele

Die Studierenden kennen häufig verwendete Algorithmen mit ihren dazu gehörigen Datenstrukturen und können sie an Beispielen per Hand veranschaulichen. Sie kennen die Laufzeit und den Speicherbedarf der verschiedenen Algorithmen und können einfache Aufwandsanalysen selbständig durchführen. Sie sind in der Lage zu einer gegebenen Aufgabenstellung verschiedene Algorithmen effizient zu kombinieren und anschließend zu implementieren

Lehrinhalte

Häufig verwendete Algorithmen mit ihren dazu gehörigen Datenstrukturen werden vorgestellt und verschiedene Implementierungen bewertet. Stichworte sind: Listen, Bäume, Mengen, Sortierverfahren, Graphen und Algorithmenentwurfstechniken. Es wird besonderer Wert auf die Wiederverwendbarkeit der Implementierungen für unterschiedliche Grunddatentypen gelegt.

C, C++

Qualifikationsziele

Die Studenten kennen die unterschiedlichen Datenspeichermodelle und wissen sie sicher einzusetzen. Sie kennen die hohe Typsicherheit und die feineren Steuerungsmöglichkeiten von C++ gegenüber anderen Sprachen sowie die Mechanismen der Operatorüberladung. Sie kennen das grundlegende Musterklassenkonzept und wissen um die sich daraus ergebende Möglichkeit der Entwicklung von Compileralgorithmen.

Lehrinhalte

Anhand des Aufbaus einfacher Programme werden die grundlegenden Unterschiede und Erweiterungen zum Java-Konzept vorgestellt und die spezifischen Vokabeln der C++ Sprache und ihre Bedeutung erklärt. Speicherkonzepte, insbesondere Zeigervariablen, und der korrekte Umgang mit ihnen werden diskutiert. Die sich aus der Operatorladung und der Definition von Musterklassen (Templates) ergebenden Programmiermöglichkeiten werden an mathematischen Modellen und an den Standardbibliotheken demonstriert. 

Grundlagen Informatik

Qualifikationsziele

Die Studenten kennen die wesentlichen Komponenten eines Rechnersystems und ihre Aufgaben. Sie sind mit den grundlegenden Funktionsweisen der Komponenten vertraut. Sie kennen die wesentlichen Softwarekomponenten und deren Grundfunktionen. Sie kennen die Zahlenmodelle und die damit verbundenen Fehlerquellen und können die Qualität von Rechenergebnissen abschätzen. Sie kennen die Basisprotokolle der Netzwerkverbindungen zwischen Rechnern und können deren Einsatzkonfiguration nebst Risikoabschätzungen planen.

Lehrinhalte

Die Studenten werden schrittweise an die notwendige Denkweise bei der Programmierung herangeführt, die in anderen Modulen vertieft wird. Die Komponenten und ihre Arbeitsweise und Arbeitsteilung untereinander wird vorgestellt, beispielsweise Festplatten, CPU, Hauptspeicher, Bildschirmspeicher usw. Zahlenmodelle und das Entstehen von Rundungsfehlern und deren Fortpflanzung wird in Übungen untersucht. Die notwendigen Basisprotokolle für den Betrieb von Rechnern in einfachen Netzwerktopologien sowie die korrekte Konfiguration werden diskutiert.

Grundlagen der IT-Sicherheit

Qualifikationsziele

Die Studierenden haben grundlegende Kenntnisse über die wesentlichen Sicherheitsprobleme heutiger IT-lnfrastrukturen und können an Beispielen den Sachverhalt erklären. Durch das erworbene Wissen können die Studierenden aktuelle Verfahren zur Erarbeitung und Umsetzung von Sicherheitskonzepten analysieren, beurteilen, implementieren und deren gesellschaftliche Relevanz einordnen.

Lehrinhalte

Es werden durch grundlegende Methoden analytische Vorgehensweisen zur Schwachstellenanalyse vermittelt, aktuelle Angriffsszenarien vorgestellt, sowie die wesentlichen juristischen Rahmenwerke in ihrer Wirkungsweise beschrieben. Heute gängige Sicherheitsstandards wie ISO 27001, ITIL, oder der BSI Grundschutz werden in ihren Unterschieden gegenübergestellt.

Hardwaregrundlagen

Qualifikationsziele

Die Studierenden lernen elementare Grundlagen der analogen und digitalen Elektronik kennen. Sie sind in der Lage, sowohl passive als auch aktive Bauelemente anzuwenden und die zugehörige Messtechnik einzusetzen. Dabei wird auch der Unterschied zwischen Theorie und Praxis an ausgewählten Beispielen erläutert und nachgewiesen. Schaltungsanalyse- und synthese dienen zum komplexen Verständnis elektronischer Baugruppen.

Lehrinhalte

Wichtige Bauelemente, wie z.B. Widerstände, Dioden und Transistoren werden hinsichtlich ihres Aufbaus, ihrer Funktionsweise und ihrer Anwendung beschrieben. Einfache Netzwerke werden dabei dimensioniert, aufgebaut und bezüglich ihres elektrischen Verhaltens untersucht. Digitale Grundfunktionen und kombinatorische Schaltungen werden anhand von Beispielen beschrieben und ebenfalls getestet.

Java 1

Qualifikationsziele

Die Studierenden verstehen die Grundbegriffe der objektorientierten Programmierung und können eigene einfache Java-Programme erstellen und erläutern. Sie können sich einfache fremde Programme erarbeiten und verstehen. Sie kennen die wichtigsten Programmierrichtlinien und wenden sie in eigenen Programmen an.

Lehrinhalte

Elemente der Programmiersprache Java: Literale, Variablen, Datentypen, Ausdrücke und Operatoren, Kontrollstrukturen, Rekursion, Parameterübergabe, Rückgabewerte. Objektorientierte Programmierung: Klassen und Objekte, Methoden, Konstruktoren; Vererbung, Polymorphismus; Ausnahmebehandlung; Ausgewählte Klassen; Dokumentation und Layout von Java-Programmen (JavaDoc). 

Java 2

Qualifikationsziele

Die Studierenden sollen eine konkrete Problemstellung analysieren und algorithmisch lösen können. Sie kennen wichtige Java-Bibliotheken und können diese für konkrete Aufgabenstellungen anwenden. Die Programme werden auf Basis aktueller Werkzeuge erstellt und getestet. Die Studierenden verstehen das Verfahren der testgetriebenen Entwicklung und können dieses für kleine Beispiele anwenden.

Lehrinhalte

Auf Basis der in "Java 1" gelegten Grundlagen werden weitergehende Konzepte der objektorientierten Programmierung vorgestellt und die Verwendung objektorientierter Bibliotheken vertieft. Behandelt werden u.a. Datenströme und Dateizugriff, Threads, Netzwerkprogrammierung, Unit-Tests, graphische Benutzungsoberflächen mit vorgegebenen Komponenten und Ereignisverarbeitung. Typische Programmstrukturen werden anhand gängiger Entwurfs- und Architekturmuster (z.B. Model-View-Controller) erläutert.

Programmieren 1

Qualifikationsziele

Die Studenten kennen die wesentlichen Komponenten eines Rechnersystems und ihre Aufgaben. Sie sind mit den grundlegenden Funktionsweisen der Komponenten vertraut. Die Studierenden kennen den allgemeinen Aufbau eines Programmes und können strukturierte Entwurfsmethoden veranschaulichen und anwenden. Sie sind in der Lage, einfache Programme zu entwerfen, zu implementieren und zu testen.

Lehrinhalte

Sprachelemente und Ablaufsteuerungen in der Sprache "C" werden behandelt und an Beispielen erläutert. Die Einführung der Unterprogrammtechnik, verbunden mit der Darstellung der Übergabeformen von Parametern bilden den Ausgangspunkt einer effizienten Programmierung.

Programmieren 2

Qualifikationsziele

Die Studierenden kennen häufig verwendete höhere Datenstrukturen und können diese veranschaulichen und implementieren. Sie sind in der Lage, mit externen Datenquellen zu arbeiten und verschiedene Zugriffsmöglichkeiten zu realisieren. Die Unterschiede zwischen prozeduraler und objektorientierter Programmierung wird den Studierenden bewusst und versetzt sie in die Lage, optimale Entwurfsmethoden für verschiedene Aufgabenstellungen auszuwählen.

Lehrinhalte

In "C" häufig verwendete Datenkonstrukte wie Strukturen, Zeiger oder Arrays werden vorgestellt und an Beispielen implementiert. Aspekte der Dateiarbeit werden gezeigt und verschiedene Formen des Umganges mit externen Datenträgern erläutert. Es erfolgt eine Einführung in die objektorientierte Programmierung unter "C++". Hier werden Grundbegriffe und der Umgang mit Klassen ausführlich behandelt.