Lehre
Neben den klassischen Lehrveranstaltungen die im Folgenden aufgeführt sind, besteht die Lehre auch aus Projekt- und Abschlussarbeiten.
Lehrveranstaltungen
IT- und Informationssicherheit
Digitale Dienstleistungen bilden das Fundament der modernen Informationsgesellschaft. Die von mir ausgebildeten Studierenden sollen in Ihrem Berufsleben dazu in der Lage sein bei der Entwicklung von IT-Systemen sowohl IT- und Informationssicherheit als auch Datenschutz von Anfang an zu berücksichtigen und konsequent umzusetzen. Dazu gehört neben der Anwendungssicherheit auch ein umfassender Überblick über technische und organisatorische Maßnahmen, die ich in meinen im Folgenden aufgeführten Lehrveranstaltungen vermittele und in praktischen Beispielen mit den Studierenden übe.
Anwendungssicherheit
In dieser Lehrveranstaltung in den Bachelorstudiengängen Medieninformatik und Mobile Medien werden zunächst typische Bedrohungen und Angriffe gegen Anwendungen betrachtet und dann sämtliche Phasen der Software-Entwicklung im Hinblick auf Aktivitäten zur Entwicklung sicherer Software anhand des Secure Software Engineering Prozesses behandelt. Dazu gehören:
- Sicherheitsanforderungen, Antianforderungen und deren Modellierung
- Bedrohungsmodellierung
- Sichere Entwurfsprinzipien
- Entwurfsmuster für sichere Software
- Programmierrichtlinien für sichere Software (secure coding guidelines)
- Testmethoden insbesondere Penetrationstests
Darüber hinaus werden die folgenden wichtigen Konzepte behandelt und praktisch umgesetzt:
- Authentifizierung
- Autorisierung / Berechtigungen
Weitere Details finden sich auf der offiziellen Hochschulseite zur Lehrveranstaltung Anwendungssicherheit.
IT-Sicherheit: Angriff und Verteidigung
In dieser Lehrveranstaltung in den Bachelorstudiengängen Medieninformatik und Mobile Medien werden Methoden und Techniken zum Erkennen, Verstehen, Ausnutzen, Beheben und Vermeiden von Schwachstellen von IT-Systemen auf verschiedenen Ebenen behandelt. Dazu gehören Schwachstellen im Betriebssystem, des Netzwerks aber auch von Anwendungen. Die Teilnehmer erwerben im wesentlichen die Kompetenz Schwachstellen in Systemen methodisch und systematisch aufzufinden und auszunutzen, die Ursachen für Schwachstellen zu verstehen, sowie Angriffe auf Systeme durch Einsatz entsprechender Software-Werkzeuge zu erkennen, um geeignete Gegenmaßnahmen zu implementieren. Im Detail erwerben die Teilnehmer der Veranstaltung die folgenden Kompetenzen:
- Vertiefen der theoretischen und praktischen Kenntnisse über die Funktionsweise und das Zusammenspiel zahlreicher Komponenten und Anwendungen von IT-Systemen.
- Kennen und verstehen der Auswirkungen von Fehlern in IT-Systemen auf die IT-Sicherheit.
- Kennen, verstehen, vergleichen, bewerten, anwenden, verknpüfen, vertiefen und entwickeln verschiedener Angriffsmöglichkeiten zur Ausnutzung typischer IT-Sicherheitsschwachstellen (Hacking)
- Kennen, verstehen und anwenden können von Methoden und Werkzeugen (Tools) zur Analyse von IT-Systemen auf Schwachstellen.
- Kennen, verstehen und anwenden können von Methoden und Werkzeugen zur Erkennung und Abwehr von Angriffen auf IT-Systeme.
- Vergleichen und bewerten verschiedener Ansätze zur Erkennung und Abwehr von Angriffen auf IT-Systeme.
- Entwickeln von Abwehrmechanismen gegen Angriffe auf IT-Systeme z.B. Anpassung von Regeln eines SIEM-Systems.
Weitere Details finden sich auf der offiziellen Hochschulseite zur Lehrveranstaltung IT-Sicherheit: Angriff und Verteidigung.
Software Security and Management
Diese Lehrveranstaltung findet im Master-Studiengang Computer Science and Media statt. Sie vertieft einerseits die technischen Aspekte der Entwicklung sicherer Software aus meiner Bachelor-Lehrveranstaltung Anwendungssicherheit, insbesondere auch durch fortgeschrittene Techniken für Penetrationstests. Andererseits behandelt sie ausführlich Informationssicherheitsmanagementsysteme (ISMS) anhand der Normenreihe ISO 27000, speziell der Norm ISO 27001. Die Umsetzung der Norm durch einen PDCA-Prozess (Plan-Do-Check-Act) wird ausführlich an praktischen Beispielen geübt. Darüber hinaus werden weitere Sicherheitsstandards wie der BSI Grundschutz, VdS 3473 und ISIS 12 behandelt.
Weitere Details finden sich auf der offiziellen Hochschulseite zur Lehrveranstaltung Software Security and Management.
Capture the Flag (CTF)
Diese Veranstaltung beschäftigt sich mit dem Hacken von Systemen auf Übungsplattformen wie beispielsweise Hack-the-Box.
Weitere Details siehe CTF-Seite des Instituts für Cyber-Security der Hochschule der Medien Stuttgart.
Web-Entwicklung
Web-Entwicklung ist ein sehr dynamisches und umfassendes Themengebiet, das im Rahmen der Bachelorstudiengänge Medieninformatik und Mobile Medien an der Hochschule der Medien einen eigenen Schwerpunkt "Web Development" behandelt wird. Dies umfasst sowohl Frontend- als auch Backend-Technologien, die Architektur von Web-Anwendungen, Sicherheitsaspekte, die Verwendung von Datenbanken und Deployment-Optionen. Die Lehrveranstaltungen versuchen das gesamte Spektrum des Themengebiets abzudecken. Dabei werden die folgenden Lehrveranstaltungen von mir in den o.g. Bachelorstudiengängen gehalten.Web Development
Bei der Lehrveranstaltung Web Development handelt es sich um die Einstiegsveranstaltung im ersten Fachsemeseter. Im Rahmen dieser Lehrveranstaltung werden die grundlegenden Sprachen des Web - konkret HTML und CSS - behandelt mit denen erste einfache Web-Seiten entwickelt werden. Die dritte grundlegende Sprache des Web JavaScript bzw. ECMAScript wird in der Folgeveranstaltung "Web Development Frontend" von meinem Kollegen eingeführt.
Weitere Details finden sich auf der offiziellen Hochschulseite zur Lehrveranstaltung Web Development.
Auf der begleitenden Web-Seite zur Lehrveranstaltung "Web Development", die ich zusammen mit Studierenden entwickelt habe, finden sich Erläuterungen und Beispielen zu den grundlegenden Sprachen HTML, CSS und JavaScript sowie ein Trainingsprogramm für die Anwendung der CSS-Kaskadenregeln.
Web Development Enterprise
Aspekte, die besonders bei Web-Anwendungen im geschäftlichen Umfeld relevant sind, wie konkurrierender Zugriff auf Datensätze über eine Web-Schnittstelle, das Abbilden von Objekten einer objekt-orientierten Programmiersprache auf eine relationale Datenbank, die Interaktion von verschiedenen Web-Anwendungen miteinander, Performanz- und Zuverlässigkeitsaspekte werden in dieser Lehrveranstaltung behandelt.
Weitere Details finden sich auf der offiziellen Hochschulseite zur Lehrveranstaltung Web Development Enterprise.
Spezielle Themen für Web-Anwendungen
In dieser Lehrveranstaltung bearbeiten die Studierenden selbständig verschiedene Themen aus dem Themengebiet der Web-Anwendugnen. Dazu gehören beispielsweise verschiedene Frontend- und Backend-Frameworks (derzeit Angular, React, Vue), CSS-Erweiterungen wie SASS und LESS, CSS-Frameworks wie z.B. Bootstrap, Design-Aspekte, das Testen von Web-Anwendungen, Security-Themen wie Web Applications Firewalls, CI/CD (Continuous Integration and Continuous Deployment) und Deployment-Optionen.
Weitere Details finden sich auf der offiziellen Hochschulseite zur Lehrveranstaltung Spezielle Themen für Web-Anwendungen.
Abschlussarbeiten
Das Thema einer Abschlussarbeit ist mit dem Betreuer, also mir, vorab zu vereinbaren. Die Abschlussarbeit besteht aus der Ausarbeitung (Thesis) und einem Kolloquium, sowie bei Masterarbeiten zusätzlich noch einer 5- bis 10-seitigen wissenschaftlichen Kurzfassung. Das Kolloquium wird in Form eines hochschulöffentlichen Vortrags durchgeführt. Die Vortragsdauer unterscheidet sich für Bachelor- und Masterarbeiten. Die folgende Tabelle fasst die wichtigsten Informationen zusammen:
Art der Arbeit | Bearbeitungsdauer | Kolloquium | Zusatzarbeiten |
---|---|---|---|
Bachelorarbeiten: | 3 Monate | 20min zzgl. ca. 10min Diskussion | keine |
Masterarbeiten: | 6 Monate | 45 bis 60min zzgl. ca. 15min Disskussion | Wissenschaftliche Kurzfassung im Umfang von 5 bis 10 Seiten |
Formulare und formale Hinweise der Hochschule der Medien Stuttgart
Zur Anmeldung und Durchführung von Abschlussarbeiten gibt es von der Hochschule der Medien offizielle Formulare und formale Hinweise:
Überblick über verschiedene Arten von Abschlussarbeiten
Ein paar Beispiele über was bzw. in welcher Form man eine Abschlussarbeit schreiben kann:
-
Ausprobier-Thesis
Ich will X ausprobieren (und kenne X noch nicht).
Interessante Aspekte die man beleuchten könnte:
- Einfachheit von Einarbeitung
- Komplexität
- Konsistenz
- Wofür ist X gut geeignet, wofür nicht?
- Wo sind die Grenzen bzw. ab wann geht es nicht mehr?
- Für welche Organisationsstruktur ist es gemacht (Einzelentwickler, Team, viele Teams)?
Beispiel-Thema: Ich will eine App in Flutter bauen (und kenne Flutter noch nicht)
Beispiel-Methodik für Gliederung (siehe die Vorlagen für die Ausarbeitung von Abschlussarbeiten)
- Anwendungsfälle definieren, die man ausprobieren will (z.B. eine Listenansicht, Login, Kartenansicht, Darstellung eine 3D-Modells)
- Aspekte definieren, die man genauer beleuchten will (z.B. Dokumentation, Performance, Komplexität)
- Pro Aspekt definieren, wie man ihn untersucht (z.B. irgendwelche Metriken messen, Pro- / Contra-Argumentation, Erfahrungsbericht)
- Anwendungsfälle umsetzen und jeweilige Aspekte beleuchten
- Fazit ziehen: Was hat gut funktioniert, was nicht, was bedeutet das für zukünftige Projekte?
-
Umsetzungs-Thesis
Ich will etwas implementieren (und kenne die Tools schon, die ich verwenden will).
Interessante Aspekte:
- Die Tools (die man schon kennt) in diesem speziellen Anwendungsfall beleuchten.
- Herausarbeiten, was genau man eigentlich bauen will und einen Prototyp implementieren.
- Der Teufel steckt im Detail. Die Details des Anwendungsfalls und der Tools aufzeigen, die bei der Implementierung aufgefallen sind.
Beispiel-Thema: Ich will eine Website für eine Arztpraxis bauen (und kenne die Tools schon, die ich verwenden will).
Beispiel-Methodik für Gliederung (siehe die Vorlagen für die Ausarbeitung von Abschlussarbeiten)
- Definieren, was man bauen will (Liste an Anforderungen aufstellen)
- Pro Anforderung definieren, ab wann sie erfüllt ist.
- Entwurf und Implementierung grob beschreiben, evtl. nötige Workarounds aufzeigen.
- Schauen, ob bzw. wie gut die Anforderungen erfüllt wurden
- Vor- und Nachteile der Implementierung diskutieren.
-
Entdeckungs-Thesis
Ich will ein Thema erkunden und kenne das Thema noch nicht.
Interessante Aspekte:
- Dokumentation der Entdeckungsreise
- In welche Themengebiete man sich eingearbeitet hat und aus welchen Gründen
- Welche Gebiete sich als nicht so relevant herausgestellt haben (dead ends)
- Kontext bzw. Relevanz für andere Themen
- Schnittstellen zu oder Synergien mit anderen Themen beleuchten
- Welche Möglichkeiten eröffnet einem dieses Wissen?
Die interessanten Punkte werden während der Thesis gefunden. Aber die Thesis sollte dem Leser einen Grund geben, warum er anfangen sollte sie zu lesen.
Beispiel-Thema: CSS Layout-Modelle erkunden und beleuchten was mit CSS Styles möglich ist.
Beispiel-Methodik für Gliederung (siehe die Vorlagen für die Ausarbeitung von Abschlussarbeiten)
- Erklären warum bzw. mit welchem Ziel man sich in das Thema einarbeitet. Erhofftes Ziel der Reise oder Ausgangspunkt und Startrichtung der Reise erklären.
- Thesis ist eine Ansammlung von Recherche-Schritten (z.B. einer pro Unterthema).
- Definieren, wie man bei jedem Schritt vorgeht (z.B. ein Unterthema recherchieren, weitere relevante Unterthemen für die nächsten Schritte finden)
- Die Reise an sich: Schritte gehen und dokumentieren.
- Fazit ziehen: Kurze Zusammenfassung der wichtigsten Schritte bzw. Funde, Reflexion über die Reise, was man nach der Reise anders machen würde wie davor.
Der Hauptteil der Thesis ist quasi ein langes Literaturstudium. Daher macht ein kurzes Literaturstudium vor dem Hauptteil normalerweise keinen Sinn. Der erste Schritt ist die Einführung.
-
Survey-Thesis
Welche Werkzeuge gibt es jeweils in einem Anwendungsbereich?
Interessante Aspekte:
- Deren jeweilige Vor- und Nachteile beleuchten
- Abgrenzung welches Werkzeug für welches Problem oder für welches Umfeld gut geeignet ist
- Spezielle Aspekte beleuchten (z.B. Wartbarkeit, Performance, Anpassbarkeit)
- Soziale oder politische Dynamiken zwischen Werkzeugen beleuchten
Beispiel-Thema: Überblick über aktuelle Flat-File Content-Management-Systeme
Beispiel-Methodik für Gliederung (siehe die Vorlagen für die Ausarbeitung von Abschlussarbeiten)
- Aspekte definieren, die man sich pro Werkzeug anschaut (warum und wie wichtig einem dieser Aspekt ist)
- Pro Aspekt: Definieren, wie man ihn untersucht
- Jedes Werkzeug untersuchen
- Fazit ziehen: Funde in Kontext setzen und kurz zusammen fassen (z.B. als Feature-Matrix)
-
Messungs-Thesis
Ich will anhand von Zahlen X mit Y vergleichen. Ich will X in verschiedenen Situationen vergleichen.
Interessante Aspekte:
- Welche Frage will man anhand des Vergleichs beantworten?
- In welcher Umgebung will man den Vergleich machen? Warum?
- Herausarbeiten, welche Metriken für diesen Vergleich Sinn ergeben
- Wie relevant sind die Messergebnisse? Welche Entscheidungen kann man mit ihnen treffen?
Beispiel: Performance-Vergleich zwischen zwei Frameworks.
Beispiel-Methodik für Gliederung (siehe die Vorlagen für die Ausarbeitung von Abschlussarbeiten)
- Kontext dokumentieren, indem man die Untersuchung durchführt (damit man beurteilen kann welche Metriken hier Sinn ergeben).
- Metriken definieren, die man messen will (und warum sie hier relevant sind).
- Pro Metrik beschreiben, wie die Messung durchgeführt wird (damit es nachvollziehbar und rekonstruierbar ist).
- Pro Messung: Messungen durch führen, Ergebnisse präsentieren (ohne Wertung) und interpretieren (was bedeuten die Ergebnisse in dieser Situation?)
- Fazit: Funde zusammen fassen und diskutieren. Was bedeutet es wenn man alle Messungen zusammen anschaut?
Meine Vorlagen zur Strukturierung von Abschlussarbeiten
Zitierregeln und Anleitungen zur Durchführung von Abschlussarbeiten (Bachelor- und Masterarbeiten)
Es gibt bereits einige gute Hinweisseiten zum Schreiben von Abschlussarbeiten, z.B.:
- Aufbau und Tips zum Schreiben von Diplomarbeiten (von Prof. Härtig, TU Dresden)
- Anmerkungen von Dr. Kevin Elphinstone zum Schreiben der Diplomarbeit (englisch)
- Zitierregeln (auf academics.de)
Zusätzlich zu den oben angegebenen Hinweisen möchte ich noch meine persönlichen Anforderungen an die Formulierung von Abschlussarbeiten darstellen:
- Bitte stellen Sie klar, welches Ihre eigene Leistung ist und was Sie aus der Literatur oder Ihren Vorgängern übernommen haben. Eine klare Abgrenzung der eigenen Leistungen ist wichtig!
- Konzentrieren Sie sich zunächst auf das Wesentliche und versuchen Sie nicht gleich alle Details zu beschreiben. Leser müssen erst einmal ein Bild vom groben Ablauf, Ihrer Idee und Ihrem Ansatz bekommen, um die Details verstehen zu können. Dabei gilt die Regel: "Sag was Du sagen willst, sag es, sag was Du gesagt hast." Dies bedeutet, dass man Anfang eines Kapitels einen Überblick über die in diesem Kapitel abgehandelten Themen geben muss, die Themen dann detailliert beschreibt und anschließend die gewonnenen Erkenntnisse zusammenfasst.
- Geben Sie sich Mühe dabei, sich verständlich auszudrücken. Dies bedeutet insbesondere, dass Aktivsätze besser sind und Passivkonstruktionen zu vermeiden sind. Ein Aktivsatz macht klar, wer etwas tut. Wenn Sie Ihr System auf diese Art beschreiben, weiß der Leser sofort welche Komponente welche Zuständigkeit hat.