
Programming today is a race between software engineers
striving to build bigger and better idiot-proof programs,
and the universe trying to build bigger and better idiots.
So far, the universe is winning.
1 Daten und Algorithmen
1.1 Grundbegriffe: Nachricht und Information
1.2 Übersicht über den Aufbau eines Computers
1.3 Programmierung
1.4 Algorithmische Sprachen
1.5 Vom Problem zur Lösung
1.5.1 Überblick
1.5.2 Problemanalyse
1.5.3 Lösungsstrategien
1.6 Entwicklung und Darstellung des Algorithmus
1.6.1 Programmstrukturen
1.6.2 Programmablaufplan
1.6.3 Struktogramm
1.7 Programmentwicklung
1.8 Einführung in Datenstrukturen
1.8.1 Datenorientierte Programmentwicklung
1.8.2 Datentypen
1.8.3 skalare Standardtypen
1.8.4 strukturierte Typen
1.8.5 Dateien
1.9 Softwarequalitätssicherung
1.9.1 Testen von Software
1.9.2 Verifikation von Software
1.9.3 Testplanung und Testdokumentation
1.10 Zusammenfassung: Der Weg zum Programm
2 Programmstrukturen
2.1 Grundelemente eines C-Programms
2.2 Auswahlstrukturen mit if .. else
2.3 Bedingungsausdrücke mit dem Operator ?:
2.4 Mehrfachauswahl mit switch .. case
2.5 Wiederholungsstrukturen mit while
2.6 Wiederholungsstrukturen mit for
2.7 Wiederholungsstrukturen mit do .. while
2.8 Unstrukturierte Kontrollanweisungen
2.9 Zusicherungen (Assertions)
2.10 Der C Präprozessor
3 Unterprogramme - Funktionen
3.1 Konzept
3.2 Parameter
3.3 Lebensdauer (Gültigkeitsbereich) von Namen
3.4 Rekursion und Iteration
3.5 Der exit-Status
3.6 Endlichkeit von Programmen
3.7 Seiteneffekte
3.8 Kommandozeilenparameter
3.9 Ein- und Ausgabefunktionen
3.10 Debuggen auf Quelltextebene
4 Datentypen unter C
4.1 Zahlen, Zahlensysteme
4.2 Elementare Typen, Qualifizierer, Speicherklassen
4.3 Konstanten
4.4 Aufzählungstypen mit enum
4.5 Arithmetische Operatoren
4.6 Logische Datentypen und Operatoren, Vergleiche
4.7 Zusammengesetzte Operatoren, implizite Typumwandlung
4.8 Felder (Arrays)
4.9 Zeichen- und Stringverarbeitung
4.10 Record und varianter Record
4.11 Bitfelder
4.12 Initialisierung
5 Dateien
5.1 Zugriffsart
5.2 Grundlegende Abläufe auf Dateien
5.3 Textdateien
5.4 Binärdateien
5.5 Dateien mit wahlfreiem Zugriff
5.6 Weitere Dateifunktionen (tabellarisch)
5.7 Verarbeitung von Verzeichnissen
6 Zeiger (Pointer)
6.1 Grundlagen Zeiger
6.2 Zeiger und Funktionsargumente
6.3 Zeigerarithmetik
6.4 Zeiger und Array
6.5 Zeiger-Array
6.6 Zeiger auf Funktionen
6.7 Wiederholung: Argumente der Kommandozeile
7 Dynamische Datenstrukturen
7.1 Dynamische Speicherverwaltung
7.2 Dynamische Datenstrukturen
7.3 Lineare Listen
7.4 Baumstrukturen
8 Ausgewählte Algorithmen
8.1 Verarbeitung von Zeichenketten
8.2 Uhrzeit- und Datumsarithmetik
8.3 Numerik
8.4 Statistik
8.5 Suchen und Sortieren
8.6 Implementierung von Mengen
8.7 Exkurs: Prozesse und Signale
8.8 Common Gateway Interface in C
9 Programmierstil, Fallstricke
9.1 Programmierstil
9.2 Fallen in C
Programmierskript von Prof. R. Thomas
Englischsprachiger C-Kurs
Understanding Pointers
comp.lang.c Frequently Asked Questions
Download
des gesamten Skripts
