👁️
pierreinside
  • Introduction
  • Workbench
    • VirtualBox
    • Linux
      • Linux-Paketverwaltung
      • Linux Initialisierung
      • Ubuntu 14.10 LTS
      • Ubuntu 16.04 LTS
      • Ubuntu 18.04 LTS
      • Ubuntu 20.04 LTS
      • Ubuntu - Netzwerk
    • Konsole
      • ssh
      • zsh
      • cygwin
      • Babun
      • terminator
      • Terminal Multiplexer
      • Linux Tools
    • awesome
    • Entwicklungsumgebungen
      • Texteditors
      • Visual Studio Code
      • IntelliJ - IDEA
  • Softwareentwicklungsprozess
    • Schätzungen
    • Eventstorming
    • OKR
  • Architektur
    • Uncle Bob
    • Microservices
    • NoSQL
      • ElasticSearch
    • Hystrix
    • Reactive Programming
    • AngularJS
    • Service Mesh
  • Networking
    • Dependency Injection
  • Programming
    • Java Core/EE
      • Java 8
      • Java Annotationen
      • Bean Validation
      • Enterprise Java Beans Specification
      • Dependency Injection
    • JRebel
    • Webservices
      • HTTP
      • REST
      • Spring MVC REST
      • Swagger
      • Postman
    • Spring Ecosystem
      • Spring Core
      • Spring Boot
        • Programming
        • Production Ready
        • Testing
      • Spring Cloud
      • Spring Cloud Config
      • Spring MVC
      • Spring Data
      • Spring Petclinic
    • NodeJS
    • UI-Technologie
      • Thymeleaf
      • ionic
      • Web Fonts
      • Jinja Templates
      • Twitter Bootstrap
    • Python Ecosystem
      • Python Libraries
      • Python Testing
      • Python Best-Practices
      • Python Snippets
      • Python Selenium
      • Kivy UI
      • FastAPI
      • Typer CLI
      • Django
    • Groovy
    • Persistenz
      • Transactions
        • Java TX
        • JPA TX
      • TX Handling
      • JPA
        • Eclipse Link
      • MySQL
        • MySQL Performance
        • Docker MySQL
      • Hazelcast
    • Glassfish
    • YAML
    • Angular
    • Camel
    • Zeichenkodierung
    • Kinder lernen Programmieren
  • Testen
    • Easymock
    • Mockito
  • Performance & Scalability
    • Java Performance
      • Heapdump Analysis
    • Java Concurrency
    • Instana
  • Sicherheit
    • Authentifizierung
      • OpenID Connect
      • Web-Authentication API
    • Authorisierung
      • OAuth
      • SAML
    • Spring Security
    • Zertifikate
    • Kali Linux
    • VPN
    • Zero-Trust-Networks
  • Build und Deployment
    • Maven
    • Bamboo
    • Jenkins
      • Jenkins Pipelines
      • Jenkins Pipelines Tips und Tricks
      • Jenkins-configuration-as-Code
      • Jenkins IDE
    • Travis CI
    • Shellprogrammierung
      • jq - JSON Parsing
    • Konfiguration Management
    • Vagrant
      • Vagrant-Ansible-Integration
      • Vagrant Box bauen
    • Ansible
      • Getting Started
      • Ansible Details
    • Saltstack
    • LinuxKit
    • Container
      • Docker
        • Docker Getting Started
        • Debugging Docker
        • Docker Build
        • Docker Registry
        • Docker run
          • docker run
          • docker network
        • Docker Compose
        • docker machine
        • Docker@Windows
        • Docker Host
        • Docker Scaling
        • Docker Ressources
        • Docker Logging
        • windowsContainer
      • Cloud Deployment Provider
        • AWS
          • Anwendungsdeployment
          • Workload
          • Permissions
          • Netzwerke
          • AWS CLI
            • aws-vault
          • RDS
          • Static Website Hosting
          • EKS - Elastic Kubernetes Service
          • S3
        • Google Cloud Platform
      • Docker Orchestrierung
        • CoreOS
        • Kubernetes
          • microK8s
          • minikube
          • autoscaler
          • Docker
          • k9s
        • Nomad
    • PHP
  • Operations
    • Proxy
      • NGINX
    • DNS
    • Logging
      • Graylog
      • Fluentd
    • Monitoring
      • Grafana
    • Infrastructure-as-Code
      • Terraform
        • AWS-Provider
        • GitHub-Provider
      • Packer
    • Deployment
      • Vault
      • Consul
        • Consul Template
      • Fabio
  • Rechtliches
    • Software-Lizenzen
  • Git Ecosystem
    • Git
      • Git Lifecycle Hooks
    • GitHub
      • GitHub Organizations
    • GitHub Actions
    • GitHub Pages
    • GitHub CLI
    • GitHub Copilot
    • GitHub-AWS OIDC
    • GitBook
    • GitLab
    • Bitbucket/Stash
  • Publishing
    • WordPress
    • Markdown
    • Static Site Generators
      • Hugo
      • Jekyll
    • Tiddly Wiki
    • Leanpub
    • Animationsfilme
  • Storage
    • Synology 2012
    • Synology 2021
  • Collaboration
    • Übersicht
    • Microsoft Teams
  • Konferenzen
    • Velocity Berlin 2019
  • IT mit Kindern
    • Projekt Sportstracker
    • Scratch
    • Pico Spielekonsole
  • Schule
    • Mathematik
  • Misc
    • Foto/Video
      • Foto/Video Sammlung bis 2023
        • Handbrake
        • Onedrive
      • Foto/Video Sammlung ab 2024
      • Gopro
      • Panasonic FZ1000 ii
        • als Webcam
      • AV Receiver
      • Videos erstellen
        • OBS Studio
        • Touch Portal
        • Game-Streaming
      • Kameratasche
      • Kamera 2020
    • Handy
      • 2016
      • 2018
      • 2019
      • 2021
      • 2022
    • Computer
      • Laptop
        • 2018
        • Chromebook
      • Monitor
        • 4k
      • Software
        • Command Line Interface
        • Google API
        • Plant UML
        • Chromium
        • Passwort-Manager
        • GPG
      • Dell CNF 2665 Farbdrucker
      • Dockingstation
      • Gaming PC 2021
      • Mobiles Büro
      • Mobiles Internet
      • Mobiler Router
    • Beamer Benq W1000+
    • Spielekonsole
      • 2017
        • Playstation 4
      • Pico Spielekonsole
    • Gadgets
      • iPad Pro 2015 und 2016
      • iPad Air 2024
      • Macbook Pro
      • Smartwatch
      • Slate
      • Mudi
    • Fahrrad
      • Jonas 2018
      • SQLab
    • Auto
      • Auto 2022
      • Camping
        • Camping Touren Ideen
          • Camping Tour - Gardasee 2021
        • Camper
          • Camper klein - keine Stehhöhe
            • VW Bus Erfahrungen
          • Camper gross - Stehhöhe
    • Haus
      • Klimaanlage
      • Swimming Pool
      • Quick Mill Orione 3000
      • Spülmaschine 2021
      • Hebe-Schiebetür
      • Gasgrill
      • Minibar / Mini-Kühlschrank
      • Glasfaseranschluss (Fiber-to-the-Home)
      • Smart-Home
        • Raspberry Pi
        • Heimnetzwerk
      • Homeoffice
      • Energie
        • Solar
        • Wärmepumpe
    • Freizeit
      • Musik Streaming
      • Sky
      • Online Lernplattformen
      • eScooter - ePowerFun
    • Fußball
      • Meine Arbeit als Fußball-Trainer
      • Fußball Tools
      • DFB Talentförderung
    • Google Impact Challenge
  • Englisch
