# Catrobat

Catrobat ist eine erstmals 2010 unter dem Namen Catroid veröffentlichte bildungsorientierte visuelle Programmiersprache für Jugendliche inklusive einer Entwicklungsumgebung, plattformübergreifenden mobilen Apps und einer eng verknüpften Online-Community-Plattform.

## Zielsetzung

Ihr Ziel ist es, Neueinsteiger – besonders Teenager – mit den Grundkonzepten der Programmierung vertraut zu machen. Hierfür greift Catrobat auf den Ansatz des Konstruktionismus zurück und fördert die kreative und explorative Erstellung eigener Spiele, Animationen und Multimedia-Anwendungen. All dies ist direkt nur auf einem Smartphone für die Benutzer möglich.
Vorteil dieses Ansatzes ist, dass Anwender ohne zusätzliche Hardware wie PCs, Laptops oder Tablets, direkt am eigenen Smartphone neue Projekte erstellen, bearbeiten, abspielen und mit anderen Benutzern, falls gewünscht, unter Veröffentlichung des Quellcodes teilen können. Dabei können unterschiedliche Sensoren verwenden werden (z. B. Multi-Touch, Neigungssensor, Gesichtserkennung, Spracherkennung, GPS-Daten). So können die Benutzer ihr logisches Verständnis und Problem-Lösungs-Denken verbessern.
Die mit Catrobat erstellten Apps können entweder aus einer Catrobat-App wie Pocket Code gestartet werden, oder (zum derzeitigen Stand nur auf Android-Geräten) als eigene Apps zur Verfügung gestellt werden. Der Austausch zwischen den Anwendern über die Catrobat-Community-Plattform soll weitere Motivation und bessere Lernerfolge ermöglichen. Falls vom Ersteller einer Anwendung nicht deaktiviert, kann auf der Plattform auch der jeweilige Quellcode eingesehen werden.
Weiters gibt es durch die einzige und mittlerweile weit verbreitete Hardware-Anforderung, einem Smartphone, viele Initiativen des gleichnamigen und gemeinnützigen Vereins „International Catrobat Association – Verein zur Förderung freier Software“ in weniger stark entwickelten Ländern. Die erste wichtige war die Vorinstallation der Catroid- und Pocket-Paint-Apps auf dem OLPC-Tablet 2013. Ebenso zeigt der Catrobat-Verein vor allem starkes Engagement um weiblichen Nachwuchs für MINT-Fächer und versucht die Begeisterung für das Programmieren bei ihnen zu wecken.

## Namensherkunft

Der Name Catrobat entstand im Laufe der Zeit aus dem ursprünglichen ersten Softwareprojekt Catroid. Catroid selbst war eine Anlehnung an Android und dem englischen Wort Cat für Katze. Die Katze wurde aufgrund der Nähe zum Scratch-Projekt gewählt, das eine Katze als Maskottchen verwendet. Um für die daraus entstandene visuelle Programmiersprache und den Dach-Verein etwas allgemeineres zu haben, entstand als Wortspiel Catrobat.

## Entwicklung und Implementierung

Die erste Veröffentlichung im Juni 2010 war noch unter dem Namen Catroid nur für Android verfügbar. Unter Leitung von Wolfgang Slany entstanden in den Folgejahren verschiedene Erweiterungen und auch Apps für andere mobile Betriebssysteme.
Inspiriert ist Catrobat von Scratch und dem US-amerikanischen Professor für Lernforschung Mitchel Resnick der Lifelong Kindergarten Group am MIT Media Lab. Zwischen den beiden Sprachen und Projekten gibt es regen Austausch und seit 2015 auch einen Scratch2Catrobat-Converter, welcher den Import und Umwandlung von Scratch Projekten zu Catrobat-Projekten ermöglicht und somit auch die direkte Ausführung unter den unterstützen mobilen Betriebssystemen.
Seit 2011 ist Catrobat auch Teil von Googles Summer of Code und erfreut sich auch einer regen Teilnahme bei Google Code-In. Der erwähnte Scratch2Catrobat-Converter war Teil vom Google Summer of Code 2014.

## Entwicklungsumgebung, Mobile Apps, Share-Plattform
### Catrobat Framework

Die Entwicklungsumgebung für Catrobat ist Teil der mobilen Apps und diese können kostenlos unter Android aus dem Google Play Store, Huaweis AppGallery oder Apples App Store heruntergeladen werden. Derzeit aktiv unterstützt werden Googles Android und Apples iOS. Die Varianten für Windows Mobile und eine HTML5-basierte Version wurden 2017 bzw. 2019 eingestellt.

### Mobile Apps

