Scratch

In Entwicklung: Scratch 2.0 mit Flash und Prozeduren

20 April 2011 | Beat Döbeli Honegger | Scratch
Es ist scheinbar ruhig geworden um Scratch (Biblionetz:w02030), der am MIT entwickelten Programmiersprache für Kinder. Doch hinter den Kulissen wird erfreulicherweise eifrig entwickelt, wie zwei Blogpostings im ersten Quartal 2011 zeigen.

  • Im Februar 2011 publizierten Beitrag Scratch 2.0 Progress Report wurde angekündigt, dass eine neue Version von Scratch in Entwicklung sei, die komplett in Flash laufen solle, d.h. sowohl der Scratch-Player als auch die gesamte Entwicklungsumgebung. Dies würde mindestens technisch/organisatorisch den Einsatz in der Schule massiv vereinfachen, da nichts mehr installiert werden müsste auf den Schulcomputern. Zudem wäre dann Scratch auf allen Computern lauffähig, die einen Flash-Player anbieten (also praktisch auf allen Geräten ausser iDevices...).

  • Im März nun wurde in einem nächsten Beitrag einerseits über den Fortschritt des Flash-basierten Players berichtet als auch die Einführung von Prozeduren in Scratch angekündigt. Dies erweitert die didaktischen Möglichkeiten von Scratch für den Informatikunterricht ungemein, da nun Abstraktion bzw. Modularisierung auch mit Scratch vermittelt werden kann.

