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:

  • Welche Variablen soll man in einem Algorithmus einsetzen?
  • Welchen Datentyp soll die Variable haben?
  • Reichen die Eigenschaften eines fundamentalen Datentyps oder soll man einen eigenen Datentyp definieren?

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:

  • mit ihnen lassen sich keine Algorithmen formulieren,
  • sie dienen dazu Bestandteile eines Textes logisch auszuzeichnen (wie die ausdrückliche Kennzeichnung von Überschriften, Verweisen oder Absätzen.)

Sie haben im Zusammenhang mit Programmierung eine doppelte Bedeutung:

  • Einerseits kommt es oft vor, dass sie nicht klar von Programmiersprachen getrennt werden; zur Allgemeinbildung eines Programmierers gehört es aber, die Unterschiede klar benennen zu können.
  • Andererseits werden in vielen Programmen Texte verarbeitet, was sehr erleichtert wird, wenn diese in einer wohldefinierten Form vorliegen.

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

  • LaTeX
  • HTML
  • XML
  • SVG.

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.

Alle Kommentare
Durch die Nutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Außerdem werden teilweise auch Cookies von Diensten Dritter gesetzt. Genauere Informationen finden Sie in unserer Datenschutzerklärung sowie im Impressum.