Programmieren lernen mit Scratch oder Text

Tippen oder Ziehen?

Kontext!

Games! Games! Games! 🎮🕹️

Grafische Programmierung

  • Vorteile 👍
    • Tippen ist keine Hürde
    • Englisch ist keine Hürde
    • Tablets/Smartphones können verwendet werden
    • Kindgerecht (Begriffe, buntes Erscheinungsbild)
    • Fächerübergreifender Einsatz ist einfach
  • Nachteile 👎
    • Begeisterung lässt schnell nach
      • Gefahr der Langeweile wenn Komplexität
        der Beispiele nicht angepasst wird
    • Wird ab gewissem Alter als "kindisch" wahrgenommen
    • Funktionale Limitierung
    • Umstieg auf textuelle Programmierung ist echte Hürde

Z.B. Scratch, MakeCode, Pocket Code

Was spielerisch erlernt wird

  • Grundkenntnisse im digitalen Bereich und der Programmierung
  • Praktische Fertigkeiten
    • Verwendung von Maus und/oder Touchscreen
    • Augen-Hand-Koordination (Maus)
    • Einfache Bildbearbeitung
    • Digitales Kopieren, Einfügen, Verschieben
  • Kognitive Fertigkeiten
    • Grundlegende Programmstrukturen
      (z.B. Sequenzen, Schleifen, Entscheidungen)
    • Fehlersuche
    • Bedeutung von Variablen
    • Grundlagen 2D-Computeranimation
    • Kreatives Denken (Spiellogik, grafisches Design)

Textuelle Programmierung ⌨️

Textuelle Programmierung

  • Vorteile 👍
    • (Fast) keine funktionale Limitierung
    • "Echte Hacker" - keine kindliche Anmutung
    • Wichtige Kompetenzen abseits von Coding werden erlernt
      (z.B. Tippen, Englisch)
  • Nachteile 👎
    • Tippen ist schwierig und schreckt ein wenig ab
    • Englisch-Kenntnisse sind notwendig
    • Die gleichen Ergebnisse wie in Scratch zu erreichen ist nicht einfach
    • Systemvoraussetzungen (z.B. Tastatur)
    • Fehlersuchen deutlich schwieriger
      • Unterrichtende brauchen solides Basiswissen,
        um unterstützen zu können

Z.B. JavaScript, Python, Java, C#

Tipps

  • Große Auswahl an Programmiersprachen
    • ⚠️ Vorsicht bzgl. Systemvoraussetzungen!
    • Browser-basierte IDEs sind gute Wahl (z.B. Stackblitz)
    • Systemprogrammiersprachen (z.B. C, C++, Rust) am Anfang vermeiden
  • Zusätzliche Frameworks sind wichtig
    • Für Creative Coding und Games
    • Umgang mit Bildern
    • Einfache Game Engines
    • Beispiele: p5js (JavaScript/TypeScript), Processing (Java), Tkinter (Python), Phaser (JavaScript/TypeScript)
  • ​Fertige Module/Funktionen vorbereiten
    • ​Verstecken von Komplexität, um rasch motivierende Ziele zu erreichen
    • Umfang fertiger Komponenten an Alter/Wissen/Ziele anpassen

Tipps

  • Analogien zwischen Scratch und textuellem Code zeigen
    • Schleife in Scratch vs. Schleife in TypeScript
    • Einrückungen in Python vs. Schleifendarstellung in Scratch
  • Tippen - insbesondere Sonderzeichen - als Ziel der Übung
    • ⚠️ Unterschiede PC/Mac/Sprachen bei BOYD
  • Gemeinsame Fehlersuche zelebrieren
  • Strategien für Wiedereinstieg/Quereinstieg entwickeln
  • Ergebnisse leicht teilbar machen
    • Ergebnisse Eltern/Geschwister/Oma/Opa/... zeigen können
    • Abgabe von (Haus)Übungen
    • Multiplayer Games für Freundinnen/Freunde
      (⚠️ technisch anspruchsvoll)

Fazit

  • Blockprogrammierung, um spielerisch Programmiergrundlagen zu erlernen
  • Textuelle Programmierung, um funktionale Limits zu sprengen
  • Inhalt (=Kontext) ist wichtiger als das eingesetzte Werkzeug
  • Praktische und kognitive Fertigkeiten nicht überschätzen
  • Richtige Erwartungshaltung
    • Nicht alle SchülerInnen, die den Deutschunterricht besuchen, werden BestsellerautorInnen
    • Nicht alle SchülerInnen, die den Informatikunterricht besuchen, werden professionelle EntwicklerInnen
  • Perspektiven aufzeigen, Begeisterung wecken, Fertigkeiten entwickeln