Da Catrobat auf die Verbreitung über mobile Betriebssysteme setzt, werden vom gleichnamigen Catrobat Verein auch entsprechende Apps entwickelt und gepflegt.
* Pocket Code mit 1,4 Millionen Downloads auf Google Play seit 2014 und 20.000 Downloads auf Apples App Store seit 2019 (Stand: November 2020)
* Pocket Paint mit 1,2 Millionen Downloads auf Google Play seit 2014 (Stand: November 2020)
* Create@School, welche im Zusammenspiel des Horizont 2020 Projektes „No One Left Behind“ umgesetzt wurde
* Luna And Cat, welche verstärkt weibliches Zielpublikum adressieren soll
* Embroidery Designer ermöglicht mit Catrobat das visuelle Programmieren von Stickmaschinen

### Share Plattform

Die auf Catrobat basierenden Apps, allen voran Pocket Code, bieten eine eingebaute Share-Plattform. Hierüber kann jeder Benutzer seine eigenen programmierten Anwendungen freigeben, als auch die Anwendungen anderer Anwender ausprobieren. Durch das Hochladen erklären sich die User mit der Veröffentlichung ihres Quellcodes unter einer freien Softwarelizenz einverstanden, der dadurch von anderen Usern eingesehen und weiterverwendet werden kann. Vor allem dadurch ergeben sich an Scratch angelehnt die Möglichkeit von Remixen bzw. Aufgreifen von bereits funktionierenden Projekten und Abändern gemäß der eigenen Wünsche. Hierdurch stellt sich neben einer höheren Motivation auch ein größerer Lerneffekt bei den Catrobat Usern ein.
Die Share-Plattform wurde auch für unterschiedliche Wettbewerbe wie beispielsweise den Samsung Galaxy Game Jam (#GalaxyGameJam) verwendet.

## Verbreitung und Nutzung

Seit 2014 wächst das Catrobat Projekt mit seinen Apps exponentiell in Bezug auf Benutzer- und freiwilligen Entwicklerzahlen. Im Einsatz ist die Programmiersprache auf Smartphones fast über alle Länder der Welt. Stand Ende 2020 gibt es über 2,5 Millionen App-Downloads, über 200.000 monatlich aktive Nutzer und über 1000 freiwilligen Beitragende. Daher gibt es eine weltweit wachsende Gemeinschaft von Programmieranfängern, Schülern, Studierenden, Pädagogen, Wissenschaftlern und Hobbyisten, die sich gegenseitig motivieren und unterstützen.
Die Aktivitäten haben sich über die reine Anwendung, Entwicklung und Übersetzung auf lokale Ereignisse ausgedehnt. Neben den wiederkehrenden Maker Days an der TU Graz, Samsungs Coding for Kids, und Schulen, die es im Lehrbetrieb aufnehmen, gibt es auch internationale Events im Zuge von Kooperationen.
Das Konzept für den Einsatz in Schulen basiert auf dem Konzept des Konstruktionismus und wurde in mehreren Iterationen wissenschaftlich erforscht und ausgearbeitet.
Als Partnerorganisation auf Code.org gibt es auch während der jährlichen „Hour of Code“ den #GalaxyGameJam als Aktivität.

### Catrobat an Erziehungseinrichtungen

Catrobat wird weltweit in verschiedensten Schulformen und Unterrichtsveranstaltungen eingesetzt. Im Zuge des Projektes No One Left Behind wurde EU-Länderübergreifend das Konzept aufgegriffen.

### Catrobat Community

Die Catrobat Community tauscht sich über verschiedene Kanäle aus. Neben dem Catrobat-Wiki, welches ein freies, gemeinschaftlich geschriebenes Wiki ist, das Informationen über die Programmiersprache Catrobat, deren Funktionsumfang, Geschichte und begleitende Education-Materialien enthält, gibt es eine Reihe weiterer Plattformen. Das Wiki wird vom Catrobat-Team unterstützt, wird aber im typischen Wiki-Charakter von der Community getragen und in die Sprachen der Benutzer übersetzt.
Darüber hinaus gibt es eine YouTube-Community, welche in bereits mehreren Sprachen die fertigen Catrobat basierten Projekte, als auch Tutorials erstellt und teilt.
Über Discord gibt es auch einen eigenen Server, auf dem sich in Sprachen unterteilt die Benutzer austauschen können und ihre Projekte präsentieren.
Die Entwickler tauschen sich über GitHub, Slack, Jira und Confluence aus. Die Übersetzungen über die Plattform Crowdin können von jedem beigetragen werden und werden vom Projekt nach Sichtung für das nächste Release übernommen.

## Programmieren in Catrobat

Catrobat bietet einem die Möglichkeit, die gesamte Entwicklung mit den visuellen Bausteinen, sogenannten Blocks und wenigen textuellen Eingaben durchzuführen. Der größte Vorteil für die zumeist jugendlichen Benutzer ist die Möglichkeit, in einer von über 60 Sprachen zu programmieren, die auch weit über das Angebot der Betriebssysteme gehen. Somit muss man nicht wie sonst üblich in Englisch programmieren. Diese Spracheinstellung lässt sich beispielsweise in Pocket Code für die App selbst in den Einstellungen setzen. Dies führt zu einer sehr niedrigen Einstiegshürde.
Die visuellen Blöcke sind farblich kodiert. Eine genaue Funktionsbeschreibung und Auflistung aller Möglichkeiten findet sich in den Apps bzw. im Catrobat-Wiki. Auf YouTube gibt es auch eine Reihe von Tutorials für spezifische Funktionalität.
Catrobat Blocks :
| Farbe | Funktion | Beschreibung |
| #D15827 | Event | Verschiedene Events die als erster Block für ein Skript dienen: „wenn Szene Startet“, „Wenn angetippt“, „Wenn du abprallst von etc“. |
| #F79660 | Steuerung | Steuern den Programmfluss mittels abgewandelten if-Abfragen oder steuern Schleifen. Bspw. „Warte × Sekunden“, „Beginne Szene“ etc. |
| #418BC6 | Bewegung | Steuern die Position, Richtung, Bewegung und Physik eines Objektes: „Setze an Position“, „Drehen“, „Masse“, „Geschwindigkeit setzen“ etc. |
| #8753A1 | Klang | Spielen Klänge ab, auch als text to speech oder speichern und spielen gesprochene Nachrichten des Benutzers ab |
| #6C9C49 | Aussehen | Befassen sich mit dem Aussehen von Objekten. Ändern Grafiken oder ermöglichen Grafikeffekte |
| #355729 | Malstfit | Erlaubt Zeichnen oder Stempeln über den Touchscreen |
| #F04D4F | Daten | Ermöglichen Daten zu speichern und zu verwalten. Daten können die Form von Variablen oder Listen haben und auch permanent sein, wie für den Spielstand |
| #395CAB | Benutzer definiert | Benutzerdefinierte Blöcke |
| #D078A5 | Sticken | Blöcke für die Stick Erweiterung, die es ermöglicht ein Stickmuster für elektronische Stickmaschinen zu definieren |
| #FDCB3F | Lego NXT | Ermöglichen die Steuerung von Lego NXT Robotern |
| #FDCB3F | Lego EV3 | Ermöglichen die Steuerung von Lego EV3 Robotern |
| #AEA634 | AR.Drone 2.0 | Ermöglicht die Ansteuerung der Parrot AR Drone |
| #AEA634 | Jumping Sumo | Ermöglicht die Ansteuerung der Parrot Jumping Sumo Drone |
| #28A6AE | Arduino | Ermöglicht die Steuerung der Arduino Plattform |
| #28A6AE | Raspberry Pi | Ermöglicht die Steuerung der Raspberry Pi Plattform |
| #28A6AE | Phiro | Ermöglichen die Steuerung von Robotix Phiro Robotern |
| #28A6AE | Testen | Programmtest Blöcke wie „Assert“ und Touchsimulation |

## Rezeption

Catrobat und die mobilen Apps haben unter anderem folgende Preise und Anerkennungen erhalten:
* Gewinner „Best App Europe“ für Pocket Code beim Huawei HMS App Innovation Contest für Europa
* Mind the Gap Award (Oktober 2020) TU Graz, für das Embroidery Designer / Code'n'Stitch Femtech FFG Projekt
* „Route 63“ kompetitives Projekt (Oktober 2020) TU Graz und Karl-Franzens-Universität Graz, zusammen mit Karin Landerl (Karl Franzens University Graz, Institut für Psychologie), für das gemeinsame Projekt „Towards a Better Understanding of the Cognitive and Affective Mechanisms of Computer Programming and Computational Thinking“
* Best Paper Award at IEEE International Conference on Open Systems (ICOS 2018), „Enabling Teenagers to Create and Share Apps“ by Matthias Müller, Christian Schindler, Kirshan Luhana, and Wolfgang Slany
* Finalist Excellence in Teaching Award, TU Graz, Vorlesung „Programming 101 – Design your own app!“
* Best Paper Award at IEEE International Conference on Innovative Research and Development (ICIRD 2018), „Streamlining mobile app deployment with Jenkins and Fastlane in the case of Catrobat's Pocket Code“ by Kirshan Luhana, Christian Schindler, and Wolfgang Slany
* Closing the Gender Gap (November 2017), netidee
* Platinum Award in der Kategorie „Best educational app“ (März 2017), Best Mobile App Awards
* Re-Imagine Education Gold Award Winner Europa (Dezember 2016), Wharton School of the University of Pennsylvania in Philadelphia, USA
* Internet for Refugees Award (November 2016), netidee
* ICT 2015 'Young Minds' – Grand Prix Best Connect Exhibitor Award, Europäische Kommission
* Lovie Awards: Silber, außerdem People's Lovie Awards (Oktober 2015), The International Academy of Digital Arts and Sciences
* Austrian National Innovation Award for Multimedia and e-Business (März 2013), Austrian Ministry for Economics and Youth Development