2026-04-15 00:10:54 +02:00
2026-04-15 00:10:54 +02:00
2026-04-15 00:10:35 +02:00

🎓 programming-concepts-universal

Interaktiver Programmierkurs: Von C zu universellen Konzepten

📋 Übersicht

Dieses Repository enthält einen kompletten Kurs für Programmieranfänger mit C-Grundlagen, der sich auf sprachunabhängige Konzepte konzentriert.

Zielgruppe: Student mit C-Erfahrung, geplantem C++-Umstieg
Kursdauer: 8 Wochen
Lernziel: Konzepte verstehen, die auf jede Programmiersprache übertragbar sind


📁 Repository-Struktur

.
├── README.md                           # Diese Datei
├── docs/
│   ├── programming-concepts-universal.md  # Hauptkurs-Dokument
│   └── quiz-fragen.md                    # Interaktive Quizfragen
├── src/
│   └── c_examples/                       # C Code-Beispiele
│       ├── module1_memory.c
│       ├── module2_datatypes.c
│       ├── module3_controlflow.c
│       ├── module4_functions.c
│       ├── module5_datastructures.c
│       ├── module6_pointers.c
│       ├── module7_oop_in_c.c
│       ├── module8_modularization.c
│       ├── Makefile
│       └── README.md
└── exercises/
    ├── checkpoint_a.c                    # Memory & Typen
    ├── checkpoint_b.c                    # Taschenrechner
    ├── checkpoint_c.c                    # Dynamische Liste
    └── final_project/                    # Todo-App
        ├── todo_c/
        └── todo_cpp/

🗺️ Kurs-Module

Modul Thema C-Beispiel C++-Gegenstück
1 Memory-Modell malloc/free new/delete, Smart Pointer
2 Datentypen int32_t, Overflow auto, constexpr
3 Flusskontrolle if/for/while Gleich
4 Funktionen Call-by-Value References, &
5 Datenstrukturen LinkedList, Stack STL: vector, stack
6 Pointer *, &, Arithmetik References, Smart Ptr
7 OOP Structs + Fct Ptrs class, virtual
8 Modularisierung MVC-Pattern Namespaces, Templates

🚀 Schnellstart

Voraussetzungen

# C-Compiler (gcc oder clang)
gcc --version

# C++-Compiler (optional für Vergleich)
g++ --version

# Make (optional)
make --version

Kompilieren

# Alle C-Beispiele kompilieren
cd src/c_examples
make all

# Einzelnes Modul
make module1
./module1

# Mit Debugging
make CFLAGS="-g -O0" module1
gdb ./module1

📖 Kursverwendung

Empfohlener Lernpfad

Woche 1-2:

  1. Lese docs/programming-concepts-universal.md Modul 1-2
  2. Bearbeite docs/quiz-fragen.md Fragen 1.1-2.3
  3. Kompiliere und teste module1_memory.c & module2_datatypes.c
  4. Checkpoint A bestehen

Woche 3-4:

  1. Modul 3-4 lesen
  2. Quizfragen 3.1-4.3
  3. Code-Beispiele: module3_controlflow.c, module4_functions.c
  4. 📝 Checkpoint B: Taschenrechner implementieren

Woche 5-6:

  1. Modul 5-6 lesen
  2. Quizfragen 5.1-6.3
  3. Code: module5_datastructures.c, module6_pointers.c
  4. 🔧 Checkpoint C: Eigene LinkedList implementieren

Woche 7-8:

  1. Modul 7-8 lesen
  2. Quizfragen 7.1-8.3 + Final
  3. Code: module7_oop_in_c.c + C++ Vergleich
  4. 🎓 Final-Projekt: Todo-App in C, dann C++

🧪 Quiz-System

Das Kursmaterial enthält 28 Quizfragen mit:

  • Multiple Choice
  • 📝 Code-Analyse
  • 🔍 Konzept-Fragen
  • 🎯 Score-Tabelle (0-28 Punkte)

Bewertung:

Punkte Bewertung
26-28 🏆 Meister
22-25 Experte
18-21 Gut
< 18 📚 Nacharbeiten

💡 Kernkonzepte

1. Memory-Modell (Universell)

┌─────────────────┐
│     Stack       │ ← Automatisch, schnell, begrenzt
│   (short-term)  │
├─────────────────┤
│      Heap       │ ← Manuell/verwaltet, flexibel
│   (long-term)   │
└─────────────────┘

In jeder Sprache: Stack/Heap existieren, Management variiert

2. Typen als Konzepte

// Nicht lernen: "int ist 4 Bytes"
// Lernen: "int ist ein ganzzahliger Typ mit begrenztem Bereich"

3. OOP-Prinzipien (Sprachunabhängig)

  • Kapselung: Daten schützen
  • Abstraktion: Wie ist egal
  • Vererbung: "IS-A" Beziehung
  • Polymorphie: Gleiche Schnittstelle

🔧 C vs C++ Vergleich

Feature C C++
Memory malloc/free new/delete, RAII
Strings char[] std::string
Arrays Fixed/dynamisch std::vector
OOP Simuliert Nativ (class)
Generics void* template<T>
Module Header Namespaces

📝 Checkpoints

Checkpoint A (nach Modul 2)

// Frage: Was ist der Output?
void test() {
    int x = 42;
    int *p = &x;
    // Was ist p nach Ende von test()?
}

Checkpoint B (nach Modul 4)

Erstelle einen Taschenrechner mit:

  • Menü-System (if/switch)
  • Mathematische Funktionen
  • Rekursive Fakultät
  • Fehlerbehandlung

Checkpoint C (nach Modul 6)

Implementiere eine dynamische Liste:

typedef struct {
    int* data;
    int size;
    int capacity;
} Vector;

void vector_push(Vector* v, int value);
int vector_get(Vector* v, int index);

Final-Projekt

Todo-App mit:

  1. CRUD-Operationen
  2. File-Speicherung
  3. CLI-Interface
  4. Modularer Architektur

📚 Ressourcen

Bücher

  • "The C Programming Language" (K&R) - Klassiker
  • "C++ Primer" (Lippman) - Umfassend
  • "Clean Code" (Robert C. Martin) - Sprachunabhängig!
  • "Design Patterns" (Gang of Four) - Das Original

Online

Dokumentation


🤝 Mitwirken

Dieser Kurs ist für Bildungszwecke gedacht. Verbesserungsvorschläge willkommen!


📄 Lizenz

MIT License - Für Bildungszwecke frei nutzbar.


Viel Erfolg beim Lernen! 🚀

Remember: Programmieren ist nicht Syntax lernen es sind Konzepte, die in jeder Sprache wiederkehren, nur mit anderem Akzent.

Description
Interaktiver Programmierkurs: Von C zu universellen Konzepten
Readme 107 KiB
Languages
C 68.1%
C++ 30.5%
Makefile 1.4%