K1 (13) hat einen Linux PC und programmiert schon seit Jahren super Sachen mit Scratch und mit Caliope. Sie ist auf mich zugekommen und würde gerne mehr programmieren lernen. Ich habe davon keine Ahnung und wo wir wohnen gibt es keine PC-Treffs oder so. Habt ihr einen Tip, für das nächste Level (Bücher, Programme, Online Kurse oder so)?
#Scratch #Programmieren #Linux #Fedieltern #Caliope
Wie schwierig ist es eigentlich in Minetest ein eigenes Monster zu programmieren? Gibt es dafür Kurse?
#Minetest

@klappspatack Minetest/Luanti ist ziemlich einfach, aber es hat auch den Nachteil, dass man nicht bequem programmiert. Die REPL ist umstaendlich, d.h. wie Du das Ergebnis von ner Zeile Code siehst.

Ich wuerde mal auf Steam nach "The Farmer was Replaced" gucken: da lernt man spielerisch Python.

@jens Klingt super. Vielen Dank!

@jens @klappspatack YIp, farmer was replaced is ein _superbes_ spiel um die ersten python basics zu lernen..

Python wäre so oder so auch der nächste vorschlag als praktisch nutzbare sprache zum lernen. (Später z.b. mittels MicroPython dann auch microcontroller programmieren usw.. ;))

@klappspatack @hackbyte Naja, Lua hat auch was, wie in Luanti. Aber das staendige Neuladen hat meine Kids voellig genervt.

@klappspatack Tatsächlich habe ich zufällig letztlich so eine Art Anleitung geschrieben :)

Ist aber leider nicht wirklich anfängerfreundlich, setzt Programmierkenntnisse in Lua voraus. Trotzdem mal hier der Link:
https://docs.luanti.org/for-creators/guides/your-first-mob/

Man kann die Sache noch weiter vereinfachen, wenn man eine "Mob API" wie https://content.luanti.org/packages/TenPlus1/mobs/ verwendet. Das sieht dann bspw. so aus: https://codeberg.org/tenplus1/mobs_animal/src/branch/master/penguin.lua

Aber fangen wir mal von vorne an.

Your first mob

Your first mob# This guide walks you through creating a simple mob. It covers basics of using entities, the go-to tool for any in-world objects that need to be more “dynamic” than a node, i.e. moving. This guide assumes that you have a minimal mod mymod set up, and want to edit mymod/init.lua to register a mob, the “bloblet”. When you’re done, you will have a simple mob that attacks players. It will look something like this:

Luanti Documentation

