Git, Tests, Architektur, Code-Qualität. Wie Software in der Realität gebaut wird.
Das einfachste Rechenmodell der Theoretischen Informatik: deterministische endliche Automaten (DFA). 5-Tupel (Q, Σ, δ, q₀, F), Zustandsdiagramm, Akzeptanz, Verbindung zu regulären Sprachen. Mit interaktivem DFA-Simulator + Klausur-Quiz. Quelle: Schöning, Hopcroft/Ullman.
Vorgehensmodelle der Software-Entwicklung: Wasserfall (sequenziell), V-Modell (mit Test-Spiegel), Inkrementell (Teilversionen), Spiral (Risiko-Management), Agile. 6 Standard-Phasen, Vor-/Nachteile pro Modell, typische Einsatzbereiche. Mit interaktivem Modell-Vergleich.
Schichten-Architektur des Internets: OSI (7) vs. TCP/IP (4), Encapsulation, Protokoll-Zuordnung pro Schicht (HTTP, TCP, IP, Ethernet). Mit interaktivem Stack-Visualizer + Klausur-Quiz. Quelle: Tanenbaum.
Aufbau jedes Computers: CPU (Steuerwerk, Rechenwerk/ALU, Register), Speicher, I/O, Bus-System. Stored-Program-Prinzip, Von-Neumann-Zyklus (Fetch-Decode-Execute), Flaschenhals und Vergleich zu Harvard. Mit interaktivem Architektur-Visualizer + Klausur-Quiz. Quelle: Tanenbaum.
Scrum als wichtigstes agiles Framework: 3 Rollen (Product Owner, Scrum Master, Dev Team), 5 Events (Sprint Planning, Daily Standup, Review, Retrospektive, Refinement), 3 Artefakte (Product Backlog, Sprint Backlog, Inkrement). Agiles Manifest, Story Points, Velocity, Definition of Done. Mit interaktiver Sprint-Timeline.
Rechnen mit 0 und 1: Grundgatter (AND, OR, NOT) und abgeleitete (NAND, NOR, XOR, XNOR), Wahrheitstafeln, boolesche Gesetze, DeMorgan-Regeln, funktionale Vollständigkeit. Mit interaktivem Logikgatter-Simulator + Klausur-Quiz. Quelle: Hoffmann.
Wie wird example.de zu einer Webseite? DNS-Hierarchie (Root, TLD, autoritativ), HTTP-Methoden (GET/POST/PUT/DELETE), Status-Codes (200/404/500). Mit Sequenz-Visualizer + Klausur-Quiz.
Nichtdeterministische endliche Automaten (NFA): mehrere Übergänge, ε-Übergänge, Akzeptanz über einen Pfad. Äquivalenz zu DFAs und die Potenzmengenkonstruktion Schritt für Schritt. Mit interaktivem NFA-Visualizer + Klausur-Quiz. Quelle: Hopcroft/Ullman.
UML-Sequenzdiagramm (Zeit ↓, Lifelines + synchrone/asynchrone Nachrichten + Combined Fragments alt/opt/loop/par/break/ref) vs. UML-Aktivitätsdiagramm (Flow-Chart mit Diamanten/Fork-Join/Swimlanes). Wann was: Sequenz für Detail-Interaktionen zwischen Objekten, Aktivität für Workflow + Geschäftsprozesse. UML 2.5 mit 14 Diagrammtypen (7 Struktur + 7 Verhalten). Mit interaktivem Toggle-Visualizer Login-Use-Case in beiden Notationen.
Systematisches Erheben/Dokumentieren/Validieren von Anforderungen. Funktionale (WAS tut das System) vs. nicht-funktionale Anforderungen (WIE GUT) nach ISO 25010 (Performance/Reliability/Security/Usability/etc.). Lastenheft vs. Pflichtenheft, SMART-Anforderungen, MoSCoW-Priorisierung. Mit interaktivem Klassifikations-Tool.
Wie eine CPU Befehle parallel verarbeitet: Befehlszyklus (Fetch-Decode-Execute), 5-Stufen-Pipeline (IF/ID/EX/MEM/WB), Latenz vs. Durchsatz, Speedup-Berechnung, Hazards (Structural/Data/Control) und Forwarding. Mit interaktivem Pipeline-Visualizer + Klausur-Quiz. Quelle: Patterson/Hennessy.
Petri-Netze (Carl Adam Petri 1962): bipartiter Graph aus Stellen (Kreise, Zustände) + Transitionen (Rechtecke, Aktionen) + Marken (Tokens) + Kanten (Pfeile). Aktivierungs-Bedingung: alle Pre-Stellen ≥ 1 Marke. Klassisches Erzeuger-Verbraucher-Pattern. Eigenschaften (Erreichbarkeit / Beschränktheit / Lebendigkeit L0-L4 / Deadlock-Freiheit). Varianten (Gefärbte Petri-Netze Jensen 1981 / Zeitbehaftet / Stochastisch / Hierarchisch). Ausdrucksstärker als endliche Automaten. Mit interaktivem Petri-Netz-Simulator (Erzeuger-Verbraucher mit Puffer, klickbare Transitionen).
Reguläre Ausdrücke beschreiben reguläre Sprachen: Konkatenation, Alternative, Kleene-Stern, Operator-Präzedenz, Satz von Kleene (Regex = DFA = NFA) und Thompson-Konstruktion. Mit interaktivem Regex-Matcher + Klausur-Quiz. Quelle: Schöning.
Transportschicht im Vergleich: TCP (verbindungsorientiert, ACK, Reihenfolge) vs. UDP (verbindungslos, schnell). 3-Way-Handshake, Sliding Window, Anwendungs-Zuordnung. Mit Sequenz-Visualizer + Klausur-Quiz.
IPv4-Adressen, CIDR-Präfix, Subnetzmaske, Netz-/Broadcast-Adresse, Host-Anzahl (2^n − 2). Subnetze berechnen Schritt-für-Schritt. Mit interaktivem Subnetting-Rechner + Klausur-Quiz.
Kontextfreie Grammatiken erzeugen verschachtelte Strukturen: 4-Tupel (V, Σ, P, S), Produktionen, Ableitung, Ableitungsbaum, Mehrdeutigkeit und die Chomsky-Hierarchie (Typ 2). Mit interaktivem Ableitungsbaum-Builder + Klausur-Quiz. Quelle: Vossen/Witt.
3-Ebenen-Architektur (ANSI-SPARC 1975): konzeptionell (WAS, ER + UML) → logisch (WIE, Relationen-Schema mit PK/FK) → physisch (WOMIT, SQL-DDL mit Datentypen + Indexen). Datenunabhängigkeit (logisch + physisch). External / Conceptual / Internal Schema. ARIS-Bezug (Fachkonzept/DV/Implementierung). Forward vs. Reverse Engineering. Werkzeuge pro Ebene (draw.io/Enterprise Architect für konzept, ERwin/dbdiagram.io für logisch, pgAdmin/Prisma für physisch). Mit interaktiver Pyramide-Visualisierung + Online-Shop-Beispiel auf 3 Ebenen.
Aus Logikgattern werden Rechenschaltungen: Halbaddierer (XOR + AND), Volladdierer, 4-Bit-Ripple-Carry-Addierer mit Carry-Propagation, Multiplexer und Decoder. Schaltnetz vs. Schaltwerk. Mit interaktivem Schaltnetze-Simulator + Klausur-Quiz. Quelle: Hoffmann, Tanenbaum.
Funktionale Anforderungen aus Nutzer-Perspektive beschreiben. User Stories (Scrum-kurz: 'Als X möchte ich Y, damit Z') + Akzeptanzkriterien in Gherkin (Given/When/Then). Use Cases (UML-detailliert: Vorbedingungen/Hauptszenario/Alternativen). INVEST-Kriterien, include/extend-Beziehungen, Personas. Mit interaktivem Use-Case-Diagramm.
GoF-Entwurfsmuster (1994): bewährte Lösungen für wiederkehrende OOP-Probleme. 3 Kategorien: Creational (Singleton/Factory/Builder), Structural (Adapter/Decorator/Facade), Behavioral (Observer/Strategy/Command). Mit Code-Beispielen (Java), UML-Skizzen, Pros/Cons. SOLID-Prinzipien als Begleiter. Mit interaktivem Pattern-Explorer für die 4 wichtigsten Patterns.
Prozess (isolierter Adressraum) vs. Thread (geteilter Heap/Code, eigener Stack). Kontextwechsel-Kosten, Prozess-Zustände, IPC vs. gemeinsamer Speicher. Mit Speicher-Visualizer + Klausur-Quiz.
Warum die CPU trotz langsamem RAM schnell bleibt: Speicher-Pyramide (Register bis HDD), zeitliche/räumliche Lokalität, Cache-Mapping (direct-mapped, satz-assoziativ), Tag/Index/Offset, Hit/Miss, AMAT und die 3 C's. Mit interaktivem Cache-Visualizer + Klausur-Quiz. Quelle: Patterson/Hennessy.
Das mächtigste Berechnungsmodell: Turing-Maschinen. 7-Tupel, unendliches Band, Lese-/Schreibkopf, Konfiguration, Church-Turing-These, Chomsky-Typ-0 und Varianten. Mit interaktivem TM-Simulator (Schritt-für-Schritt) + Klausur-Quiz. Quelle: Schöning, Sipser.
Wie Code zu Maschinensprache wird: Assembler vs. Compiler, Register + Load-Store-Prinzip, Befehlsarten (Arithmetik, LW/SW, Sprünge), Befehlsformate (R/I/J-Type) und Adressierungsarten. Mit interaktivem Assembler-Simulator (Schritt-für-Schritt) + Klausur-Quiz. Quelle: Patterson/Hennessy.
CPU-Scheduling-Algorithmen im Vergleich: FCFS, SJF (optimal), Round-Robin, Priority. Wartezeit + Durchlaufzeit berechnen, Gantt-Charts, Convoy-Effekt, Starvation. Mit Gantt-Visualizer + Klausur-Quiz.
Architektur-Stile mit Trade-offs: Schichten-Architektur (UI→Business→Persistenz, klar strukturiert), MVC (Model/View/Controller für UI), Microservices (kleine eigenständige Services mit eigener DB), Hexagonal (Ports & Adapters). Plus Event-Driven, Serverless. CAP-Theorem, Monolith-vs-Microservices-Vergleich, wann was wählen.
Statische Sicht auf OOP-Systeme: Klasse als Rechteck mit 3 Abschnitten (Name/Attribute/Methoden), Sichtbarkeit (+ public / − private / # protected / ~ package), 6 Beziehungs-Typen (Assoziation, Aggregation ◇, Komposition ◆, Vererbung △, Realisierung gestrichelt △, Abhängigkeit gestrichelter Pfeil), Multiplizitäten (1, 0..1, *, 1..*). Mit interaktivem Beziehungs-Visualizer.
Architektur-Evolution Monolith (Pre-2010) → SOA mit ESB (2000er-2010er) → Microservices (Fowler/Lewis 2014). SOA-Manifest 2009 + ESB-Aufgaben. 8 Microservices-Charakteristika (Componentization + Bounded Contexts + Smart Endpoints/Dumb Pipes + Decentralized Data). SOA vs. Microservices Vergleich (Granularität / Kommunikation / Daten / Governance / Tech-Stack). Microservices-Pattern (Service Discovery / API Gateway / Circuit Breaker Nygard / Saga / Event-Driven). Service Mesh (Istio, Linkerd, Envoy). Cloud-Native Stack (Docker + Kubernetes). Conway's Law (1968) + Inverse Maneuver. Domain-Driven Design Bounded Context (Evans 2003). Trends 2024 (Modular Monolith Revival, Serverless, gRPC). Mit interaktivem 3-Architektur-Vergleich-Visualizer.
Test-Strategie nach Mike Cohn: Pyramide mit Unit (Basis, ~70-80%), Integration (Mitte), E2E (Spitze). AAA-Pattern (Arrange/Act/Assert), FIRST-Prinzipien, Test Doubles (Dummy/Stub/Mock/Spy/Fake), Coverage-Diskussion. Mit interaktivem Pyramide-Lab zum Experimentieren.
TDD nach Kent Beck (1999): Tests ZUERST schreiben, dann Code. Red-Green-Refactor-Zyklus, die 3 Gesetze von TDD (Robert C. Martin), Vor-/Nachteile, wann (un-)geeignet. TDD vs. BDD vs. ATDD. Mit interaktivem Schritt-für-Schritt-Beispiel.
Git als verteiltes Versionskontroll-System: 3 Bereiche (Working Directory, Staging Area, Repository), Commits, Branches, Merge vs. Rebase, .gitignore, Konflikt-Lösung. Branching-Strategien (Git Flow, GitHub Flow, Trunk-Based). Mit interaktivem Workflow-Stepper.
Code-Reviews als zentrales QS-Werkzeug: finden 60-90 % der Bugs vor Production. Pull-Request-Workflow, Review-Schwerpunkte (Funktionalität/Lesbarkeit/Architektur/Tests/Security/Performance), Best-Practices für Reviewer + Author, Kommentar-Severity (Blocker/Suggestion/Nit/Question), Anti-Patterns (Rubber-Stamping/Bikeshedding). Plus QS-Tools (Linting, Static Analysis). Mit Klassifikations-Übung.
Continuous Integration + Continuous Delivery/Deployment: automatisierte Pipeline von Code-Push bis Production. 8 typische Stages (Lint/Unit/Integration/Build/Staging-Deploy/E2E/Production/Smoke), CI/CD-Tools (GitHub Actions, GitLab CI, Jenkins), Blue-Green vs. Canary-Deployment, Anti-Patterns. Mit interaktivem Pipeline-Stepper.