Prozedurale Programmiertechnik

Die Programmierung ist ein zentrales Thema der Informationstechnologie. Erst die Existenz von System- und Anwendungssoftware ermöglicht das breite Einsatzspektrum von Computern, wie wir es heute kennen. Mit ein und derselben Hardware können wir Texte schreiben, Mails verschicken, Spielen, oder auch eine Fertigungsstrasse steuern.

Für die Programmierung steht eine kaum noch überschaubare Vielzahl von Programmiersprachen zur Verfügung. Die einzelnen Programmiersprachen sind aber von ihren grundlegenden Konzepten nicht völlig unterschiedlich. Die Programmiersprachen können daher in eine überschaubare Menge von Familien klassifiziert werden. Eine (Unter-)Familie umfasst die prozeduralen Programmiersprachen. Prozedurale Programmiersprachen sind weit verbreitet und bekannt, was damit zu tun hat, dass sie die Arbeitsweise der Von-Neumann-Architektur sehr direkt abbilden. Damit stellen sie zum einen den offensichtlichsten Ansatz der Programmierung dar und versprechen zum anderen eine schnelle Ausführung aufgrund ihrer systemnahen Arbeitsweise.

Eine Möglichkeit, die prozedurale Programmiertechnik zu vermitteln, wäre ein Programmierkurs in einer speziellen prozeduralen Sprache, z.B. C. Mit der Vorlesung Prozedurale Programmiertechnik verfolgen wir aber einen allgemeineren Weg. Wir werden die übergreifenden Konzepte und Techniken der prozeduralen Programmiersprachen betrachten. Um einen praktischen Bezug zu haben, werden wir uns ansehen, wie diese Konzepte und Techniken in der speziellen Programmiersprache C umgesetzt sind.

Themen

1.Einleitung
2.Grundlagen
2.1Der Aufbau eines universellen Rechners
2.2Programmierung
2.3Klassifikation von Programmiersprachen
2.4Compiler
3.Variablen und Konstanten
3.1Bindung
3.2Datentypen
3.3Typprüfung
3.4Typumwandlung
4.Ausgabe und Eingabe
4.1Ausgabe
4.2Eingabe
5.Anweisungen und Ausdrücke
5.1Anweisungen
5.2Ausdruck
5.3Arithmetische Operatoren
5.4Zuweisungen
5.5Logische Operatoren
5.6Bit-Operatoren
5.7Inkrement und Dekrement
6.Kontrollstrukturen
6.1Auswahl / Verzeigung
6.2Schleife
6.3Aufruf / Prozedurkonzept
6.4Strukturierte Programmierung
6.5Block
7.Speicherverwaltung
7.1Speicherbereiche
7.2Sichtbarkeit
7.3Speicherklassen
8.Zusammengesetzte Datentypen
8.1Felder
8.2Strukturen (Records)
8.3Unions (Varianten)
8.4Aufzählungen
8.5Namen für Datentypen
9.Zeiger
9.1Grundlagen
9.2Zeiger als Parameter
9.3Zeiger und Felder
9.4Zeigerarithmetik
9.5Konstante Zeiger
9.6Zeiger auf Strukturen
10.Betriebssystemanbindung
10.1Dynamische Speicherverwaltung
10.2Parameterübergabe
10.3Dateien
10.4Aufruf von Betriebssystembefehlen
11.Werkzeuge
11.1Versionsverwaltung
11.2Make
11.3Debugger
11.4Profiler
11.5Integrierte Entwicklungsumgebung