Theoriephase · DHBW Mosbach

Theorie-Semester 1

Sieben Module, hunderte Lerneinheiten und ein Dungeon-Spiel später – hier teile ich, was ich gelernt habe, was mich überrascht hat und welche Konzepte wirklich hängen geblieben sind.

Modul 1

Mathematik 1 – Lineare Algebra

Kerninhalte

  • Mengenlehre & Grundlagen der Logik
  • Vektoren, Linearkombinationen, Vektorräume
  • Lineare Gleichungssysteme (LGS): Einsetzungs-, Additions- und Gauß-Verfahren
  • Matrizen: Multiplikation, Inverse, Determinante
  • Rang, Eigenvektoren & Basiswechsel
  • Euklidischer Algorithmus & modulare Arithmetik
  • Einblick in asymmetrische Kryptographie (RSA)

Beispiel – Gauß-Verfahren

Ein LGS mit 3 Unbekannten lässt sich als erweiterte Koeffizientenmatrix darstellen und durch Zeilenoperationen in Zeilenstufenform bringen:

A|b =
| 2  1  -1 |  8 |
|-3 -1   2 | -11|
|-2  1   2 | -3 |

→ Zeilenstufenform → Rückwärtseinsetzen
→ Eindeutige Lösung: x=(2, 3, -1)

Lösungsfall ergibt sich aus dem Rang: rang(A) = rang(A|b) = n → eindeutig.

Rückblick: Lineare Algebra wirkt zunächst abstrakt – bis man merkt, dass Eigenvektoren und Matrizen die Grundlage von Machine-Learning-Modellen sind. Transformermodelle machen nichts anderes als riesige Matrixmultiplikationen. Das hab ich erst im Nachhinein wirklich verstanden.
Modul 2

Web Engineering 1

Kerninhalte

  • HTTP/HTTPS: Request-Response-Modell, Status-Codes, Header
  • DNS, TCP/IP, TLS/SSL – wie Daten durchs Netz reisen
  • URL, URI, URN – Aufbau und Unterschiede
  • HTML & CSS – Semantik, Box-Modell, Selektoren, Layouts
  • JavaScript – DOM, Events, Funktionen, Scope
  • Asynchrones JS – Promises, async/await, Fetch API
  • Backend-Grundlagen – statisch vs. dynamisch, Node.js
  • Datenbanken für Webprojekte – JSON, SQL-Grundkonzepte

Der Weg einer URL – 6 Schritte

1 URL eingeben 2 DNS-Auflösung 3 TCP + TLS 4 HTTP-Request 5 Server-Response 6 DOM-Rendering

Jede Interaktion auf einer Seite kann diesen Zyklus erneut starten – bei AJAX asynchron im Hintergrund.

Rückblick: Ich dachte, Web Engineering bedeutet HTML schreiben. Tatsächlich steckt dahinter ein komplexes Zusammenspiel aus Netzwerkprotokollen, Browser-Rendering und Server-Logik. Den vollständigen Weg vom Tastendruck bis zum gerenderten Pixel zu kennen, hat mein Verständnis grundlegend verändert – besonders für meine eigene Webseite hier.
Modul 3

Elektrotechnik

Kerninhalte

  • Grundgrößen: Spannung (U), Strom (I), Widerstand (R) – Ohm'sches Gesetz
  • Kirchhoff'sche Gesetze (Maschen- & Knotenregel)
  • Reihen- und Parallelschaltungen, gemischte Netzwerke
  • Bauteile: Kondensator, Diode, Transistor (BJT & FET)
  • Transistor als digitaler Schalter (npn, Arduino → Last)
  • Analog/Digital-Wandlung (ADC)
  • Gleichrichtung & Glättung – Aufbau eines Netzteils
  • Elektromagnetisches Feld & Magnetismus

Beispiel – Handy laden

Steckdose (230V AC) Gleichrichtung Glättung
Geregelte DC (5V) Akku lädt

