Vor der Erstellung eines Programms ist es wichtig, dies zuerst zu strukturieren und in geeigneter Form darzustellen. Dabei werden die wichtigen von den unwichtigen Informationen getrennt. Unabhängig von der späteren Wahl einer Programmiersprache wird die Lösung des Problems in einer formalen Sprache dargestellt. Dadurch wird auch eine eindeutige Trennung zwischen Entwurf und Implementierung erreicht.
Durch die Strukturierung kann das Problem in viele kleine Teilprobleme zerlegt und diese gesondert behandelt bzw. gelöst werden. Dies kann auch als Weiterführung des EVA-Prinzips (vgl. P0 Basics: EVA-Prinzip, Codierung von Ein- und Ausgabewerten) angesehen werden. Jedes Teilproblem bzw. jeder Block besteht aus Eingabe, Verarbeitung und Ausgabe. Dies wird insbesondere durch die Verwendung von Ablaufdiagrammen (Nassi Shneiderman, Programmablauf, Jackson) unterstützt.
Eine Problemstellung beinhaltet immer viele Informationen, welche für die zentrale Lösung des Problems nicht benötigt werden. Das Erkennen der Relevanz von Angaben spielt eine wichtige Rolle.
Wie die Lösung einer Physik-, Mathematik- oder Geometrieaufgabe (Lösungsbericht) ist eine Softwarelösung schrittweise aufgebaut. Der exakt berechneten oder konstruierten Lösung geht jeweils eine Lösungsidee in abstrakten Schritten voraus.
Durch die Abstraktion eines Lösungswegs können einzelne Teile gesondert behandelt und gelöst werden. Eine Vereinfachung und Rückführung auf bereits gelöste Probleme wird damit ermöglicht.
Die einzelnen Lösungsschritte können alle mit Hilfe der drei Kontrollstrukturen: Sequenz, Selektion und Iteration realisiert werden.
Entwurf und Implementierung sind strikt zu trennen. Die Lösung eines Problems soll stets unabhängig von einer später verwendeteten Programmiersprache formuliert werden können.
Ich kenne die grundlegenden Befehle einer Programmiersprache (Kontrollstrukturen, Operatoren) und kann aufzeigen, welche Verarbeitungsanweisungen damit realisiert werden können.
Ich kann eine einfache Problemstellung mit Hilfe von Kontrollstrukturen strukturieren und dies in einer Programmiersprache zu einem lauffähigen Programm verarbeiten.
Ich kann erklären, welche Ziele mit dem Einsatz von Kontrollstrukturen verfolgt werden.
Ich kenne die wichtigsten Kontrollstrukturen der strukturierten Programmierung (Sequenz, Selektion, Iteration) und kann an Beispielen erläutern, welche Sachverhalte im Ablauf einer Problemlösung diesen Kontrollstrukturen entsprechen.
Ich kenne eine Methode zur Entwicklung und Darstellung von Programmstrukturen (Nassi Shneiderman, Programmablaufplan, Jackson, …) und kann aufzeigen, wie darin die wichtigsten Kontrollstrukturen und der Ablauf eines Programms abgebildet werden.
Bescheribung von Alltagsaktivitäten
Beschreibung des Schulwegs
Schreiben eines SMS auf dem Mobiltelefon
Voci lernen mit Karteikarten
Fahrkarte lösen
Jonglieren
Beschreibung und Implementierung von Algorithmen
Aufgaben aus Physik, Mathematik und Geometrie

Sequenz, Iteration, Selektion (Struktogramm) —
Paul Miotti 2008/06/24