Powered by GitBook
On this page
  • Motivation
  • Entwicklungsumgebung
  • Online-IDE + Platform
  • Laptop/Computer
  • Raspberry PI
  • Getting Started
  • Konzepte
  • Skripte
  • Bewertung
  • Was ich mir wünschen würde ...

Was this helpful?

  1. IT mit Kindern

Scratch

Mit Scratch lassen sich die Konzepte der Programmierung spielerisch und grafisch animiert kennenlernen. Man merkt im Grunde nicht mal, daß man programmiert. Das ist besonders für Kinder (müssen allerdings bereits lesen können) ein sehr guter Einstieg.

Da es auch Scratch-Projekt mit Mindcraft oder anderen für Jugendliche interessante Themen gibt, kann man so vielleicht einen guten Zugang und eine echte Motivation finden.

Internetzugang oder nicht: Es klingt verlockend Scratch lokal zu installieren und auf den Internetzugang zu verzichten. Am Anfang ist das auch vollkommen in Ordnung - insbesondere bei kleineren Kindern. Allerdings gehört das Internet zu der Welt der Softwareentwicklung dazu. Die Software läuft heutzutage häufig in der Cloud, man nutzt Communities (um mit Gleichgesinnten per Chat oder Videokonferenz zu kommunizieren ... zumeist in Englisch), liest Dokumentation und Blogs (= Erfahrungsberichte) und nutzt Platformen wie YouTube, um sich weiterzubilden. Das Internet ist nicht PER SE schlecht - wenn man programmiert, dann nutzt man viele positive Aspekte dieses Mediums ... man konsumiert nicht mehr nur, sondern wird kreativ, um neue Inhalte zu erstellen.


