Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Bildungsorientierte Programmiersprache

Bildungsorientierte Programmiersprachen sind als Lerninstrumente für Programmieranfänger konzipiert. Zu ihnen gehören speziell die Programmiersprachen, …

Inhalt6 Abschnitte
  1. 1. Grundidee und Merkmale
  2. 2. Sprachen für Kinder
  3. 3. Visuelle Umgebungen, Communitys und 3D
  4. 4. Robotik und eingebettete Systeme
  5. 5. Fortgeschrittene und professionelle Sprachen
  6. 6. Spiele und analoge Zugänge

Grundidee und Merkmale

Bildungsorientierte Programmiersprachen sind Lerninstrumente für Programmieranfänger. Sie richten sich einerseits an Kinder im Vorschul- und Schulalter, die spielerisch Grundprinzipien der Softwareentwicklung kennenlernen sollen, andererseits an fortgeschrittene Schüler und an die Erwachsenenbildung, wo komplexere Konzepte behandelt werden. Ihre Verbreitung wird neben Schulen auch durch Initiativen wie Jeder kann programmieren, Roberta – Lernen mit Robotern und Code.org gefördert.

Typisch ist die Einbettung in eine vollständige integrierte Entwicklungsumgebung, kurz IDE. Eine IDE ist eine Arbeitsumgebung zum Schreiben, Ausführen und Prüfen von Programmen. Viele solcher Umgebungen lassen Programmcode menügeleitet erstellen, sodass bestimmte Eingabefehler kaum entstehen können. Manche ersetzen geschriebene Sprache ganz durch Icons, also Bildsymbole; Beispiele sind Baltie, Kodu und Scratch. Andere nutzen Programming by demonstration: Der Benutzer zeigt dem System ein gewünschtes Verhalten, statt Code zu tippen, wie beim Stagecast Creator.

Einige Minisprachen dienen als Propädeutika, also als vorbereitende Lernstufen für professionelle Programmiersprachen wie Pascal oder Python. Beispiele sind Karol the Robot und Guido van Robot. In einzelnen Fällen entstanden professionelle Sprachen aus ursprünglich bildungsorientierten Anfänger-Sprachen, etwa BASIC und Pascal. Viele heute genutzte Lernsprachen wurden in Forschungslaboren in den Vereinigten Staaten entwickelt; inzwischen gibt es aber auch Entwicklungen aus Indien und Europa. Deutsche Sprachversionen existieren unter anderem für AgentCubes, Karel the Robot, RoboMind, Scratch, BYOB und Baltin.

Sprachen für Kinder

Als älteste kindgerechte Programmiersprache gilt Logo, das Seymour Papert 1967 auf Grundlage von Lisp entwickelte. Bekannt ist Logo heute besonders durch die Turtle-Grafik: Eine virtuelle Schildkröte bewegt sich über den Bildschirm und zieht dabei eine farbige Linie. Varianten und Verwandte sind KTurtle, LibreLogo und PythonTurtle; Python selbst enthält mit dem Modul turtle ebenfalls eine Turtle-Grafik-Bibliothek.

Viele Lernumgebungen arbeiten mit virtuellen Robotern. Karel the Robot wurde von Richard E. Pattis an der Stanford University entwickelt und 1981 veröffentlicht; die deutsche Fassung heißt Niki – der Roboter. Kinder steuern darin einen Roboter durch ein rechtwinkliges Netz aus Straßen. Robot Karol nutzt eine einfache deutsche Programmiersprache, um Schüler an Algorithmik heranzuführen. Guido van Robot bereitet auf Python vor. RoboMind, Kara und das Hamster-Modell verfolgen ähnliche Ziele: Lernende programmieren einfache Figuren in virtuellen Welten, lassen sie Aufgaben lösen und lernen dabei Begriffe wie Befehl, Ablauf und Algorithmus kennen. Beim Hamster-Modell können Programme in textuellen Sprachen wie Java, Ruby, Python, Scheme und Prolog sowie in visuellen Formen wie endlichen Automaten, Programmablaufplänen, Struktogrammen und Scratch entwickelt werden.

Ein anderer Ansatz ist das Programmieren ohne Worte. Stagecast Creator nutzt Programming by demonstration: Kinder bewegen Icons und erzeugen so Simulationen, Animationen oder Spiele. Baltie setzt Code aus Icons zusammen; ein kleiner Zauberer führt dabei Operationen aus. Die erste Version entstand 1996 aus der älteren Sprache Balthazar, Version 4 basiert auf C# und kann auch ausführbare .exe-Dateien erzeugen. Kodu von Microsoft Research erschien 2009 und ist ebenfalls vollständig iconbasiert; Kinder können damit Spiele entwickeln.

Visuelle Umgebungen, Communitys und 3D