@klappspatack Wenn sie sich für Luanti-Modding interessiert, sollte sie die Programmiersprache Lua lernen. Dafür gibt es das Buch "Programming in Lua" (PIL, https://www.lua.org/pil/). Luanti verwendet Version 5.1 von Lua.

Lua ist eine sehr schöne Programmiersprache und meiner Meinung nach geeigneter als Python, hat allerdings auch ein wesentlich kleineres Ökosystem, also kann es etwas schwieriger sein, gute Bücher zu finden.

Programming in Lua

@klappspatack Vielleicht macht auch LÖVE2D (https://love2d.org/), ein Framework für 2D-Spieleentwicklung mit Lua, Sinn. Dafür gibt's auch ein schönes, anfängerfreundliches Buch, das einen nett in Lua einführt: https://www.sheepolution.com/learn/book/contents.

Für Luanti gibt's rubenwardy's modding book (https://rubenwardy.com/minetest_modding_book/en/index.html) das eine gute Einführung in die Luanti API bietet. Lua bringt es einem aber nicht bei. Zusammen mit PIL und dem Lua 5.1 reference manual könnte es aber gut funktionieren.

LÖVE - Free 2D Game Engine

@luatic Vielen Dank für die ganzen Infos!!! Das ist ja richtig gut!
@klappspatack Codecademy hat einige kostenlose Kurse. W3schools ist auch gut.


https://www.codecademy.com/

https://www.w3schools.com/
Learn to Code - for Free | Codecademy

Learn the technical skills to get the job you want. Join over 50 million people choosing Codecademy to start a new career (or advance in their current one).

Codecademy
@hollma Danke für den Tip! Das schau ich mir an.
@hollma Dort hat man die Auswahl zwischen HTML, CSS, Python etc. Was wäre da eine gute Wahl? (es geht darum Spaß am programmieren zu haben und nicht um einen späteren Berufswunsch oder so)

@klappspatack Wenn es um Programmierlogik geht wie bei Scratch, dann würde ich mit einer vollwertigen Programmiersprache anfangen. Ob man eher mit technisch komplexen Sprachen, die vorerst einfacher in der Benutzung sind, anfängt (z. B. Python, JavaScript) oder lieber mit einer technisch einfachen Sprache wie C (nicht C++ oder C#), ist Geschmackssache. Ich würde C empfehlen, weil man da am ehesten noch versteht, was der Computer mit seinen Nullen und Einsen im Hintergrund anstellt. Interessante Programmierrätsel gibt’s außerdem unter https://code.golf.

Wenn sich K1 für die Gestaltung von Webseiten interessiert, dann HTML und CSS, aber das ist dann keine Programmierung mehr im eigentlichen Sinne, sondern das sind Struktur- und Gestaltungssprachen. Darauf aufbauend kommt dann JavaScript, PHP und auch immer mehr Python.

Code Golf

Code Golf is a game designed to let you show off your code-fu by solving problems in the least number of characters.

@klappspatack
Python ist n allround-Talent. insbesondere, wenn man nicht vor hat, in die Tiefe eines Teilbereiches zu gehen, ist man m.E. damit erst mal gut dran.

(Und in bisschen Linux-shell schadet auch nicht, um Rasperry, Server Etc. bedienen zu können).
@hollma

@klappspatack @hollma Für Jugendliche würde ich Python als Einstieg in die "richtige" Progammierung wählen. Es ist relativ verständlich, komplexere Dinge die man eventuell verwenden will gibt es als Librarys,, es gibt gute verständliche, jugendgerechte Kurse, etc. Prinzipiell ist es ja egal, welche Sprache man lernt, weil die Logik dahinter die gleiche ist, aber bei Python ist die Einstiegshürde sehr gering, und man hat sehr schnell Erfolge.

@klappspatack Ich finde die Kurse von openHPI gut. Dieser hier wäre z.B. evtl. geeignet:

https://open.hpi.de/courses/pythonjunior2020

Programmieren lernen mit Python

Du bist Schüler:in zwischen 12 und 18 Jahren? Du hast bisher noch keine Programmierkenntnisse oder möchtest gerne Python lernen, eine einfache, aber sehr mächtige Programmiersprache, die auch in Industrie und Forschung stark verbreitet ist? Dann bist du hier genau richtig! Python zeichnet sich insbesondere durch eine gute Lesbarkeit und die hohe Verfügbarkeit bestehender Bibliotheken aus. In diesem vierwöchigen kostenlosen Einsteigerkurs lernst du spielerisch und mit gehörigem Spaßfaktor die Grundlagen der Programmierung in Python kennen. Neues Wissen vertiefen wir mit praktischen Beispielen und helfen so, den beiden Schlangen Simon und Stella ihre Probleme zu lösen. Die beiden Schlangen stehen symbolisch für die Programmiersprache Python, dessen Logo zwei Python-Schlangen bilden. Gleichwohl sich der Kurs vor allem an Schüler:innen richtet, ist die Teilnahme für alle offen.

openHPI
@MBrandtner Das sieht seht interessant aus. Vielen Dank für den Tip 👍
@klappspatack Ist Englisch ok? Dann wären die Bücher von Al Sweigart einen Blick wert: https://inventwithpython.com/
Learn to program. For free.

A Page in : Learn to program. For free.

@klappspatack
Es gibt auch Spiele, die interessant sein könnten, z.B. https://zfdc.ph-freiburg.de/human-resource-machine/.
Human Resource Machine – Zentrum für didaktische Computerspielforschung

@toromtomtom @klappspatack das Spiel fand ich persönlich (=Software-Entwickler) wirklich Weltklasse.
@klappspatack In dem Alter fing ich an, mit den damaligen Möglichkeiten, es mir selber zu erarbeiten. Ok och konnte meinen Vater fragen, aber ich hatte kein Google, keine Foren, kein LLM.
Aus heutiger würde ich sagen, Python. Selbwr kleine Aufgaben überlegen. Dinge diw man braucht, will, ein kleines Spiel. Snake oder so. Und dann mit Python und youtube das sollte gehen.
Viel Erfolg wünsch ich.
Achso und "Jugend Hackt" mal anschauen.
@klappspatack ich würde auf alle Fälle Richtung Python gehen. Snake wrangling for kids gibt es wohl auch auf deutsch.
https://code.google.com/archive/p/swfk-de/
Google Code Archive - Long-term storage for Google Code Project Hosting.

@klappspatack wenn sie Lust hat auch direkt in Hardware einzusteigen, ist vllt der Calliope was für euch. Die Website richtet sich zwar an Schulen, mE sind die Materialen aber zum (gemeinsamen) Selbststudium geeignet.

Psychologisch hat es den großen Vorteil, dass man mit dem Programmieren gleich einen super sichtbaren Effekt hat.

https://calliope.cc/los-geht-s/einfuehrung#yellow

CALLIOPE | Einführung

Unsere Mission ist es, jeder Schülerin und jedem Schüler in Deutschland ab der 3. Klasse einen spielerischen Zugang zur digitalen Welt mit Hilfe des Calliope mini zu ermöglichen.

@morl99 Danke für den Tip. Den Caliope hat sie schon. Wirklich ein gutes Teil 👍

@klappspatack Hast du ja auch geschrieben 😮‍💨Ich sollte keine Posts vorm ersten Kaffee schreiben...

Dann wäre der logische Schritt, nun eine Programmiersprache zu lernen, die man mit dem Caliope nutzen kann. Also JavaScript/TypeScript oder Python.

@klappspatack
Vielleicht für viel später, oder wenn K1s englisch wirklich! gut ist https://www.nand2tetris.org/ dazu das Buch kaufen.
Home | nand2tetris

nand2tetris

@klappspatack ich bin Mentorin bei einem Coderdojo und wir machen oft Python als nächsten Schritt nach Scratch oder Calliope.

python.org ist die erste Anlaufstelle, da gibt's auch jede Menge Links zu Lernmaterialien. Die Community ist super. Ansonsten guck Mal bei "jugend hackt" . Die haben Workshop-Materialen für Python.

Wenn es um Spiele gehen soll, wäre TIC-80 eine gute Wahl. Da muss das Kind aber schon halbwegs programmieren können.

Meld dich wenn du noch Fragen hast.

@klappspatack Nach in der Schule “Pascal abtippen” habe ich von meinem Papa den #KernighanAndRitchi “Programmieren in C” bekommen.
C schadet sicher auch heutzutage immer noch nicht. In dem Buch wird die Sprache erklärt, und was sie tatsächlich in der Maschine anrichtet. Am Ende der Kapitel sind kleine Aufgaben und deren Lösungen.
Es gibt #KopfBisFuss / #HeadFirst Bücher. Fand ich für C# und Patterns super.

Die meisten gängigen Sprachen sind übrigens “C-ähnlich” immer noch…. #Python ist da schon eher etwas anders

@klappspatack hedy.org ist für diesen Schritt konzipiert wurden. Auch senkt es die Sprachbariere, da man unter anderem auf deutsch programmieren kann.

@klappspatack wir hatten damals am technischen Gymnasium u.A. C und Assembler auf Atmel Mikrocontrollern. Das schöne an den kleinen (attiny2313 etc.) ist, dass der Befehlssatz überschaubar ist. Zum Grundverszändnis wie so ein Computer funktioniert ist das wirklich top. Inzwischen gibt es da ja viel mächtigere Chips, Circuitpython, Arduino & co, aber egal wie mächtig der Computer ist im Grunde sind die Prinzipien immer die selben.

Dediziert Lehrmaterial/Links habe ich dazu aber leider keine.

Was sind denn so Dinge die aktuell umgesetzt werden und wo könnte die Reise grob hin gehen / wo besteht der Wunsch nach "mehr"? Viele Unterlagen sind in Englisch, wäre das ein Problem?

Edit: Lego Mindstorms hat ein Kollege für seinen Nachwuchs im Einsatz, bis auf Elektronik davon reparieren hatte ich selbst aber noch keinen Kontakt damit

@stereo4x4 Sie ist sehr gut in Englisch. Was ich mitkriege, baut sie in Scratch Text-Adventures und irgendwelche grafischen Sachen. Mit dem Caliope Microcontroller hat sie schon länger nichts mehr gemacht. Sie ist eher kreativ
@klappspatack vielleicht wäre dann Python mit Pygame was https://www.python-lernen.de/pygame-tutorial.htm
Pygame Einführung: Spieleprogrammierung & Python lernen

Pygame Library nutzen zum Spiele programmieren in Python. Pygame ist eine Bibliothek, die für uns die Spieleentwicklung mit Python sehr viel einfacher macht.

@klappspatack

Als wir in der Schule mit Java angefangen haben, hatten wir BlueJ genutzt.

https://www.bluej.org/

Das ist eine Recht simple Umgebung die versucht Objektorientierung zu visualisieren, ohne dabei gleich in Komplexität zu explodieren.

BlueJ

@klappspatack
Ich habe dieses Buch hier im Auge, das ich aber noch nicht ausgegeben habe.
Das könnte was sein.
https://www.rheinwerk-verlag.de/spiele-programmieren-mit-godot/

Und "Let's code Lua" aus dem gleichen Verlag.

Ansonsten vllt einfach anfangen, mit Typst Vorlagen für Referate und Schulkram zu basteln, und mal die Matheaufgaben mit Scratch oder Python lösen.

Für den Calliope gibt es noch tolle Hardware-Erweiterungen, zB Motoren und Sensoren, zB https://cardboard.lofirobot.com/sleepybot-hungrybot

Und für Lego: pybricks. Das ermöglicht dann auch den Wechsel von Blocksprache zu Text und bietet mit den Motoren sehr viele praktische Herausforderungen.

#codingforkids

Spiele programmieren mit Godot - Vom kinderleichten Einstieg zum eigenen Game

Eigene Spiele programmieren mit Godot ✓ Ohne Vorkenntnisse ✓ Beispiele in Scratch ✓ Ideal für Kinder und Jugendliche ➤ Jetzt Buch kaufen

Rheinwerk Verlag GmbH
@lebochequirit die Bücher werd ich bestellen 👍
@klappspatack @nerdherz Ich vermute mal, dass es zu weit weg ist, aber mein Arbeitgeber in Wiesbaden bietet alle zwei Wochen Programmieren mit Kids als AG an mit erfahrenen Programmierer*innen als Coaches: https://programmieren.de/
Seibert Stiftung

Kostenlose Programmierkurse für Kinder und Jugendliche in Wiesbaden

Seibert Group
@MaZderMind @nerdherz sowas ist ganz toll aber leider zu weit weg
@klappspatack
CodinGame und CodeCombat sind beide ganz cool, da kann man spielerisch gegen Monster coden und gegen andere Leute in kleinen Challenges antreten😊
@ruebe5w das kommt auf die Liste. Vielen Dank!
Holger Zahnleiter / Programmierspaß mit Pico-8 · GitLab

Programmieren lernen (für Kinder) mit der Pico-8 Fantasy Console und Lua.

GitLab
@scops das sieht super aus! Danke!
@klappspatack das installier ich die Tage auch auf dem Computer meines Großcousins :) wird im Mai 13
@klappspatack In dem Alter weiß ich nicht was da sinnvoll ist. Leider. Ich selber fing erst mit ungefähr 16 an. Damals war Pascal meine Wahl. Ich habe mir das Grundwissen über Bücher angeeignet. Da sind immer programmierbeispiele mit drin.
Ich habe mir dann selber kleine Aufgaben gestellt und programmiert. Klein angefangen und dann wird es größer.
Heute denke ich könnte Python ein guter Einstieg sein. Aber ich weiß nicht wie sinnvoll, das in dem Alter schon ist.
@klappspatack Gibt es das Python for Kids Buch noch?
@juh guter Tip. Das werd ich bestellen
@klappspatack Ggf ist das Cybermentorin (FLINTA*) Programm etwas für sie?

@klappspatack ich kann wärmstens The Nature of Code empfehlen (sofern English ok ist). Die Übungen machen Spaß und sind nicht trocken, da es in den Bereich creative coding reingeht mit visuellen Ergebnissen statt nur Text. Es gibt auch viel Begleitmaterial und tutorial videos und ist CC-lizensiert, wenn man also nicht das gedruckte Exemplar will, gibts alle Kapitel auch online.

https://natureofcode.com/introduction

Allerdings werden ein paar Grundlagen vorausgesetzt, bei deinen ich nicht weiß ob die mit Scratch vermittelt werden (Schleifen, Variablen usw.)

Nature of Code

Simulating Natural Systems with JavaScript

@nylki 👍hab ich bestellt. Danke für den Tip
@klappspatack Man muß sich Herausfordeungen geben 😉
Meiner hat in dem Alter, vielleicht ein Jahr jünger, sich einen Webbrowser programmiert, in Python. Natürlich waren das "nur" zusammengeklebte Libs, aber er konnte damit surfen. Es ging ihm ohnehin zuerst ums Lernen.
Das nächste dann ein Webserver, diesmal in Rust. Heute ist er bei Erlang und Elixir angekommen 😀
Ich glaube, für 13-jährige sind grafische Tools eher hinderlich.
@klappspatack Vielleicht gibt es ja auch ein CoderDojo in der Nähe oder einen Hackerspace?