Auf einer Veranstaltung zum Thema digitales Lernen in der Schule hatte ich kürzlich eine interessante Unterhaltung über die Frage: Was ist eigentlich Programmieren?

Bisher dachte ich, dass das leicht zu beantworten sein müsste. Nicht dass ich wirklich programmieren könnte, aber wenn ich „programmieren“ höre, kommen mir Dinge wie HTML, JavaScript und PHP in den Kopf. Programmier- bzw. Skriptsprachen eben, die man für die Gestaltung von Webseiten einsetzt.

Einen Schritt weiter gedacht lande ich bei klassischer Software. Betriebssysteme wie Windows oder Linux oder Anwendungssoftware, zum Beispiel für die Bildbearbeitung zu Hause – sowas wird zum Beispiel mit C++ oder Python geschrieben.

Seit einiger Zeit gibt es ja eine lebhafte Debatte darüber, ob „Programmieren“ ein eigenes Schulfach werden soll. Oder ob – in welcher Art auch immer – jeder Schüler und jede Schülerin programmieren lernen soll. Da ergibt es Sinn, sich einmal zu vergegenwärtigen, was „programmieren“ bedeutet. Wo fängt es an, wo hört es auf?

Je nachdem, wie man den Begriff interpretiert, programmiere ich auch schon, wenn ich am Backofen eingebe, wann er sich automatisch ausschalten soll. Mit Hilfe eines Eingabebefehls „sage“ ich der Maschine, was sie zu tun hat. Dafür muss ich keine Programmiersprache beherrschen, nicht einmal wissen, wie die Maschine aufgebaut ist. Die ganze Debatte um Industrie 4.0 ist hier spannend. Wenn in Zukunft in jedem Haus Maschinen stehen sollen, die mit mir und untereinander kommunizieren, dann muss man einen Weg finden, das sehr benutzerfreundlich umzusetzen. Der Ansatz wird nicht funktionieren, wenn ich als Benutzer komplexe Befehle oder ganze Programmiersprachen beherrschen muss.

Hier trifft die Notwendigkeit der nutzerfreundlichen Bedienung mit dem erwarteten und notwendigen Grundverständnis über die Funktionsweise der betreffenden Maschinen oder Geräte bei den jeweiligen Nutzern aufeinander. Nur wie sieht das Verhältnis zwischen beidem aus?

Muss ich tatsächlich alle Ursprünge kennen und verstehen oder reichen basale Kenntnisse, die auf der Ebene des „Backofen programmierens“ liegen, doch aus? Lehrt man konkrete Programmiersprachen, egal ob als eigenes Fach oder fächerübergreifend? Aber auch Programmiersprachen entwickeln sich, verändern sich.

Oder schaut man auf den Aufbau eines Computers? Was sind Bits und Bytes, Binärcode usw.? Oder rückt man den Aufbau von Software in den Vordergrund? Die Frage nach Klassen, Kategorien, Syntax und Softwarearchitektur generell? Oder einfach von allem davon ein bisschen?

Es wird nicht mehr lange dauern, bis wir wirklich ganz normal mit Maschinen kommunizieren werden. Oder von ihnen bevormundet werden. Ich hatte da gerade einen unerfreulichen Zusammenstoß mit meinem Drucker, der mir sagte, meine Druckerpatrone sei leer. War sie aber nicht. Wie bringt man sowas künftig einer penetranten Maschine bei?

Mittlerweile kann ich mit Baukastensystemen und „drag&drop“ ganze Webseiten gestalten. Wer sich auskennt, kann noch in den Quellcode schauen. Natürlich ist es manchmal hilfreich, das „lesen“ zu können. Etwa wenn Probleme auftreten und Dinge nicht so funktionieren, wie sie sollen. Solche Kompetenzen halte ich schon für wichtig, sowohl den souveränen Umgang mit Content-Management-Systemen als auch die Fähigkeit, darüber hinaus gestalterisch tätig zu werden. Eine abschließende Antwort auf die Frage, welche Bandbreite des Begriffs „Programmieren“ jetzt für den Schulunterricht zu Grunde gelegt werden sollte, egal in welcher Fächerlogik, habe ich noch nicht, aber ich werde ganz sicher weiter darüber nachdenken. Wahrscheinlich geht es letztlich um die einfache und doch so komplizierte Frage: Wie „sagt“ man einem Computer, was er tun soll? Ideen und Anregungen dazu sind immer willkommen:-)

______________

Foto: PhotoDisc