Mehrere Systeme verbinden Programmieren mit visuellen Medien, Simulationen und Online-Communitys. E-Slate wurde in den 1990er Jahren von einem griechischen Team entwickelt und erlaubt Kindern ohne Vorkenntnisse, mit einer auf Logo basierenden Minisprache Elemente zu Mikrowelten zusammenzusetzen. Squeak ist eine 1996 bei Apple veröffentlichte Implementierung der objektorientierten Sprache Smalltalk und wird in den USA von Kindern mittlerer Klassenstufen aufwärts genutzt. Etoys, 1996 von Alan Kay bei Disney Imagineering Research entwickelt, richtet sich an Kinder von 9 bis 12 Jahren und erlaubt das Programmieren von 2D- und 3D-Grafiken, Bildern, Text, Präsentationen, Webseiten, Video, Ton und Musik.

Scratch wurde 2007 unter Leitung von Mitchel Resnick am MIT Media Lab veröffentlicht. Es ist eine interpretierte, objektorientierte, dynamische, ereignisorientierte und vor allem visuelle Programmiersprache mit Entwicklungsumgebung und Online-Community. Unter dem Motto „imagine, program, share“ können Kinder und Jugendliche kostenlos und werbefrei Spiele und Multimediaanwendungen erstellen, teilen und diskutieren. Bis Ende 2015 hatten sich über 8 Millionen Nutzer angemeldet, mit Schwerpunkt zwischen 8 und 16 Jahren, und über 11 Millionen Scratch-Projekte veröffentlicht. Scratch 3.0 erschien am 2. Januar 2019, basiert auf Webtechnologien im Umfeld von HTML5 und nutzt JavaScript, WebGL, Web Worker und Web Audio; es ist nicht mehr auf Flash angewiesen.

Alice, 1999 an der University of Virginia und der Carnegie Mellon University veröffentlicht, ermöglicht Kindern mittlerer Klassenstufen, virtuelle Welten mit animierten 3D-Objekten und Figuren zu gestalten. Mama von Eytam Computer Science erschien 2010 und basiert in der IDE auf Alice. AgentSheets und AgentCubes dienen der Programmierung von Simulationen und Videospielen; AgentCubes erlaubt das Erstellen von 3D-Welten, auch online im Webbrowser mit HTML5/WebGL. Im Projekt Scalable Game Design wurden diese Werkzeuge mit über 10.000 Schülern mittlerer Jahrgänge in den USA eingesetzt, um zu untersuchen, ob Schüler Computational-Thinking-Konzepte durch das Erstellen von Spielen lernen und später auf Simulationen übertragen können.

Robotik und eingebettete Systeme

Robotiksysteme verbinden Programmierung mit realen oder simulierten Maschinen. ROBOPRO ist eine grafische Programmiersprache von Fischertechnik für das Robo Interface. Sie bietet Variablen, Unterprogramme beziehungsweise Methoden und vereinfachte Bitprogrammierung; außerdem unterstützt sie Debugging, Simulation, Download zum Interface, Updates und Testen.

Lego Mindstorms ist eine Produktserie von Lego mit Elektromotoren, Sensoren, Lego-Technik-Bausteinen und einer programmierbaren Einheit wie RCX, NXT oder EV3. Das EV3-System ist seit 2013 auf dem Markt. Mit Mindstorms können Roboter konstruiert und programmiert werden. Zum Lieferumfang gehört NXT-G, eine auf LabVIEW basierende grafische Programmiersprache von National Instruments. Zusätzlich gibt es weitere grafische und textbasierte Sprachen, die flexibleres Programmieren ermöglichen und teils einen Debugger bieten, etwa Robotc.

Tuxminds ist eine grafische Programmierumgebung für Linux für verschiedene Robotermodelle, darunter Lego Mindstorms NXT, Lego RCX und ASURO. Programme können innerhalb der Grenzen der jeweiligen Robotermodelle portabel sein. Tuxminds ist Open Source und wurde ursprünglich für Schulen entwickelt. CiMPLE ist eine auf C basierende visuelle Programmiersprache von ThinkLABS am Indian Institute of Technology Bombay und dient der Steuerung des iPitara-Roboter-Bausystems.

Open Roberta und Open Roberta Sim verbinden Robotik mit browserbasierter Programmierung. Open Roberta ist ein Projekt des Fraunhofer IAIS, inspiriert von Scratch und basierend auf der quelloffenen Bibliothek Blockly. Es nutzt die grafische Sprache NEPO und ist unter der Apache-Lizenz 2.0 als Open-Source-Projekt kostenfrei nutzbar. Ab Version Beta 1.3.0 gibt es ein zweidimensionales Robotermodell. Open Roberta Sim simuliert ein zweirädriges Differentialgetriebe mit Ultraschallsensor, Farbsensor und Berührungssensor; es simuliert die Signalverarbeitung eines echten Roboters, verzichtet aber auf eine Physik-Engine.

Fortgeschrittene und professionelle Sprachen

Für fortgeschrittene Schüler und die Erwachsenenbildung gibt es Lernumgebungen, die näher an allgemeinen Programmiersprachen liegen. Hackety Hack, 2010 von Steve Klabnik veröffentlicht, ist eine Ruby-basierte IDE für erste Programmiererfahrungen von Teenagern. KidsRuby ist davon beeinflusst, nutzt ebenfalls Ruby, enthält Turtle-Grafik und kann zusätzlich eine Bibliothek für 2D-Spiele einbinden. GameKit von Morgan McGuire ist eine objektorientierte Lernsprache mit Java-ähnlicher Syntax, besonders geeignet für Spiele. Phrogram, 2006 von Phrogsoft veröffentlicht, ähnelt in der IDE Microsoft Visual Studio und Eclipse und soll auf professionelle Entwicklungsumgebungen vorbereiten.

