BDF103: Programmierung

Allgemeine Grundlagen

BDF103: Programmierung

Kurzporträt BDF103: Programmierung
Worum geht es? Dieses Modul behandelt Programmierung im Kontext der Digitalen Forensik. Im Mittelpunkt stehen insbesondere Algorithmen; Entwicklungswerkzeuge und Standardbibliotheken; Einführung in die Programmiersprache Python.
Wofür braucht man es? Programmierkompetenz ermöglicht es, forensische Auswertungen zu automatisieren, Datenquellen gezielt zu verarbeiten und eigene Analysewerkzeuge nachvollziehbar zu entwickeln.
Wieso ist es interessant? Das Modul verbindet fachliche Grundlagen mit anwendungsnahen Fragestellungen und zeigt, wie die behandelten Konzepte in realen digitalen Untersuchungs- und Sicherheitskontexten wirksam werden.
Modulverantwortung

Prof. Dr. Duc Duy Pham

Lehrperson(en)
  • Prof. Dr. Duc Duy Pham
  • Prof. Dr. Gudrun Stockmanns
Verwendbarkeit

Bachelor Digitale Forensik

Fächergruppe

Informatik

Modultyp
Pflicht
Sprache

Deutsch

Angebot

Wintersemester

Dauer

1 Semester

Credits

5 ECTS

Benotung

Deutsche Notenskala 1-5

SWS

2 V | 2 Ü | - P | - S

Workload
Präsenzstudium: 45 Std. Selbststudium: 90 Std.
Engl. Titel

Programming

Empfohlene Voraussetzungen

Keine angegeben.

Lernergebnisse / Kompetenzen
WAS

Die Studierenden können grundlegende Programmierkonzepte anwenden, einfache Programme strukturiert entwickeln und Programmcode hinsichtlich Funktion, Qualität und Wiederverwendbarkeit beurteilen.

WOMIT

Die Studierenden erreichen dieses Lernergebnis, indem sie insbesondere folgende im PDF genannten Kompetenzen aufbauen:

  • Einfache Informatik-Probleme zu modellieren und Algorithmen zu deren Lösung zu entwickeln
  • Die grundlegenden Sprachkonzepte wie primitive Datentypen und Kontrollstrukturen einer Programmiersprache (wie z.B. Python) zu beherrschen und sinnvoll einzusetzen
  • Die Anwendbarkeit der grundlegenden Konzepte der objektorientierten Programmierung wie Klassen, Objekte, Vererbung, abstrakte Klassen und Schnittstellen, sowie die Fehlerbehandlung über Exceptions, für einfache und/oder begrenzt-umfangreiche Problemstellungen zu erkennen und diese auch in einer gängigen objektorientierten Programmiersprache zu implementieren
  • Für einfache algorithmische und datenstrukturorientierte Aufgabenstellungen Programme in exemplarischer Programmiersprache und Programmierparadigma unter Anwendung angemessener Techniken zu entwickeln
  • Aktuelle softwaretechnische Werkzeuge zielführend einzusetzen
  • Für kleinere Programme einen Softwaretest mit seinen Anforderungen zu konzipieren
  • Sich in vorhandene Programme einzuarbeiten und vorhandene Programmelemente oder Bibliotheken zu nutzen
WOZU

Damit sie in späteren Modulen, Projekten und beruflichen Aufgaben der Digitalen Forensik fachliche Entscheidungen begründet treffen, digitale Sachverhalte systematisch untersuchen und Ergebnisse nachvollziehbar kommunizieren können.

Inhalte
  • Algorithmen und Modellierung einfacher Informatik-Probleme
  • Entwicklungswerkzeuge, Standardbibliotheken und Einführung in Python
  • Grundlagen der strukturierten Programmierung: Ablaufstrukturen, Datentypen, Funktionen und einfache Datenstrukturen
  • Elementare Ein- und Ausgabe, Dateisystem, Speicherverwaltung und rekursive Funktionen
  • Anwendung des Erlernten auf einfache Problemstellungen und kleine Programmfragmente
  • Grundlagen der Softwareentwicklung, systematische Erstellung von Softwaresystemen und Phasen der Softwareentwicklung
  • Softwareanalyse, Tests und Qualitätssicherung kleiner Programme
  • Nutzung von Bibliotheken und Vergleich unterschiedlicher Programmierparadigmen
Prüfungsvorleistung

Testat

Prüfungsleistung

Studien-, Projekt- oder Hausarbeit (10 - 15 Seiten)

Literatur
  • John Hunt: A Beginners Guide to Python 3 Programming, Springer, Cham, 2019, https://doi.org/10.1007/978-3-030-20290-3
  • Allen B. Downey: Think Python: How to Think Like a Computer Scientist, O’Reilly Media, Sebastopol, 2015
  • Mark Lutz: Learning Python, O’Reilly Media, Sebastopol, 2013
  • Ian Sommerville: Software Engineering, Pearson, Harlow, 2016
  • Bernd Oestereich und Axel Scheithauer: Analyse und Design mit UML 2.5, De Gruyter Oldenbourg, Berlin, 2013