Hinter dem Ladevorgang steckt ein vollständiger elektrotechnischer Kreislauf – von Wechselstrom zu geglättetem Gleichstrom.

Rückblick: Elektrotechnik war das Modul, das ich am wenigsten erwartet hatte. Aber genau hier hat sich für mich der Zusammenhang zwischen Physik und Informatik erschlossen: Ein Transistor ist nichts anderes als ein steuerbarer Schalter – und aus Millionen solcher Schalter entsteht jeder Prozessor.
Modul 4

Theoretische Informatik

Kerninhalte

  • Aussagen- & Prädikatenlogik, Mengenlehre
  • Algorithmen & Komplexitätsklassen (O-Notation: O(1) bis O(n!))
  • Euklidischer & Erweiterter Euklidischer Algorithmus
  • Modulare Arithmetik & RSA-Verschlüsselungsprinzip
  • Prolog – Fakten, Regeln, Anfragen (deklaratives Paradigma)
  • Negation als Fehlschlag (\+) & Nicht-Unifizierbarkeit (\=)
  • Closed World Assumption (CWA)
  • Relationen: Reflexivität, Symmetrie, Transitivität

Beispiel – Prolog & CWA

student(alex). student(sam).
immatrikuliert(alex).

nicht_immatrikuliert(X) :-
    student(X),
    \+ immatrikuliert(X).

?- nicht_immatrikuliert(sam).
% → true  (sam ist nicht beweisbar immatrikuliert)

Die Closed World Assumption: Was nicht in der Wissensbasis steht, gilt als falsch.

Rückblick: Prolog war ein Paradigmenwechsel. In imperativen Sprachen beschreibt man wie etwas berechnet wird – in Prolog beschreibt man was wahr ist, und die Engine sucht selbst nach Lösungen. Dieses deklarative Denken hat meinen Blick auf Programmierung dauerhaft verändert.
Modul 5

Schlüsselqualifikationen

BWL – Betriebswirtschaftslehre

  • Bedürfnisse, Güter & Knappheit als Grundlage des Wirtschaftens
  • Ökonomisches Prinzip: Maximum-, Minimum- & Extremumprinzip
  • Güterarten: Input/Output, Konsum/Produktion, materiell/immateriell
  • BWL vs. VWL – Mikro- und Makroperspektive
  • Ceteris-paribus-Bedingung bei wirtschaftlichen Modellen
  • Drei Grundfragen der Marktwirtschaft: Was? Wie? Für wen?

Das Ökonomische Prinzip

  • Maximumprinzip: Gegebener Aufwand → möglichst hoher Ertrag
  • Minimumprinzip: Vorgegebenes Ziel → möglichst geringer Aufwand
  • Extremumprinzip: Bestes Verhältnis von Aufwand zu Ertrag finden

Typ 3 (Extremum) trifft auf die meisten realen Entscheidungen zu – gutes Ergebnis und Freizeit gleichzeitig.

Technisch-Wissenschaftliches Arbeiten

  • Wissenschaftliche Methodik: Recherchieren, Strukturieren, Belegen
  • Korrekte Quellenangaben & Zitiernormen (APA, IEEE)
  • Aufbau technischer Dokumentationen & Berichte
  • Kritisches Lesen und Einordnen von Fachliteratur

Fremdsprachen 1 – Academic English

C1-Intensivkurs in Honolulu, Hawaii (März–April 2025) – vier Wochen vollständig auf Englisch: Vorlesungen, Präsentationen, Gruppenarbeit. Schwerpunkte: Academic Writing, Listening Comprehension, Sprechkompetenz.

Rückblick BWL: Das Extremumprinzip hab ich sofort auf mein Studium angewendet: Welche Module bringen mir den größten Mehrwert pro investierter Lernstunde? Diese Frage hat meine Priorisierung verändert.
Modul 6

Programmieren 1 – Python

