Naturwissenschaften und Mathematik
für Schule, Auszubildende und Studenten, Bildungsträger und Schulen

Programmieren in C

C gehört zu den klassischen und wichtigsten Programmiersprachen und bildet bis heute eine wesentliche Grundlage vieler Bereiche der Informatik.
Die Sprache eignet sich besonders gut für alle, die nicht nur lernen möchten, wie man Programme schreibt, sondern auch besser verstehen wollen, wie Computer Programme tatsächlich verarbeiten.
Mein Unterricht richtet sich an Anfängerinnen und Anfänger, Schülerinnen und Schüler sowie Studierende in einführenden Programmierkursen.


Warum C lernen?
C vermittelt grundlegende Konzepte der Programmierung sehr direkt.
Dazu gehören beispielsweise:

  • Variablen und Datentypen
  • Operatoren
  • Ein- und Ausgabe
  • Bedingungen
  • Schleifen
  • Funktionen
  • Arrays und Zeichenketten
  • Zeiger
  • Speicherverwaltung
  • Strukturen
  • Dateien
  • modulare Programmierung

Gerade durch den bewussten Umgang mit Datentypen, Speicher und Adressen entsteht ein deutlich tieferes Verständnis dafür, wie Programme intern funktionieren.
Vom Algorithmus zum C-Programm
Auch beim Programmieren in C steht zunächst die eigentliche Problemlösung im Mittelpunkt.
Wir klären:
Welche Daten werden benötigt?
Welche Berechnungen sollen durchgeführt werden?
Welche Entscheidungen muss das Programm treffen?
Welche Vorgänge wiederholen sich?
Wie lässt sich ein größeres Problem in einzelne Funktionen aufteilen?
Erst danach wird der entwickelte Algorithmus Schritt für Schritt in C umgesetzt.
C auf unterschiedlichen Plattformen
Ein großer Vorteil von C ist die weite Verbreitung auf sehr unterschiedlichen Computersystemen.
C-Compiler gibt es unter anderem für:

  • Windows
  • Linux
  • macOS
  • verschiedene Unix-Systeme
  • Einplatinencomputer
  • Mikrocontroller und eingebettete Systeme

Programme, die sich an den C-Sprachstandard und die Standardbibliothek halten, lassen sich deshalb häufig mit vergleichsweise geringem Aufwand auf unterschiedlichen Plattformen übersetzen.
Das bedeutet allerdings nicht, dass jedes C-Programm automatisch auf jedem Betriebssystem unverändert funktioniert.
Wer beispielsweise spezielle Funktionen von Windows oder Linux verwendet, macht sein Programm stärker von dieser Plattform abhängig.
Gerade deshalb ist C hervorragend geeignet, um den Unterschied zwischen standardisiertem, portablem Programmcode und betriebssystemspezifischer Programmierung kennenzulernen.
Ein Programm – verschiedene Betriebssysteme
Im Unterricht kann beispielsweise gezeigt werden, wie ein einfaches Programm auf unterschiedlichen Systemen kompiliert und ausgeführt wird.
Dabei wird deutlich:
Der Quelltext kann weitgehend gleich bleiben, während jeweils ein geeigneter Compiler für das verwendete Betriebssystem daraus ein ausführbares Programm erzeugt.
So lässt sich bereits beim Einstieg ein wichtiges Prinzip moderner Softwareentwicklung verstehen: Portabilität.
Typische Inhalte des Unterrichts
Wir beschäftigen uns beispielsweise mit:

  • Aufbau eines C-Programms
  • main()-Funktion
  • Variablen und Konstanten
  • Ganzzahlen und Fließkommazahlen
  • Zeichen und Zeichenketten
  • printf() und scanf()
  • if, else und switch
  • for, while und do-while
  • Funktionen und Parameter
  • Arrays
  • Zeigern
  • Strukturen
  • einfacher Datei-Ein- und Ausgabe
  • Headerdateien
  • Aufteilung größerer Programme auf mehrere Dateien
  • Fehlersuche und Debugging

Zeiger verstehen
Für viele Anfänger sind Zeiger zunächst einer der ungewohntesten Teile von C.
Gerade sie machen C jedoch besonders interessant.
Mit Zeigern lässt sich nachvollziehen, wie Daten im Speicher angesprochen und an Funktionen übergeben werden.
Dabei werden Begriffe wie

  • Speicheradresse
  • Referenzierung
  • Dereferenzierung
  • Pointer
  • Array
  • dynamischer Speicher        Schritt für Schritt erklärt.

Der Schwerpunkt liegt nicht darauf, möglichst komplizierten Code zu schreiben, sondern zunächst zu verstehen, was im Speicher geschieht.
Kleine Programme selbst entwickeln
Geeignete Übungsprojekte können beispielsweise sein:

  • Taschenrechner
  • Umrechnung von Einheiten
  • Zahlenfolgen
  • Primzahltests
  • Statistikprogramme
  • Sortierverfahren
  • Suchverfahren
  • kleine Dateiauswertungen
  • mathematische Berechnungen
  • einfache Simulationen

Dabei steigt der Schwierigkeitsgrad mit den vorhandenen Kenntnissen.
Besonders interessant für Technik und Naturwissenschaften
C spielt traditionell eine wichtige Rolle in technischen Anwendungen.
Die Sprache findet sich beispielsweise in Bereichen wie:

  • Betriebssystemen
  • Mikrocontrollern
  • eingebetteten Systemen
  • Mess- und Steuerungstechnik
  • hardwarenaher Programmierung
  • wissenschaftlichen Anwendungen

Damit ist C besonders interessant für Schülerinnen und Schüler sowie Studierende, die später in Informatik, Ingenieurwissenschaften, Elektrotechnik oder anderen technischen Bereichen arbeiten möchten.
Eine gute Grundlage für weitere Programmiersprachen
Wer C verstanden hat, erkennt viele Konzepte später in anderen Programmiersprachen wieder.
Schleifen, Bedingungen, Funktionen, Datentypen und viele grundlegende Schreibweisen finden sich in ähnlicher Form beispielsweise auch in C++, Java oder anderen Sprachen.
C vermittelt deshalb nicht nur eine einzelne Programmiersprache, sondern viele grundlegende Prinzipien der Programmierung.
C-Unterricht für Anfänger
Vorkenntnisse sind nicht zwingend erforderlich.
Eigene Aufgaben aus Schule, Studium oder Ausbildung können selbstverständlich in den Unterricht einbezogen werden.
Mein Ziel ist nicht nur, dass ein C-Programm am Ende funktioniert. Sie sollen verstehen, warum es funktioniert, wie Daten im Speicher verarbeitet werden und wie man Programme so schreibt, dass sie möglichst unabhängig von einer einzelnen Plattform bleiben.

E-Mail
Anruf