diff --git a/docs/programming-concepts-universal.md b/docs/programming-concepts-universal.md
new file mode 100644
index 0000000..d671f68
--- /dev/null
+++ b/docs/programming-concepts-universal.md
@@ -0,0 +1,646 @@
+# π Interaktiver Programmierkurs: Von C zu universellen Konzepten
+
+*Ein Kurs fΓΌr C/C++-Einsteiger mit Fokus auf ΓΌbertragbare Programmierkonzepte*
+
+---
+
+## π KursΓΌbersicht
+
+**Zielgruppe:** Student mit C-Grundlagen, geplantem C++-Umstieg
+**Kursdauer:** 8 Wochen (selbstgewΓ€hltem Tempo)
+**Lernziel:** SprachunabhΓ€ngige Programmierkonzepte verstehen und auf beliebige Sprachen anwenden
+
+---
+
+## πΊοΈ Modul-Struktur
+
+```
+Woche 1-2: Grundlagen & Denkweisen
+βββ Modul 1: Das Memory-Modell (Stack vs Heap)
+βββ Modul 2: Datentypen als Konzepte (nicht Syntax)
+βββ Checkpoint A: SelbsteinschΓ€tzung
+
+Woche 3-4: Kontrollstrukturen & Logik
+βββ Modul 3: Flusskontrolle universell
+βββ Modul 4: Funktionen als Abstraktion
+βββ Checkpoint B: Mini-Projekt #1
+
+Woche 5-6: Datenstrukturen
+βββ Modul 5: Arrays, Listen, Strukturen
+βββ Modul 6: Pointer & Referenzen verstehen
+βββ Checkpoint C: Datenstruktur-Implementierung
+
+Woche 7-8: OOP & Fortgeschrittenes
+βββ Modul 7: Von structs zu Objekten (C β C++ β Konzept)
+βββ Modul 8: Modularisierung & Design Patterns
+βββ Final-Projekt: SprachunabhΓ€ngige Anwendung
+```
+
+---
+
+## π§ Modul 1: Das Memory-Modell
+
+### Konzept: Speicher ist universell
+
+**In C:**
+```c
+int stack_var = 42; // Stack - automatisch verwaltet
+int* heap_var = malloc(4); // Heap - manuell verwaltet
+*heap_var = 42;
+free(heap_var); // Nicht vergessen!
+```
+
+**Das universelle Konzept:**
+> **Stack** = Kurzlebig, automatisch, schnell
+> **Heap** = Langfristig, manuell/verwaltet, flexibel
+
+### π― Interaktive Γbung 1.1: Memory-Map
+
+Zeichne ein Diagramm:
+
+```
+βββββββββββββββββββ High Address
+β Stack β β Wachst nach unten (lokal vars)
+β β β
+β β
+β β β
+β Heap β β Wachst nach oben (malloc/new)
+β (freier β
+β Speicher) β
+β β
+β Static/Data β β Globale Variablen, Strings
+β (Programm) β
+βββββββββββββββββββ Low Address
+```
+
+**Frage:** Was passiert bei dieser C-Code Sequenz?
+
+```c
+void foo() {
+ int a = 10; // Wo landet das?
+ int *b = malloc(sizeof(int)); // Und das?
+ *b = 20;
+ // b vergessen zu free()
+}
+```
+
+
+Antwort anzeigen
+
+- `a` β **Stack** (automatisch gelΓΆscht nach foo())
+- `b` β **Stack** (nur der Pointer!)
+- `*b` (der Wert 20) β **Heap**
+- β οΈ **Memory Leak**: *b bleibt im Heap, weil free() vergessen wurde
+
+**Universelles Konzept:** Jede Sprache hat Stack/Heap. Python/Java haben Garbage Collection, C/C++ nicht, Rust hat Ownership.
+
+
+---
+
+## π’ Modul 2: Datentypen als Konzepte
+
+### Konzept: Typen sind Speicher + Operationen
+
+**Nicht lernen:** "int ist 4 Bytes"
+**Lernen:** "int ist ein ganzzahliger Typ mit begrenztem Bereich"
+
+### π― Interaktive Γbung 2.1: Typ-Universum
+
+Ordne diese Konzepte zu:
+
+| Konzept | C | C++ | Python | Java | JavaScript |
+|---------|---|---|--------|------|------------|
+| Ganzzahl (fix) | `int` | `int` | - | `int` | `Number` |
+| Ganzzahl (beliebig) | `long long` | `long long` | `int` | `BigInteger` | `BigInt` |
+| FlieΓkomma | `float` | `float` | `float` | `float` | `Number` |
+| HochprΓ€zision | `double` | `double` | `float` | `double` | - |
+| Wahrheitswert | `bool` (C99) | `bool` | `bool` | `boolean` | `boolean` |
+| Text | `char[]` | `string` | `str` | `String` | `string` |
+
+**Erkenntnis:** Konzepte sind gleich, Syntax variiert!
+
+### π§ͺ Praxis 2.2: Typische Fehler
+
+```c
+// C-Fehler
+int a = 2147483647;
+int b = a + 1; // Was ist b nun?
+```
+
+**Antwort:** Γberlauf (Overflow). `b` wird -2147483648 (Integer Overflow)
+
+**Universelles Konzept:** Alle Typen haben Grenzen. Kenne deine Grenzen!
+
+---
+
+## π Modul 3: Flusskontrolle universell
+
+### Konzept: Programme = Sequenz + Auswahl + Wiederholung
+
+**Strukturdiagramm:**
+
+```
+SEQUENZ
+ β
+ βΌ
+ββββββββ
+βAktionβ
+ββββββββ
+ β
+ βΌ
+ββββββββ
+βAktionβ
+ββββββββ
+
+AUSWAHL (if/else)
+ β
+ βΌ
+ββββββββββ
+βBedingung?β
+ββββββββββ
+ βJa βNein
+ βΌ βΌ
+ββββββ ββββββ
+βDannβ βSonstβ
+ββββββ ββββββ
+
+WIEDERHOLUNG (loops)
+ β
+ βΌ
+ββββββββββββ
+βBedingung?βββββββ
+ββββββββββββ β
+ βJa βNein
+ βΌ β
+ββββββββ β
+βBody βββββββββββ
+ββββββββ
+```
+
+### π― Interaktive Γbung 3.1: Struktur erkennen
+
+Welche Struktur hat dieser Code?
+
+```c
+// Code A
+for (int i = 0; i < 10; i++) {
+ if (i % 2 == 0) continue;
+ printf("%d ", i);
+}
+
+// Code B
+int x = 5;
+if (x > 0) {
+ if (x < 10) {
+ printf("Im Bereich");
+ }
+}
+
+// Code C
+while (1) {
+ char c = getchar();
+ if (c == 'q') break;
+ process(c);
+}
+```
+
+
+LΓΆsungen
+
+- **Code A:** Wiederholung (for) + Auswahl (if) + Sprung (continue)
+- **Code B:** Verschachtelte Auswahl (nested if)
+- **Code C:** Endlosschleife (while(1)) + Abbruchbedingung (break)
+
+**Universell:** `for`, `while`, `if`, `break`, `continue` existieren in fast allen Sprachen mit Γ€hnlicher Semantik.
+
+
+---
+
+## π§ Modul 4: Funktionen als Abstraktion
+
+### Konzept: Funktionen kapseln KomplexitΓ€t
+
+**Analogie:** Funktion = Rezept
+- **Eingabe:** Zutaten (Parameter)
+- **Prozess:** Anleitung (FunktionskΓΆrper)
+- **Ausgabe:** Gericht (Return-Wert)
+
+### π― Interaktive Γbung 4.1: Black-Box-Denken
+
+Betrachte diese Funktion:
+
+```c
+int mystery(int a, int b) {
+ int result = 0;
+ while (b != 0) {
+ if (b & 1) result += a;
+ a <<= 1;
+ b >>= 1;
+ }
+ return result;
+}
+```
+
+**Ohne Code zu analysieren:** Was kΓΆnnte diese Funktion tun?
+
+
+Tipp + LΓΆsung
+
+**Tipp:** Teste mit Werten:
+- `mystery(3, 4)` β ?
+- `mystery(5, 5)` β ?
+
+**LΓΆsung:** Es ist die **Γ€gyptische Multiplikation** (schnelle Multiplikation ohne `*`).
+
+**Konzept:** Funktionen sind Black Boxes. Verstehe Input/Output, nicht unbedingt Implementation.
+
+
+### π§ͺ Praxis 4.2: Design by Contract
+
+```c
+/**
+ * Berechnet den Durchschnitt eines Arrays.
+ *
+ * PRECONDITION: array != NULL, size > 0
+ * POSTCONDITION: RΓΌckgabe = Summe(array) / size
+ *
+ * @param array Nicht-leeres Array von double
+ * @param size Anzahl der Elemente (> 0)
+ * @return Durchschnittswert
+ */
+double average(const double* array, size_t size);
+```
+
+**Universelles Konzept:** Design by Contract (Eiffel, aber ΓΌberall anwendbar)
+
+---
+
+## π¦ Modul 5: Datenstrukturen
+
+### Konzept: Strukturen organisieren Daten
+
+**Evolution:**
+
+```c
+// 1. Primitive
+int score = 100;
+
+// 2. Array (Sammlung gleicher Typen)
+int scores[5] = {100, 95, 87, 92, 88};
+
+// 3. Struct (Zusammengesetzter Typ)
+typedef struct {
+ char name[50];
+ int scores[5];
+ float average;
+} Student;
+
+// 4. Dynamische Struktur (Linked List)
+typedef struct Node {
+ Student data;
+ struct Node* next;
+} Node;
+```
+
+**Universelle Datenstrukturen:**
+| Struktur | Verwendung | Sprachen |
+|----------|-----------|----------|
+| Array | Indexierter Zugriff | Alle |
+| Linked List | EinfΓΌgen/LΓΆschen | C, C++, Java |
+| Stack | LIFO (Undo, Parsing) | Alle (meist builtin) |
+| Queue | FIFO (Scheduling) | Alle |
+| Hash Map | SchlΓΌssel-Wert Lookup | Python, JS, Java, C++ |
+| Tree | Hierarchien | Alle |
+
+### π― Interaktive Γbung 5.1: Struktur wΓ€hlen
+
+**Szenarien:** Welche Datenstruktur?
+
+1. **Browser-History (Back/Forward)** β ?
+2. **Druck-Warteschlange** β ?
+3. **WΓΆrterbuch (Wort β Definition)** β ?
+4. **DOM-Elemente einer Webseite** β ?
+
+
+Antworten
+
+1. **Stack** (LIFO - letzter Besuch zuerst zurΓΌck)
+2. **Queue** (FIFO - erste Anfrage zuerst drucken)
+3. **Hash Map/Dictionary** (O(1) Lookup)
+4. **Tree** (hierarchische Struktur, Parent-Child)
+
+**Konzept:** Datenstrukturen sind sprachunabhΓ€ngige Muster!
+
+
+---
+
+## π― Modul 6: Pointer & Referenzen
+
+### Konzept: Indirektion ist universell
+
+**Die 3 Ebenen:**
+
+```
+Wert βββββββ Variable βββββββ Pointer
+ β β β
+ β β β
+ βΌ βΌ βΌ
+ 42 int x int* p
+ x = 42 p = &x
+ *p = 42
+```
+
+**In verschiedenen Sprachen:**
+
+| Sprache | Konzept | Syntax |
+|---------|---------|--------|
+| C | Pointer | `int* p = &x;` |
+| C++ | Reference | `int& r = x;` |
+| Python | Name/Referenz | `a = b` (referenziert selbes Objekt) |
+| Java | Reference | `Object o = obj;` |
+| Rust | Borrowing | `&x` (immutable), `&mut x` (mutable) |
+| Go | Pointer | `p := &x` |
+
+### π― Interaktive Γbung 6.1: Pointer-Diagramm
+
+Zeichne fΓΌr diesen Code:
+
+```c
+int a = 5;
+int b = 10;
+int* p = &a;
+int* q = &b;
+p = q;
+*p = 20;
+```
+
+**Fragen:**
+1. Was ist `a`?
+2. Was ist `b`?
+3. Was ist `*p`?
+4. Was ist `*q`?
+
+
+Diagramm + LΓΆsung
+
+```
+Initial:
+βββββββ βββββββ
+β a β 5 β b β 10
+β(0x100)β β(0x104)β
+βββββββ βββββββ
+
+p = &a:
+βββββββ
+β p βββββ βββββββ
+β(0x200)β β a β 5
+βββββββ βββββββ
+
+q = &b:
+βββββββ
+β q βββββ βββββββ
+β(0x204)β β b β 10
+βββββββ βββββββ
+
+p = q:
+βββββββ
+β p ββββ
+β(0x200)β β
+βββββββ β
+βββββββ β
+β q βββΌβ
+β(0x204)β βββββββ
+βββββββ βββββ b β 10
+ β(0x104)β
+ βββββββ
+
+*p = 20:
+ βββββββ
+ β b β 20 βββ p und q zeigen hierhin!
+ β(0x104)β
+ βββββββ
+```
+
+**Antworten:**
+1. `a` = 5 (unverΓ€ndert!)
+2. `b` = 20 (verΓ€ndert via *p)
+3. `*p` = 20
+4. `*q` = 20
+
+**Konzept:** Pointer sind Adressen. Mehrere Pointer kΓΆnnen auf dieselbe Adresse zeigen (Aliasing).
+
+
+---
+
+## ποΈ Modul 7: Von structs zu Objekten
+
+### Konzept: Daten + Verhalten = Objekt
+
+**Evolution in C β C++:**
+
+```c
+// C: Daten und Funktionen getrennt
+typedef struct {
+ float x, y;
+} Point;
+
+float point_distance(Point* a, Point* b) {
+ return sqrt((a->x - b->x) ** 2 + ...);
+}
+```
+
+```cpp
+// C++: Daten und Verhalten zusammen
+class Point {
+private:
+ float x, y;
+
+public:
+ Point(float x, float y) : x(x), y(y) {}
+
+ float distanceTo(const Point& other) const {
+ return sqrt((x - other.x) ** 2 + ...);
+ }
+};
+```
+
+**Universelles OOP-Konzept:**
+- **Kapselung:** Daten schΓΌtzen (private/public)
+- **Abstraktion:** Wie etwas funktioniert ist egal
+- **Vererbung:** "Ein Hund IST EIN Tier"
+- **Polymorphie:** Gleiche Schnittstelle, verschiedene Implementationen
+
+### π― Interaktive Γbung 7.1: OOP-Konzepte zuordnen
+
+```cpp
+class Animal {
+public:
+ virtual void speak() = 0; // Was ist das?
+};
+
+class Dog : public Animal { // Was ist das?
+private:
+ string name; // Was ist das?
+
+public:
+ void speak() override { // Was ist das?
+ cout << "Wuff!" << endl;
+ }
+};
+```
+
+
+LΓΆsungen
+
+- `virtual ... = 0` β **Abstrakte Methode** (Polymorphie)
+- `class Dog : public Animal` β **Vererbung** (Dog IST EIN Animal)
+- `private: string name` β **Kapselung** (Daten geschΓΌtzt)
+- `void speak() override` β **Polymorphe Implementation**
+
+**Konzept:** Diese 4 Prinzipien existieren in Python, Java, C#, Ruby, Swift... nur Syntax variiert!
+
+
+---
+
+## π¨ Modul 8: Modularisierung & Design
+
+### Konzept: Trennung von Belangen (Separation of Concerns)
+
+**Schichten-Architektur (universell):**
+
+```
+βββββββββββββββββββββββββββββββ
+β Presentation β β UI, Output
+β (View/Controller) β
+βββββββββββββββββββββββββββββββ€
+β Business Logic β β Verarbeitung
+β (Model/Services) β
+βββββββββββββββββββββββββββββββ€
+β Data Access β β Datenbank, Files
+β (Repository/DAO) β
+βββββββββββββββββββββββββββββββ€
+β Infrastructure β β Logging, Config
+β (Utils/Helpers) β
+βββββββββββββββββββββββββββββββ
+```
+
+**In C:**
+```
+src/
+βββ main.c # Einstieg
+βββ ui/ # Presentation
+β βββ display.c
+β βββ input.c
+βββ core/ # Business Logic
+β βββ calculator.c
+β βββ validator.c
+βββ data/ # Data Access
+β βββ file_io.c
+β βββ database.c
+βββ utils/ # Infrastructure
+ βββ logger.c
+ βββ config.c
+```
+
+**In C++:**
+```
+src/
+βββ main.cpp
+βββ view/ # Presentation (MVC)
+βββ controller/ # Flow Control
+βββ model/ # Business Logic
+βββ repository/ # Data Access
+βββ utils/ # Infrastructure
+```
+
+### π― Interaktive Γbung 8.1: Design Patterns
+
+**WΓ€hle das passende Pattern:**
+
+| Problem | Pattern | Beschreibung |
+|---------|---------|--------------|
+| Genau eine DB-Verbindung | Singleton | Nur eine Instanz erlaubt |
+| Verschiedene Zahlungsmethoden | Strategy | Austauschbare Algorithmen |
+| Objekte ohne `new` erstellen | Factory | Zentralisierte Erstellung |
+| Schritte A β B β C ausfΓΌhren | Template Method | Algorithmus-Skelett |
+
+**Konzept:** Design Patterns sind sprachunabhΓ€ngige LΓΆsungen fΓΌr wiederkehrende Probleme!
+
+---
+
+## π Final-Projekt: SprachunabhΓ€ngige Anwendung
+
+### Aufgabe: Todo-App mit mehreren Implementationen
+
+**Anforderungen (sprachunabhΓ€ngig):**
+1. CRUD-Operationen fΓΌr Todos
+2. Speicherung (File oder Memory)
+3. CLI-Interface
+4. Modularer Aufbau
+
+**Implementiere in:**
+- **Version A:** C (Structs, Function Pointers)
+- **Version B:** C++ (Klassen, STL)
+- **(Optional) Version C:** Python oder JavaScript
+
+**Der Test:** Vergleiche die Implementationen. Welche Konzepte sind gleich? Was unterscheidet sich?
+
+---
+
+## π Checkpoints & SelbsteinschΓ€tzung
+
+### Checkpoint A (nach Modul 2)
+**Fragen:**
+- [ ] Ich kann Stack vs Heap erklΓ€ren
+- [ ] Ich kenne die Grenzen primitiver Typen
+- [ ] Ich verstehe, warum Konzepte wichtiger sind als Syntax
+
+### Checkpoint B (nach Modul 4)
+**Mini-Projekt:** Schreibe einen Taschenrechner mit:
+- MenΓΌ (Sequenz/Auswahl)
+- Mathematische Funktionen (Abstraktion)
+- Fehlerbehandlung
+
+### Checkpoint C (nach Modul 6)
+**Datenstruktur:** Implementiere eine dynamische Liste (wie `std::vector` oder Python `list`) in C mit:
+- `void list_append(List* list, int value)`
+- `int list_get(List* list, size_t index)`
+- `void list_remove(List* list, size_t index)`
+
+### Final Check
+- [ ] Ich kann Konzepte auf neue Sprachen ΓΌbertragen
+- [ ] Ich verstehe OOP-Prinzipien
+- [ ] Ich kann modularen Code strukturieren
+
+---
+
+## π Ressourcen & WeiterfΓΌhrendes
+
+### BΓΌcher
+- **"The C Programming Language"** (K&R) - Klassiker
+- **"C++ Primer"** (Lippman) - Umfassend
+- **"Clean Code"** (Martin) - SprachunabhΓ€ngig!
+- **"Design Patterns"** (Gang of Four) - Das Original
+
+### Online
+- **exercism.org** - SprachΓΌbergreifende Γbungen
+- **leetcode.com** - Algorithmen in beliebiger Sprache
+- **codewars.com** - Katas fΓΌr verschiedene Sprachen
+
+### Praxis-Tipp
+> Lerne eine zweite Sprache parallel! Wenn du C lernst, schau dir Python-Γquivalente an. Die Kontraste machen die Konzepte klarer.
+
+---
+
+## π― Abschluss
+
+**Die wichtigste Erkenntnis:**
+
+> Programmieren ist nicht das Lernen von Syntax. Es ist das Verstehen von Konzepten, die in jeder Sprache wiederkehren β nur mit anderem "Akzent".
+
+Wenn du diesen Kurs durchgearbeitet hast, kannst du:
+- Jede neue Sprache schneller lernen (Konzepte bereits bekannt)
+- Bessere Architektur-Entscheidungen treffen
+- SprachΓΌbergreifend als Entwickler arbeiten
+
+**Viel Erfolg! π**