Kerninhalte

  • Python Basics: Variablen, Datentypen, Numbers, Strings
  • Collections: Listen, Tupel, Dictionaries, Sets
  • Kontrollstrukturen, Funktionen, Scope
  • Objektorientierte Programmierung: Klassen, Objekte, self, __init__
  • Kapselung, Vererbung, Polymorphismus
  • Rekursion – lineare & endrekursive Formen
  • Unit-Testing mit unittest & Mock-Objekten

OOP-Beispiel – Kontoverwaltung

class Konto:
    def __init__(self, inhaber: str,
                 start: float = 0.0):
        self.inhaber = inhaber
        self.guthaben = start

    def einzahlen(self, betrag: float):
        self.guthaben += betrag

    def abheben(self, betrag: float):
        if betrag <= self.guthaben:
            self.guthaben -= betrag

konto = Konto("Alex", 100.0)
konto.einzahlen(50)
konto.abheben(30)
# konto.guthaben → 120.0

Projekt – Dungeon-Spiel

Textbasiertes Spiel mit vollständiger OOP-Architektur: 5 Klassen (Game, RoomManager, Room, Player, Monster), Unit-Tests für Player & RoomManager sowie systematisches Debugging von 8 gefundenen Bugs.

Größte Herausforderung: die Abhängigkeiten zwischen Klassen sauber aufeinander abstimmen – wer ist für was zuständig, und wann ruft wer wen auf?

Rückblick: Das Dungeon-Projekt war mein erster echter OOP-Code. Bugs wie fehlende Attribute (AttributeError), negative Health-Werte oder eine nie endende Spielschleife haben mir mehr beigebracht als jede Übungsaufgabe – weil ich wirklich verstehen musste, was in welcher Klasse lebt.
Modul 7

Anwendungsprojekt Informatik

Projektziel

  • Web-basiertes Dashboard-System zur Analyse von Energie- und Materialverbräuchen im Industrie‑4.0‑Labor
  • Reale und simulierte Daten über MQTT- und Kafka-Schnittstellen erfassen
  • Daten serverseitig aufbereiten und in einer relationalen Datenbank speichern
  • Zentrale Kennzahlen berechnen und in einem interaktiven Web-Dashboard visualisieren
  • Semester 1: Projektplanung und Konzeption · Semester 2: Umsetzung und Dokumentation

Architektur & Tech-Stack

Das System setzt auf eine klassische dreischichtige Architektur: Datenerfassung über MQTT und Kafka als Message-Broker, serverseitige Verarbeitung mit Speicherung in einer relationalen Datenbank, und ein Web-Frontend zur interaktiven Visualisierung der Kennzahlen. Die Datenquellen sind teils reale Sensoren im Labor, teils simulierte Ströme – das System muss beides konsistent verarbeiten können.

Im ersten Semester lag der Fokus auf der Planung: Anforderungsanalyse, Systemarchitektur, Schnittstellendefinition. Die eigentliche Implementierung folgt im zweiten Semester.

Rückblick: Das Projekt hat gezeigt, dass Softwareentwicklung im Team weit mehr als Codeschreiben ist – Kommunikation, klare Aufgabenteilung und Dokumentation sind genauso wichtig wie die technische Umsetzung.

Fazit – Was bleibt?

Das erste Theorie-Semester war intensiv: sieben Module gleichzeitig, von Mengenlehre bis Elektrotechnik bis hin zu meinem ersten Python-Projekt. Was mich am meisten überrascht hat: Wie eng alles zusammenhängt. Der Transistor erklärt das logische Gatter, das logische Gatter erklärt den Prozessor, der Prozessor führt meinen Python-Code aus.

Prolog hat mein Denken am stärksten beeinflusst – deklaratives Programmieren war ein echter Perspektivwechsel. Und das Gauß-Verfahren, das zunächst abstrakt wirkte, steckt heute in jedem Machine-Learning-Modell das ich nutze.

Das erste Semester und die erste Praxisphase haben gezeigt, wie sich diese Grundlagen in reale Projekte übersetzen.