Aus Das deutschsprachige Scratch-Wiki
Vielleicht kennst du dich ja schon ein wenig mit Programmierung aus, möchtest aber noch mehr lernen, oder du hast von Scratch gehört und fandst es so interessant, dass du mehr erfahren wolltest. Vielleicht hattest du aber auch eine tolle Idee für ein Computerspiel und hast nach einer Methode gesucht, dieses zu verwirklichen.
Spiele, Apps und andere Computerprogramme werden programmiert. Doch was ist Programmierung eigentlich? In diesem ersten Kapitel geht es genau um diese Frage – Was versteht man unter Programmierung und was bedeutet es eigentlich, ein Programm zu schreiben, beziehungsweise zu programmieren?
In diesem Kapitel lernst du
- was ein (Computer-)Befehl ist
- etwas über Programmiersprachen
- was ein Computerprogramm ist
Was versteht man unter Programmierung?
Unter Programmierung versteht man, einem Computer eine Folge von Befehlen zu erteilen, damit er genau das macht, was du von ihm willst. Das ist ziemlich praktisch, denn schwierige oder langwierige Aufgaben können so von Computern übernommen werden, ohne dass du deine Zeit dafür opfern musst. So brauchst du bloß etwas Geduld in die Programmierung zu einfließen zu lassen – der Computer macht dann den Rest. Computer verstehen allerdings nur ganz bestimmte, einfache Befehle, deshalb reicht es meist nicht, ihm nur eine einzige Anweisung zu geben. Man benötigt vielmehr eine Reihe von Anweisungen.
Beispiel Löschroboter
Um die Sache für den Anfang etwas anschaulicher zu machen, stellen wir uns vor, dass wir einen Löschroboter darauf programmieren wollen, in einem Labyrinth zu einem Feuer zu fahren, um es zu löschen. Unsere Programmbestandteile werden als Bauklötze dargestellt, die zusammengesteckt ein Programm ergeben. Dieses Zusammenstecken hat schon große Ähnlichkeiten mit Scratch, doch dazu kommen wir später.
Das ist unser Roboter.
Dies ist das Labyrinth, indem der Roboter das Feuer löschen soll.
Wie du siehst, weiß der Roboter ohne Anweisungen nicht, welchen Weg er fahren soll. Durch die roten Wände kann er nicht hindurch, aber das Feuer liegt auf der anderen Seite des Labyrinths. Wenn man dem Roboter jedoch eine Reihe von Befehlen erteilt, wie zum Beispiel diese hier...:
...findet er seinen Weg zum Ziel ganz einfach.
Der Roboter kommt rechtzeitig, um den Brand zu löschen. Die Befehle, die dem Roboter in Form von übereinander gestapelten Kästen gegeben wurden lauten:
gehe drei Felder nach rechts,
gehe zwei Felder nach unten,
gehe ein Feld nach rechts,
gehe zwei Felder nach unten,
gehe ein Feld nach links.
Diese Befehle werden der Reihe nach, von oben nach unten ausgeführt. Es ergibt sich also eine Reihe von Anweisungen für den Roboter. In unserem Beispiel handelt es sich um ein Modell für ein richtiges Programm.
Die Sprache der Programmierer
Wie wir Menschen in unterschiedlichen Ländern verschiedene Sprachen wie Deutsch, Englisch, Französisch, Dänisch und viele mehr sprechen, gibt es auch verschiedene Sprachen, die ein Computer versteht – die sogenannten Programmiersprachen. Programmiersprachen werden von Programmierern benutzt – meist beruflich, manchmal jedoch auch als Hobby. Sie bestehen aus Befehlen, wie in unserem kleinen Beispiel zuvor, die dem Computer mitteilen, was er zu tun hat.
Scratch ist eine dieser Programmiersprachen, jedoch sehr viel leichter zu erlernen, als die meisten anderen.
Die Programmiersprache des Löschroboters
Wir gehen jetzt noch einmal von unserem Beispiel von vorher aus. Die Programmiersprache unseres Roboters ist natürlich nur symbolisch und wird nicht zur echten Programmierung benutzt. Sie ist jedoch eine gute Möglichkeit zu verstehen, wie das Zusammenfügen von Befehlen funktioniert.
Die Programmiersprache, die der Löschroboter versteht, besteht aus den folgenden 17 Befehlen. Der Roboter kann nicht durch Wände gehen, sie aber vorher mit seiner Axt zerstören.
Die roten Befehle stehen jeweils für Schritte nach rechts, wie die Pfeile bereits zeigen. Die Zahl auf jedem Block, beziehungsweise Befehl, gibt die Anzahl der Schritte an. So wie rote Befehle ein Zeichen dafür sind, nach rechts zu gehen, stehen blaue Blöcke für Schritte nach unten, grüne Blöcke für Schritte nach links und gelbe Blöcke für Schritte nach oben. Der schwarze Befehl mit dem A, steht für die Axt. Wenn er durchgeführt wird, verschwinden alle roten Wände um das Kästchen, in dem sich der Roboter gerade befindet, herum.
Dort wo sich zuvor noch Wände, oben und rechts vom Roboter, befinden, werden diese durch den Axt Befehl gelöscht.
Programme sind kein Hexenwerk
Die aufeinandergestapelten farbigen Kästen aus dem ersten Beispiel, oder deine Legosteine von gerade, symbolisieren bereits Befehlsfolgen. Ein Programm besteht aus einer oder mehreren dieser Befehlsfolgen, die man in geschriebener Form "Skript" nennt. Programme werden in einer Programmiersprache aufgeschrieben und danach vom Computer ausgeführt.
Ein Programm in der Löschroboter-Programmiersprache kann zum Beispiel so aussehen:
Der Löschroboter löscht weiter
Wir stellen uns jetzt eine Situation vor, die so ähnlich ist, wie die im ersten Beispiel. Wieder befindet sich der Löschroboter in einem Labyrinth und muss zum Brand gelangen, um diesen zu löschen.
Dies ist unsere Ausgangssituation. Zur Lösung dieses Problems, nehmen wir dieses Mal nicht den schnellsten Weg, sondern gehen so, dass der Roboter nur einmal abbiegen und eine Wand mit seiner Axt weghauen muss.
Das Bild zeigt die Ausführung des Programms. Wie du siehst entspricht der Weg des Roboters der oben gezeigten Befehlsfolge. Der Roboter geht als erstes vier Kästchen nach unten, entfernt dann mit der Axt alle roten Wände um ihn herum, bevor er vier Kästchen nach rechts geht und beim Feuer angekommen ist. Man kann auch sagen, dass der Roboter ein Programm ausführt, mit dem Zweck, von einem Punkt zum anderen zu gelangen.
Zusammenfassung
Anhand unseres Roboter Beispiels und den als Blöcken dargestellten Befehlen, hast du gelernt, was es bedeutet einen Computer (in unseren Beispielen einen Roboter) ein Programm durchlaufen zu lassen.
Von diesen Begriffen hast du in Kapitel 1 gelesen:
- Programmieren — Einem Computer Befehle erteilen, damit er das macht, was du willst
- Programmierer — Eine Person, die als Hobby oder beruflich programmiert
- Befehl — Etwas, das dem Computer sagt, was er tun soll
- Programmiersprache — Eine Sprache, die der Computer versteht, und in der die Befehle verfasst sind; es gibt viele verschiedene Programmiersprachen
- Programm — Besteht aus Befehlsfolgen, die dem Computer etwas vorschreiben
- Befehlsfolge — Mehrere Befehle zusammen ergeben eine Befehlsfolge, auch Skript genannt
Ein Paar Fragen...
- In vielen Haushaltsgeräten ist ein Computer versteckt, der programmiert ist. Überlege dir einige Beispiele!
... und ein Paar Aufgaben
1. Was tut der Roboter, den wir vorhin kennen gelernt haben, wenn wir ihm diese Befehle geben?
2. Der Löschroboter versteht 17 verschiedene Befehle. Könnte man auch mit weniger Befehlen auskommen? Welche Befehle sind absolut notwendig, damit der Roboter seine Löschaufgabe immer erledigen kann?
3. Warum kann es sinnvoll sein, mehr Befehle zur Verfügung zu haben, als man eigentlich braucht?
4. Schreibe für jede der folgenden Ausgangssituationen ein möglichst kurzes Programm, das den Löschroboter zum Brand steuert.
[wiki=de:Scratch-Wiki:Scratch Buch/Kapitel1]Scratch Buch/Kapitel1[/wiki]