Snap! beziehungsweise BYOB bedeutet „Build Your Own Blocks“. Es ist eine von Scratch inspirierte visuelle Programmiersprache für fortgeschrittene Schüler und Erwachsene. BYOB erweitert Scratch um abstraktere Konzepte wie eigene Blöcke, First-Class-Funktionen oder Prozeduren, First-Class-Objekt-Listen einschließlich Listen von Listen, First-Class-Sprites und prototypenbasierte Programmierung. Neue Objekte entstehen dabei als Kopie vorhandener Objekte, also durch „cloning“. BYOB ist Open Source und wird in Sekundarstufe I und II sowie an Universitäten eingesetzt.

Ein früher Einstieg in professionelle Sprachen kann über BASIC, Pascal, Scheme, Python, Ruby, Java oder C# erfolgen. BASIC wurde als leicht zu erlernende Sprache konzipiert; einfache Varianten wie Small Basic, Basic-256 oder SiMPLE können zu professionellen Varianten wie Visual Basic oder Gambas führen. Pascal war ursprünglich Lehrsprache für strukturierte Programmierung und bis in die späten 1980er Jahre an amerikanischen und europäischen Universitäten weit verbreitet. Scheme erschien 1975 auf Lisp-Basis und wird wegen einfacher Syntax auch für Kinder im Middle-School- und High-School-Alter genutzt. Python und Ruby gelten wegen ihrer gut lesbaren Syntax als geeignete Lernsprachen. Für Java werden Greenfoot und BlueJ eingesetzt; Processing kapselt Java stark vereinfacht und eignet sich besonders für Gestalter, Künstler und Anfänger. Für C# nennt der Artikel AntMe!, ein Programmierspiel, bei dem man einem Ameisenvolk eine künstliche Intelligenz programmiert.

Spiele und analoge Zugänge

Zwischen Computerspielen und Programmieren gibt es fließende Übergänge. ComputerCraft, ein Mod des Open-World-Spiels Minecraft, erlaubt Spielern, virtuelle Computer und Roboter zu bauen und sie in der Skriptsprache Lua zu programmieren. RedPower 2 bietet Bauelemente für 6502-ähnliche virtuelle Computer, die in 6502 Assembly oder Forth programmiert werden können. Kinder, die Minecraft bereits kennen, können dadurch spielerisch Programmieren lernen.

Als Alternative ohne Computer nennt der Artikel Programmier-Rollenspiele. Dabei übernehmen zum Beispiel Hilfspersonen die Rolle von Robotern oder Computerbauteilen und führen ein von Kindern auf Papier geschriebenes Programm aus. So werden grundlegende Ideen wie Befehl, Reihenfolge und Ausführung erfahrbar, ohne dass digitale Geräte nötig sind.

Weiterlesen

Scratch (Programmiersprache) Scratch ist eine erstmals 2007 veröffentlichte bildungsorientierte blockbasierte visuelle Programmiersprache für Kinder und Jugendliche inklusive ihrer … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Integrierte Entwicklungsumgebung Eine integrierte Entwicklungsumgebung (IDE, von englisch integrated development environment) ist eine Sammlung von Computerprogrammen, mit denen die … Propädeutik Als allgemeine Propädeutik wird dabei die Logik angesehen. Davon abgeleitet werden Leistungskurse der gymnasialen Oberstufe als Propädeutik für ein … Pascal (Programmiersprache) Besonderheiten · Sehr hohe Prozesssicherheit · Keine nullterminierten Zeichenketten · Strikte Trennung zwischen Programm, Funktionen und Prozeduren · Deklarationen. Python (Programmiersprache) Python ([ˈpʰaɪθn̩], [ ˈpʰaɪθɑn], auf Deutsch auch [ ˈpʰyːtɔn]) ist eine universell nutzbare, üblicherweise interpretierte, höhere Programmiersprache. Vereinigte Staaten Vereinigte Staaten ; Amtssprache · Englisch ; Hauptstadt · Washington, D.C. ; Staats- und Regierungsform · föderale präsidentielle konstitutionelle Republik. Middle School (Vereinigte Staaten) Im Schulsystem der Vereinigten Staaten ist die Middle School (engl. für „Mittelschule“) eine weiterführende Schule des sekundären Bildungsbereichs. BASIC BASIC ist eine imperative Programmiersprache. Sie wurde 1964 von John G. Kemeny, Thomas E. Kurtz und möglicherweise Mary Kenneth Keller am Dartmouth College … Guido van Rossum Guido van Rossum (* 31. Januar 1956 in Haarlem, Niederlande) ist ein niederländischer Softwareentwickler, der als Autor der Programmiersprache Python … Kara (Programmierumgebung) Kara ist eine Lernsoftware zur spielerischen Einführung in die Programmierung. Kara basiert auf dem Konzept endlicher Automaten und kann den sogenannten …