Motivation

Während es zu meiner Jugendzeit (80er Jahre des 20. Jahrhunderts) kaum Computer gab (kaum verbreitet, sehr teuer), hat heutztage jeder 10-jährige einen Power-Computer in der Tasche ... das Handy.

Alle sind gewohnt Computer in irgendeiner Form wie Handy, Tablet, Alexa, FireTV-Stick, Netflix, Smart-Watch, Playstation ... zu benutzen. Wissen über Programmierung kann heutzutage niemandem schaden und so beginnen die Schulen schon systematisch mit der IT-Ausbildung in der weiterführenden Schule.

Ich bin selbst Softwareentwickler und kann mir keinen schöneren Job vorstellen. Wir sind kreativ, arbeiten im Team, verdienen sehr gut, können unsere eigenen Hobby-Projekte durchführen und teilweise entwickelt sich daraus auch ein Geschäftsmodell. Kurz: wir können die Zukunft mitgestalten.

Deshalb möchte ich meinen Kindern diesen Teil der Welt gerne mal zeigen und sie vielleicht dafür interessieren. Letztlich ist es aber ihre Entscheidung, ob sie daran weiterarbeiten/spielen oder einen anderen Weg einschlagen.

Bei Scratch handelt es sich um eine visuelle Programmiersprache. Man kann keine syntaktischen Fehler machen (hiermit verschwindet schon mal ein frustrierendes Element bei der Programmierung). Scratch bietet genügend Features, um im Bereich Algorithmen und Modularisierung die Konzepte der Programmierung zu verstehen. Eine gute Vorbereitung, um danach dann vielleicht zu einer nicht-grafischen Programmiersprache (Python oder Go) überzugehen. Um das volle Spektrum an Hard- und Software kennenzulernen kann man einen Computer aus einem Raspberry selbst zusammenbauen, ein Betriebssystem installieren und konfigurieren und anschließend Hardwareprojekte umsetzen, die durch Software zu echten Lösungen werden.

Mit einem 14-jährigen Schüler habe ich bereits im Zuge eines einwöchigen Berufspraktikums die Spielekonsole Pico entwickelt und seitdem ist er von der Programmierung begeistert.

Scratch bietet im Bereich Datenstrukturen nichts wesentliches - hier könnte Snap eine Alternative sein. Vielleicht wechselt man dann aber auch schon zu einer textuelle Programmiersprache?!?


Entwicklungsumgebung

Online-IDE + Platform

Unter scratch.mit.edu findet man einen Online-Editor (IDE) - man muß also nicht einmal Software installieren und kann somit JEDES Endgerät (auch Handy, Tablet oder auch einen 50 Euro Raspberry Pi). Es gibt also keinen finanziellen Grund, nicht mit dem Programmieren zu beginnen.

Die Online-IDE bietet den großen Vorteil, daß man dort seine Projekte zum Spielen und zur Weiterentwicklung mit anderen freigeben kann. So bleiben die Ergebnisse nicht zuhause auf dem Computer, sondern stehen der ganzen Welt zur Nutzung bereit (auf einer Vielzahl von Endgeräten). Man muß aber nicht gleich so groß denken - auch Programmier-Projekte innerhalb einer Stadt/Dorf sind so möglich und können eine unglaubliche Begeisterung im Team auslösen.

Außerdem kann man sich hier auch den Code der Projekte anschauen (erweitern/verändern), um so

  • zu lernen

  • neue Lösungsideen entdecken

  • Best-Practices zu finden

  • sich inspirieren zu lassen

Ich werde diesen Ansatz verfolgen ... durch den Community-Ansatz eröffnen sich viele Möglichkeiten. Es ist einfach viel inspierierender und kommt richtigen Software-Entwicklung (die IMMER im Team stattfindet) schon sehr nahe. Bei der Nutzung fühle ich mich schon sehr an GitHub erinnert.

Laptop/Computer

Eine lokale Entwicklungsumgebung aka Scratch Desktop läßt sich auf fast jedem Computer installieren: Download

