Programmieren Lernen mit BYOB Informatiktag 2012 Gerald Futschek 5. November 2012
Erste Programmier Schritte in der Schule Sehr viele verschiedene Dinge zu lernen: Syntax und Semantik der Befehle, Algorithmen, Editor, Entwicklungsumgebung, Fehler finden, etc. Programmieren g lernen ist für viele Anfänger ein großes Problem Konzepte der Programmierung sollen im Vordergrund stehen Professionelle Entwicklungsumgebungen verstellen oft die Sicht auf das Wesentliche
Größten Barrieren von Programmieranfängern 1. Syntax der Programmiersprache 2. Fehlermeldungen
Scratch Lernumgebung u.a. zum Programmieren Lernen Keine Syntax zu lernen Keine Fehlermeldungen Code wird wie in einem Puzzle zusammengesteckt entwickelt seit 2007 von Lifelong Kindergarten Group am MIT Media Lab (M. Resnick) scratch.mit.edu
Was man als LehrerIn von einer Lernumgebung haben möchte Low threshold No ceiling
Was Scratch alles kann Objekte (Charaktere) selbst dfii definieren Jedes Objekt hat eigene Programme Alle Objekte können parallel laufen Objekte können interagieren Objekte können Nachrichten austauschen und sich synchronisieren Variablen und Listen (Dynamische Arrays) y) Programm kann während der Ausführung verändert werden (unmittelbares Feedback) Steuerung von Robotern (Scratch board, Lego WeDo) In allen wichtigen Sprachen der Welt
Was man mit Scratch nicht kann Blöcke selbst definieren (Unterprogramme) Rekursion Listen mit Listen als Elemente Listen mit Blöcken als Elemente Listen mit Charakteren (Sprites) als Elemente OO Programmierung
BYOB BYOB = Build Your Own Block Hat alles von Scratch, aber auch das, was Scratch fehlt von Brian Harvey und Jens Mönig (Berkeley University) veröffentlicht 2010, frei verfügbar Ab 2012/13 gibt es webbasierte Version: SNAP! byob.berkeley.edu
Prozeduren Blöcke definieren in BYOB Blöcke ohne Rückgabewerte Funktionen Blöcke mit Rückgabewerten
Datentypen in BYOB sind: Zahlen Wörter Wahrheitswerte Listen Sprites Blöcke Programmstücke Datentypen in BYOB Alle Datentypen sind in BYOB first order, d.h. sie können verwendet werden als: Wert von Variablen Element einer Liste Als Parameter (input) von Blöcken Als Ergebnis (output) von Blöcken Anonyme Elemente (zb Konstante)
Erfahrungen mit BYOB Teil 1 Sehr leichtes Erlernen der ersten Programmschritte (Low threshold) Sehr rasche Fortschritte beim Erlernen der Programmierkonzepte Zur Benutzung von BYOB praktisch kein Lehraufwand notwendig Lehraufwand konzentriert sich auf Konzepte: Arrays, Listen, Rekursion, Algorithmen, etc.
Erfahrungen mit BYOB Teil 2 Programme werden wesentlich strukturierter Objektorientierte Programme weitgehend möglich Prozeduraler, Funktionaler und Objektorientierter Programmierstil möglich Auch Studierende an Uni kommen auf Ihre Kosten (No Ceiling)
Erfahrungen mit BYOB Teil 3 Nachteile: Programmierfehler werden von Lernenden oft nicht erkannt, da keine Fehlermeldungen Fehlerfinden ist trotz SingleStep Ausführung mühsam Umstieg auf syntaxbetonte Sprachen schwierig BYOB ist sehr sehr langsam (SNAP! wird ca. 20 Mal schneller) Konzepte der Datenstrukturen Array und Liste vermischt (Dynamisches Array)
Empfehlungen BYOB nicht verwenden wenn es auf die Vermittlung professioneller SW Entwicklungswerkzeuge ankommt wenn es auf rasche Ausführungszeiten ankommt
Empfehlungen BYOB verwenden, Von 8 99 Jahren wenn es auf rasches Erlernen von Programmier Konzepten ankommt Auch für fortgeschrittene Konzepte SNAP! wird viel rascher sein SNAP! wird idim Browser laufen daher SNAP! auch für Fortgeschrittene