(Damit wird ein Feature, das im Jahr 2009 in einem Scratch-Ableger unter dem Titel BYOB eingeführt worden ist, nun in Scratch selbst implementiert (siehe meinen damaligen Blogbeitrag Scratch-Ableger und Erweiterungen).

Die

Scratch-Player für iPhone und iPad

29 April 2010 | Beat Döbeli Honegger | Scratch
Was ich mir schon lange gewünscht habe, ist endlich in ersten Ansätzen verfügbar: Ein Scratch Viewer für das iPhone - und nun selbstverständlich auch für den iPad.

scratch-for-iphone.png

Die kostenpflichtige App (1$) erlaubt das Herunterladen und Ausführen von Scratch-Programmen von der Scratch-Website. Auf dem iPhone etwas klein und langsam, auf dem iPad grösser und vor allem schneller.

Cool, denn damit ist es nun möglich, dass Kinder ihre Scratch-Programme mobil nutzen können: Die Ergebnisse der eigenen Programmierarbeit werden mobil (und damit kinderalltagstauglich?) oder umgekehrt: Endlich kann das iPhone auch von Nichtcracks programmiert werden.

Prinzip cool, Umsetzung noch verbesserungsfähig.

P.S.: Beim Schreiben ist mir aufgefallen, dass es einen Überbegriff für iPhone / iPod Touch / iPad braucht, um die Geräte zu bezeichnen, die mit dem iPhone OS arbeiten. iDevice? iDevice Biblionetz:w02187

Das ein Palyer, der zudem noch kostenpflichtig ist, als Programmierwerkzeug daher kommt, erschließt sich mir nicht. iPhone und iPad bleiben Geräte, die nicht vom Besitzer programmeirt werden können.

Für mein N900 kann ich Programme schreiben und allen zugägnlich machen.

-- Main.RomeyW - 07 Apr 2010 Da war ich zu schnell. Entschuldigung für die Schreibfehler.

-- Main.RomeyW - 07 Apr 2010 Ja, ich bin mir dieser Perspektive durchaus bewusst. Aus Sicht der Offenheit sind iDevices eine Katastrophe. Aus (kurzfristiger) Schulbetriebsoptik zeigt die Praxis, dass sie vergleichsweise wenig technische Probleme generieren. Das ist für Schulen verlockend.

-- Main.BeatDoebeli - 07 Apr 2010 Scratch ist dem seit 14 April nicht mehr verfügbar für iDevices. Mehr siehe Brief des Scratch-Teams an Apple http://mobilewikiserver.com/Interpreters.html

-- Main.MarcPilloud - 29 Apr 2010

,

Digital Natives können Lesen, aber nicht Schreiben

17 November 2009 | Beat Döbeli Honegger | Scratch
In der Novemberausgabe der Communications of the ACM ist die Programmiersprache Scratch (Biblionetz:w02030) Titelthema. Unter dem Titel Scratch: Programming for All (Biblionetz:t09978) erläutern die Entwicklerinnen und Entwickler von Scratch die Ziele und Kernüberlegungen, die hinter der Programmierumgebung für Kinder und Jugendliche stecken.

Der Artikel betont die Bedeutung des Programmieren-Könnens für das Verständnis und Gestaltungsmöglichkeit in einer digitalen Welt. Diese Idee ist keineswegs neu, aber der Artikel enthält einige sehr schöne Aussagen in prägnanter Form, die sich wunderbar als Zitate eignen:

It has become commonplace to refer to young people as "digital natives" due to their apparent fluency with digital technologies. Indeed, many young people are very comfortable sending text messages, playing online games, and browsing the Web. But does that really make them fluent with new technologies? Though they interact with digital media all the time, few are able to create their own games, animations, or simulations. It's as if they can "read" but not "write."

Sogenannte digital natives (Biblionetz:w01839) sind also aus Sicht des Scratch-Entwicklungsteams trotz eventuell vorhandener Web 2.0 Virtuosität eigentlich passiv Konsumierende: Sie nutzen nur bestehende Programme und Services, statt diese selbst (weiter) zu entwickeln.

Das Scratch-Team sieht deshalb Programmierkenntnisse (Biblionetz:f00114) als notwendigen Teil einer digital fluency :

As we see it, digital fluency requires not just the ability to chat, browse, and interact but also the ability to design, create, and invent with new media, as BalaBethany did in her projects. To do so, you need to learn some type of programming. The ability to program provides important benefits. For example, it greatly expands the range of what you can create (and how you can express yourself) with the computer. It also expands the range of what you can learn. In particular, programming supports "computational thinking," helping you learn important problem-solving and design strategies (such as modularization and iterative design) that carry over to nonprogramming domains. And since programming involves the creation of external representations of your problem-solving processes, programming provides you with opportunities to reflect on your own thinking, even to think about thinking itself.
Neben Designprinzipien und Grundsatzüberlegungen bietet der Artikel auch Zukunftsaussichten. Wohin soll Scratch gehen?

We plan to keep our primary focus on lowering the floor and widening the walls, not raising the ceiling.

[...]

As we develop future versions, our goal is to make Scratch even more tinkerable, meaningful, and social. With our Scratch Sensor Board (http://info.scratch.mit.edu/Sensor_Boards External Link), people can create Scratch projects that sense and react to events in the physical world. We are also developing a version of Scratch that runs on mobile devices and a Web-based version that enables people to access online data and program online activities.

Cool: Ein Scratch auf mobilen Geräten und ein Scratch, das im Internet Daten austauschen kann. Sozusagen Scratch für mobile learning und Scratch für Web 2.0.

Das Scratch-Entwickler-Team sieht die Herausforderung weniger bei der Technik, sondern eher im Bereich Bildung und Gesellschaft:

Probably the biggest challenges for Scratch are not technological but cultural and educational.10 Scratch has been a success among early adopters, but we need to provide better educational support for it to spread more broadly.

[...]

There needs to be a shift in how people think about programming, and about computers in general. We need to expand the notion of "digital fluency" to include designing and creating, not just browsing and interacting. Only then will initiatives like Scratch have a chance to live up to their full potential.

Lesen! und Los-Scratchen!


Richtig lesen können sie auch nicht... http://www.zeit.de/2009/47/DOS-Analphabeten?page=all -- Main.TorstenOtto - 16 Nov 2009

Scratch-Ableger und Erweiterungen

16 November 2009 | Beat Döbeli Honegger | Scratch
Da ich mich derzeit wieder etwas intensiver mit Scratch beschäftige (jaja, auch wenn man gegen aussen (noch) nichts sieht, wir arbeiten fleissig an http://iLearnIT.ch weiter), bin ich auf ein spannendes Ökosystem rund um Scratch gestossen.

w02030.jpg

Was ich bereits vorher wusste: Scratch (Biblionetz:w02030) baut auf Squeak (Biblionetz:w01597), was wiederum auf einem Smalltalk-Dialekt (Biblionetz:w01332) aufbaut.

Scratch ist Open Source, d.h. der Squeak-Quellecode kann frei heruntergeladen und verändert werden. Das MIT hat aber ein Interesse daran, dass möglichst viele mit der offiziellen Version von Scratch entwickeln, da nur so der Austausch von Programmen via Scratch sichergestellt ist. Entsprechend dürfen Scratch-Ableger weder den den Namen Scratch verwenden noch den Upload auf die Scratch-Community-Website ermöglichen.

Derzeit existieren mindestens folgende Scratch-Ableger:

  • Chirp ist eine auf Scratch 1.2.1 aufbauende Scratch-Weiterentwicklung von Jens Moenig. Sie bietet unter anderem die Möglichkeit, Programme als XML zu exportieren und zu importieren, Scratch-Programme als direkt unter Windows lauffähige EXE-Programme zu speichern, Windows-Screensaver zu programmieren und Programmblöcke per Kontextmenu zu verändern.
  • Mit BYOB (Build Your Own Blocks) bietet Jens Moenig eine weitere Scratch-Erweiterung an, die auf Scratch 1.4 aufbaut. Mit BYOB 2.0 ist es möglich, eigene Programmblöcke zu programmieren, d.h. Scratch wird um Funktionen und Prozeduren erweitert. Zudem ist es möglich, auf das darunter liegende Squeak zuzugreifen, womit sich ungeahnte Möglichkeiten (und Abgründe) auftun:
    byob.jpg

    Als dritte spannende Erweiterung ist die Zusammenarbeit in einem Mesh-Netzwerk möglich, womit Scratchprogramme via Netzwerk miteinander reden können.
  • Streak: Erweiterung von Scratch 1.3.1 vorwiegend um Dinge, die im offiziellen Scratch 1.4 auch eingeführt worden sind (z.B. Frage-Block mit Antwort als Variable). Eine detaillierte Liste der Erweiterungen ist in der Versionsgeschichte zu finden.

Alles in allem spannende Ansätze, welche die Potenziale von Scratch erweitern. Es ist zu hoffen, dass die sich bewährenden Konzepte dieser Scratch-Erweiterungen in spätere, offizielle Scratch-Versionen Einzug halten werden.

Des weiteren taucht regelmässig die Frage nach Scratch auf verschiedenen (mobilen) Plattformen auf: Scratch für Playstation, Scratch für das iPhone, etc. Derzeitiger offizieller und halboffizieller Informationsstand: Aufgrund fehlender Entwicklungsressourcen sind derzeit vom MIT keine entsprechenden Entwicklungen möglich.

Als dritte Erkenntnis habe ich anlässlich meiner Recherche gemerkt, dass Scratch per TCP/IP kommunizieren und so mit anderen Programmen Daten austauschen kann. Unter Scratch Connections sind verschiedene Anleitungen und Beispiele zu finden, wie Scratch z.B. RSS-Feeds verarbeiten kann oder man mit Scratch einen Chat programmieren kann.

Auslöser unserer Recherche war die Frage, ob man in Scratch Variablen einfach umbenennen könne. Dieses Ansinnen taucht auf, wenn man Beispielprogramme auf deutsch und französisch anbieten will: Wie nennen wir die Variablen? Deutsch - dann müssen wir aber für die französische Version nicht nur die Texte, sondern auch das Programm selbst anpassen - in Scratch eine mühsame Handarbeit. Benennen wir die Variablen stattdessen auf englisch, so entfällt dieser Übersetzungsaufwand, dafür sinkt die Verständlichkeit des Programms inbesondere für Primarschüler. Es ist ja einer der Vorteile von Scratch als Programmiersprache für Kinder, dass sich die Sprache der Programmblöcke im laufenden Betrieb ändern lässt, so dass ein mit deutschen Programmierblöcken geschriebenes Programm mit einem Mausklick in Französich oder Türkisch darstellen lässt. Da ist es dann schade, wenn die Variablen englisch sind. Wir sind nicht die einzigen, die auf der Suche nach einer Lösung für dieses Problem sind, aber bisher haben wir keine wirklich effiziente Lösung gefunden.

Sachdienliche Hinweise nehmen wir gerne entgegen... ,

Scratch 1.4 erschienen

10 September 2009 | Beat Döbeli Honegger | Scratch
Von mir (und meinen Newsquellen) bisher unbemerkt, wurde scheinbar bereits im Juli dieses Jahres die Version 1.4 von Scratch publiziert (Download für Mac und Windows).

Die Release Notes versprechen viele Detailverbesserungen, aber auch drei für mich wesentliche Neuheiten:

  • Kameraintegration: Scartch erlaubt nun die Nutzung der integrierten oder per USB angeschlossenen Kamera eines Computers. Das steigert die Attraktivität von Scratch für Kinder und Jugendliche ungemein, denn damit kann ich z.B. aktuelle Bilder der Nutzenden in Scratch-Programme integrieren. Cool!
    Update: Leider kann ich nicht programmgesteuert Bilder integrieren. Ich kann nur bei der Programmierung Bilder von der Kamera als Kostüme für die Objekte verwenden.
  • Unterstützung von Lego WeDo: Nicht nur die Zahl der Inputkanäle von Scratch wurde (mit der Kameraunterstützung) vergrössert, sondern auch die Zahl der Outputkanaäle. Ab Version 1.4 von Scratch ist es möglich, die Roboter der neuen Lego-Robotik Produktfamilie WeDo zu steuern (und auch deren Sensoren auszulesen). Das verleiht Scratch eine ganz neue Dimension: Bisher war der Output von Scratch auf den Computer (Bildschirm und Lautsprecher/Kopfhörer) beschränkt. Nun ist es möglich, Objekte in der realen Welt zu steuern.

  • Zeichenkettenmanipulation: Dies scheint eher technisch, doch es erleichtert die Lösung vieler Probleme, das Scratch nun Zeichenketten manipulieren kann (auseinandernehmen, zusammensetzen, Länge einer Zeichenkette erfassen, alphabetische Vergleichsoperatoren).

Daneben bietet Scratch jetzt auch Unterstützung für kleinere Bildschirme (bis hinunter zu 800x480, Netbooks und der OLPC lassen grüssen), es gibt Unterstützung zur Nutzung in Schulnetzwerken (Proxy-Server-Einstellungen, definierbares Datenverzeichnis etc.)

Cool, sofort installieren!

P.S.: Scratch 1.4 funktioniert auch unter Windows 7