Sehr schön finde ich, daß man lokal erstellte Projekte als Datei exportieren (leider in einem Binärformat) und im Online-IDE importieren kann. Die Integration hätte allerindgs noch besser sein können ... in der App kann man nicht auf seine Community zugreifen und ist somit eingeschränkt.

Raspberry PI

Ein Raspberry Pi mit dem Betriebssystem Raspbian bringt schon alles mit, was man für die lokale Entwicklung von Scratch-Projekten braucht. Hier braucht man dann nicht einmal einen Internet-Zugang.


Getting Started

Ich verwende die Online IDE und habe mir dort einen Account angelegt.

Das Spiel Pong Starter hat mir gut gefallen. Ich habe es ein paar mal gespielt und jetzt schaue ich mir den Source-Code an (über Schau hinein).

Manche Code-Stellen verstehe ich nicht und ich möchte gerne mal die Parameter verändern, um die Auswirkungen zu sehen. Dazu erstelle ich einen Remix (in GitHub-Projekten nennt man das Fork) - eine Kopie des Source-Codes in meinen Account und kann dann Änderungen vornehmen und das Spiel auch folgendermaßen erweitern:

  • Geschwindigkeit des Balls verändern

    • Variable einfügen, damit ich den Code dafür nicht immer ändern muß

  • aus dem Ball einen Fußball machen

  • Größe des Paddels verändern

    • Variable einfügen, damit ich den Code dafür nicht immer ändern muß

  • Punktestand hinzufügen

  • Trefferzone oben - hierfür gibt es noch einen Scorerpunkt

  • links eine Trefferzone

    • bei Treffer zählen die Treffer für immer doppelt

      • nur für 30 Sekunden

  • ab 50 Punkten ein Freileben

  • Geschwindigkeit nimmt kontinuierlich zu


Konzepte

  • Bühne

    • Hintergrund-Bild des Programms

    • Bühnenbilder

      • Bibliothek vorhanden

      • lassen sich editieren

      • man kann neue erstellen

        • hochladen

        • malen

  • Figuren

    • Figuren befinden sich auf der Bühne

    • Bibliothek vorhanden

    • lassen sich editieren (= Kostüm)

    • man kann neue erstellen

      • hochladen

        • als einfach jpg, png Dateien (im besten Fall mit transparentem Hintergrund)

        • als Sprite ... so kann man beispielsweise aus einem Handy-Foto per App Clip2Comic einen Comic-Filter anwenden und das Ergebnis per Online-Sprite-Sheet-Generator einen Sprite erzeugen

      • malen

  • Skripte (= Programmcode)

    • ist IMMER an eine Figur (= Objekt: Katze, Ball, ...) gebunden

      • verwendet man mehrere Figuren, dann kann jede ihre eigenen Aktionen ausführen

  • Klänge

    • können im Code abgespielt werden

    • Bibliothek vorhanden

    • lassen sich editieren

    • man kann neue erstellen

      • hochladen

      • aufnehmen

  • Plugins wie z. B. den Malstift, Lego-Mindstorms-Integration oder die Verwendung der Videokamera zur Programmsteuerung

  • Open-Source

    • man kann Projekte öffentlich machen und so anderen einen Einblick gewähren oder über Remixe Forks erzeugen, um so ein Projekt weiterzuentwickeln

  • projektübergreifende Library in Form eines Lagers ... so lassen sich mehrere Blöcke zwischen Figuren und/oder Projekten wiederverwenden

Skripte

Skripte sind IMMER an eine Figur (= Objekt: Katze, Ball, ...) gebunden

  • Programmierelemente aus (man kann auch Kommentare hinzufügen)

    • Bewegung

    • Klang

    • Ereignisse

    • Steuerung

    • Fühlen

    • ...

  • aus Programmcode läßt sich ein parametrisierter Block (= Modul) erstellen

    • leider kann man Blöcke nicht projektübergreifend nutzen

  • im Code können Variablen verwendet werden, um Zustände zu speichern und im Code zu verwenden (z. B. ein Punktestand)

  • Konfiguration kann über Variablen erfolgen


Bewertung

Sehr gut gemacht und ein toller Einstieg in die Softwareentwicklung ab 8-10 Jahren. Die wesentlichen Programmierkonzepte sind alle abbildbar und sogar Open-Source-Ansätze sind umgesetzt.

Was ich mir wünschen würde ...

  • Undo-Funktion

  • Historie bei der Speicherung

PreviousProjekt SportstrackerNextPico Spielekonsole

Last updated 1 year ago

Was this helpful?

Scratch