Einführung in die Programmierung

Inhalt und Lernziele des Kapitels Einführung in die Programmierung.

Einordnung des Artikels

Inhaltsverzeichnis

  1. Eigenschaften von Algorithmen
  2. Strukturelemente von Algorithmen
  3. Pseudocode und formale Sprachen
  4. Einführung in die Programmierung: Fundamentale Datentypen
  5. Übersicht über Programmiersprachen
  6. Auszeichnungssprachen (markup language)
  7. Aufgaben zur Einführung in die Programmierung

Zusammenfassung und Formulierung der Lernziele

Im ersten Teil Rechnerarchitektur der Einführung in die Informatik wurde der Computer als universelle Maschine vorgestellt, die in der Lage ist, jeden beliebigen Algorithmus abzuarbeiten. Dabei wurde noch ein vorläufiger und unscharfer Begriff eines Algorithmus verwendet, der aber schon an zahlreichen Beispielen erläutert wurde. In diesem Teil Einführung in die Programmierung wird der Algorithmus-Begriff sehr viel schärfer formuliert. Dies ist nötig, um dann die weiteren Vorbereitungen zur eigentlichen Programmierung zu treffen.

Eigenschaften von Algorithmen

Die im ersten Teil Rechnerarchitektur besprochenen Beispiele für Algorithmen waren zwar allesamt sehr treffend, es wurde aber noch kein Versuch unternommen, die Eigenschaften eines Algorithmus ausdrücklich zu formulieren. Dies wird hier nachgeholt und dabei zugleich der Versuch unternommen, die praktische Relevanz dieser Eigenschaften zu erläutern.

Zudem werden einige weitere Begriffe aus dem Themenfeld Algorithmen und Entwicklung von Algorithmen erklärt.

Durch dieses vertiefte Verständnis von Algorithmen soll dem Leser vermittelt werden, welche Anforderungen er selber erfüllen muss, wenn er ein Problem in einen Algorithmus übersetzt.

Strukturelemente von Algorithmen

Für Algorithmen gibt es einerseits die elementaren Befehle, auf die eine beliebige Problemstellung heruntergebrochen werden müssen. Andererseits werden die elementaren Befehle nach gewissen Mustern gruppiert; diese Muster werden als die Strukturelemente von Algorithmen bezeichnet.

Da diese Muster sehr viel mehr dem menschlichen Denken nahekommen als die elementaren Befehle, die etwa eine Maschinensprache anbietet, können diese Muster in allen höheren Programmiersprachen verwendet werden. Und daher gehört es immer zum Einstieg in eine Programmiersprache:

kennenzulernen, wie die Strukturelemente von Algorithmen in die Syntax der Sprache umgesetzt werden.

Pseudocode und formale Sprachen

Das Kapitel erläutert zuerst den Unterschied zwischen einer umgangssprachlichen Formulierung eines Algorithmus und Pseudocode; letztere verwendet gewisse Textbausteine, um anzudeuten, welche Strukturelemente eingesetzt werden.

Dann werden die zentralen Strukturelemente von Algorithmen, nämlich Unterprogramm, Alternative und Schleife (= Iteration), ausführlich erläutert. Hier werden die bisher sehr abstrakt gehaltenen Begriffe veranschaulicht.

Dem Leser wird dringend empfohlen, anhand der bereitgestellten Aufgaben, einige Algorithmen trocken zu entwickeln. Gerade Programmier-Anfänger neigen dazu zu glauben, dass eine Entwicklungsumgebung einen Großteil der Arbeit eines Programmierers abnimmt. Sie unterschätzen dabei die Vorarbeit, die man selber leisten muss, um eine Problemstellung zu verstehen und in Teilproblem und dann in elementare Befehle aufzuspalten. Es ist besser, diese Arbeitstechnik trocken — also ohne konkrete Programmiersprache — durchzuführen, da man sich dabei wirklich auf den Algorithmus konzentrieren kann und noch nicht mit den Feinheiten der Syntax der gewählten Programmiersprache auseinandersetzen muss.

Fundamentale Datentypen

Bei der Entwicklung von Algorithmen konzentriert man sich zunächst auf die Abfolge der Befehle; je detaillierter die Befehle formuliert werden, um so wichtiger wird die Frage, durch welche Variablen und mit welchen Wertebereichen die veränderlichen Größen in einem Algorithmus beschrieben werden.

Jede Programmiersprache bietet dazu einen Satz von fundamentalen Datentypen (oder elementaren Datentypen) an. Dies sind etwa ganze Zahlen, Gleitkommazahlen, logische Werte, Zeichen, Vektoren. Sie werden charakterisiert durch ihren Wertebereich und die vordefinierten Operationen, die mit Variablen des entsprechenden Typs ausgeführt werden können. Und als Programmierer muss man zahllose Entscheidungen treffen:

Zum besseren Verständnis der fundamentalen Datentypen — und dann später der selbstdefinierten Datentypen — sind einige Kenntnisse über die Speicherorganisation nötig.

Übersicht über Programmiersprachen

Ursprünglich hat man zwischen Generationen von Programmiersprachen unterschieden, später von 4 Programmier-Paradigmen gesprochen:

  1. Imperative Programmierung
  2. Deklarative Programmierung
  3. Funktionale Programmierung
  4. Objekt-orientierte Programmierung.

Die imperative und die objekt-orientierte Programmierung werden ausführlich erläutert. Der Leser soll schon jetzt — bevor die zugehörigen Programmiersprachen eingeführt werden — einen Überblick über ihre Eigenschaften und Vorzüge erhalten.

Auszeichnungssprachen (markup language)

Auszeichnungssprachen sind von Programmiersprachen zu unterscheiden:

Sie haben im Zusammenhang mit Programmierung eine doppelte Bedeutung:

Es werden die für die Praxis wichtigsten Vertreter von Auszeichnungssprachen vorgestellt:

Der Leser soll eine Vorstellung entwickeln, wie diese Sprachen zur Textverarbeitung eingesetzt werden können und er soll in die Lage versetzt werden, sich selbständig in diese Sprachen einzuarbeiten.

Aufgaben zur Einführung in die Programmierung

Die Aufgaben sollen einen Selbsttest bilden, damit der Leser überprüfen kann, ob er die in dem Teil Einführung in die Programmierung beschriebenen Konzepte verstanden hat. Diese Konzepte werden im eigentlichen Programmierkurs erneut auftreten und dann — mit Hilfe konkreter Programmiersprachen — mit weiterem Inhalt gefüllt.