Tempo di Lettura: 10 minuti
Per insegnare la programmazione ai bambini su internet ho trovato due risorse uniche: Scratch e CodeCombat. Se Scratch è estremamente educativo, CodeCombat lo trovo anche davvero divertente e in grado di catturare l’attenzione di tutti.
CodeCombat è un simpatico gioco di ruolo che si gioca online e come tutti i giochi di ruolo avrà una vasta scelta di personaggi da controllare (all’inizio solo due saranno sbloccabili) e la possibilità di assegnargli armi, armature, pozioni, libri etc per potenziare le sue scorribande in questa avventura.
Una volta scelto il personaggio e il linguaggio base di programmazione (io ho scelto Python) possiamo dargli ordini come “cammina a destra” o “attacca Gruk” attraverso delle righe di programmazione da inserire sul lato destro della schermata.
Se all’inizio useremo solo comandi come self.moveRigh()
e self.attack("Gruk")
messi nella giusta sequenza in modo da completare il livello,
col passare del tempo e avendo cura di potenziare correttamente il personaggio, arriveremo a scrivere codice più complesso come i cicli di loop o l’assegnazione delle variabili come:
enemy = self.findNearestEnemy()
self.attack(enemy)
In CodeCombat vi sono due modalità di gioco: nella modalità Campagna non dovremo fare altre che avanzare con le missioni in modo da comprendere il meccanismo del gioco e al contempo potenziare il proprio personaggio (è possibile anche combattere in ambienti creati da giocatori stessi), mentre nella modalità Multiplayer possiamo sfidare online altri giocatori esperti cone la Arene Multigiocatore
Devo dire che questo gioco diverte grandi e piccoli programmatori e lo consiglio a quanti si vogliano avvicinare al mondo della programmazione ma anche a tutti i programmatori, che vogliano passare del tempo divertendosi ripassando i costrutti di qualche linguaggio di programmazione.
UPDATE 1: Se vi interessa qualche altro sito per far insegnare la programmazione ai bambini, vi consiglio anche Blockly, oltre che ai corsi di programmazione come quelli di Mastercoder e CoderDojo Roma.
UPDATE 2: In paesi come la Gran Bretagna, la Finlandia e l’Estonia, l’ora di programmazione è ormai una materia che a scuola si studia come la storia o la grammatica. C’è chi apprende il coding già a 4 anni, nella scuola materna, grazie a strumenti come KIBO (per bambini dai 4 ai 7 anni, è un sistema che funziona con piccoli blocchi di legno con degli stickers colorati in cui ogni cubo rappresenta un simbolo preciso che dice al robot cosa fare), giocattoli come Vortex (un dispositivo con ruote che sembra un casco da motocicletta appiattito), Dash (un tetraedro di sfere che, oltre a muoversi in base ai comandi, può anche suonare come un carillon), Hackaball (è una palla fatta di gomma e silicone di 10 centimetri di diametro. Al suo interno ha luci di vario tipo, un sensore di movimento, un microfono e uno speaker), e a linguaggi come Scratch e Scratch Jr (sviluppati dal MIT), Blockly (completamente open source), Hopscotch e Lego WeDo.
via https://ischool.startupitalia.eu/37656/coding/coding-scratch-baby/
UPDATE 3: Una collaborazione fra Microsoft ed il sito Code.org ha dato vita a una creazione decisamente inusuale, ma altrettanto interessante: un tutorial per imparare a programmare giocando a Minecraft, dedicato a studenti ed insegnanti di programmazione. Il sistema, già disponibile in diverse lingue (fra le quali, fortunatamente, figura l’italiano), guida infatti l’utente attraverso le basi della programmazione utilizzando personaggi e meccaniche del popolare gioco, esortando gli studenti ad approfondire gli schemi che stanno alla base di un comune programma: essi troveranno infatti sulla propria strada una serie di sfide e aree di “sperimentazione libera”, nelle quali potranno combinare fra loro “blocchi” di azioni, generando così il codice java corrispondente ed apprendendo i concetti basilari della programmazione. Il corso può essere seguito da tutti gli utenti dai 6 anni in su a questo indirizzo: https://code.org/mc
via https://www.smartworld.it/informatica/imparare-a-programmare-con-minecraft.html
UPDATE 4: Il Sito Code.org a decine di applicazioni dedicate ai bambini per insegnare loro a programmare in maniera divertente sullo stile di Scratch grazie a personaggi divertenti e affascinanti come quelli Frozen, Guerre Stellari, Flappy, Angry Birds, Disney Infinity… è un modo meraviglioso di essere bambini in questa era.
UPDATE 5: A Natale 2015 Google rilascia SantaTracker e qui possiamo trovare una sezione per insegnare ad un elfo i passi di danza attraverso la programmazione a blocchi come già ci insegna Scratch
UPDATE 6: Il 13 Giugno 2016 Apple ha presentato Swift Playgrounds, prevista per l’autunno, una nuova app dedicata ai più giovani che trasforma l’apprendimento del coding in un’attività interessante, semplice e, soprattutto divertente, creata per incoraggiare studenti e programmatori alle prime armi a imparare a programmare con Swift.
UPDATE 7: Human Resource Machine è un un puzzle game il cui gameplay è una riduzione in videogioco di alcuni concetti essenziali della programmazione. Il protagonista è un impiegato di una grande azienda, la Tomorrow Corporation e il punto di partenza è sempre un nastro trasportatore sulla sinistra (inbox) da cui prendere dei valori che vanno portati al nastro trasportatore sulla destra (outbox). Se intuitivamente il risultato è ovvio e chiunque può arrivarci, tradurre il tutto in un linguaggio comprensibile dalla macchina, usare cioè le istruzioni che ci vengono fornite per costruire un sistema che ci porti al risultato, può rivelarsi un compito molto complesso. Ogni livello ammette più soluzioni, ma dopo averlo concluso il nostro codice viene giudicato in base alla brevità e alla pulizia
UPDATE 8: […] metà dei posti di lavoro al top per retribuzione (dai 57mila dollari in su l’anno) richiede almeno le nozioni di base dei linguaggi di programmazione. In particolare SQL, Java, JavaScript, C# e Python. […] è fondamentale almeno per sei professioni specifiche: operatori IT, analisti di dati, scienziati, ingegneri, artisti e designer. […] Saper fare di “coding” significa anche guadagnare di più. […] significa automatizzare lavori ripetitivi e trovare soluzioni a problemi ritenuti impossibili da risolvere. E’ la nuova alfabetizzazione: il “coding” diventerà presto un requisito di base della formazione, proprio come oggi lo è il saper leggere e scrivere.
via Nova
UPDATE 9: Lego Boost
UPDATE 10: Blocky, nuovo strumento didattico realizzato da Google che permette di scrivere programmi più o meno semplici semplicemente trascinando e incastrando tra loro blocchi che rappresentano i concetti principali della programmazione.
Ci sono i blocchi Logic in cui si trovano gli if e i confronti, i blocchi per le operazioni matematiche, quelli per i cicli, quelli per le variabili e così via.
Combinando e personalizzando questi blocchi è possibile creare programmi più o meno immediati e, soprattuto, familiarizzare con i concetti elementari per la programmazione. Ma Blocky non si interfaccia solo con Javascript: questo tool è in grado di generare codice anche in Dart, Lua, PHP, Python e altri linguaggi; inoltre, Google ha pubblicato anche le librerie che permettono di integrare e utilizzare Blocky anche in applicazioni Android e iOS, oltre che web.
via MobileWorld
UPDATE 11: Thunkable vi permetterà di creare gratuitamente app Android e iOS dal vostro browser, senza una riga di codice. Lo segnalo perché la programmazione è realizzata tramite la stessa logica aschemi a blocchi di Scratch o simili. Una volta terminato lo sviluppo, si potrà eseguire l’upload sul Play Store, o inviare l’apk tramite email; il supporto ad iOS, al momento assente, è previsto a breve.
UPDATE 12: CodeGuppy sia adulti che bambini posso imparare step-by-step la programmazione Javascript attraverso dei tutorial anche molto complessi ma comunque divertenti.
UPDATE 13: CryptoZombies è una scuola interattiva gratuita che insegna a costruire giochi con Ethereum attraverso lezioni step-by-step. Forse non proprio adatto ai bambini ma la grafica e l’idea forse farà avvicinare anche qualche adulto curioso al linguaggio di programmazione Solidity usato per creare Smart Contract e una Blockchain privata per la piattaforma Ethereum.
UPDATE 14: PictoBlox di STEMpedia permette la programmazione prototipizzata a blocchi per bambini tipo Scratch ma con la possibilità di abbinarla anche a dei progetti Arduino con sensori e attuatori.
UPDATE 15: Con Lego e Unity è possibile creare un mini gioco 3D in salsa mattoncini LEGO in meno di un’ora, il tutto senza scrivere una riga di codice. Infatti sarà sufficiente seguire i tutorial nell’editor di Unity: gli speciali Behaviour Bricks Lego proporranno azioni di gioco già integrate e ci sono personaggi minifig pronti per l’uso. In questo modo è possibile scegliere i personaggi, creare livelli di gioco in stile platform, aggiungere ostacoli e così via. Sarà possibile aggiungere Mod creative e temi di Asset Store che sbloccano maggiori esperienze. Al giocatore sarà dato un pacchetto Knight’s Kingdom dopo aver semplicemente condiviso il proprio gioco, mentre una Danger Zone è disponibile dopo aver partecipato a una Game Jam prevista per il 19 novembre 2020.
UPDATE 16: Ora potete anche imparare a programmare videogiochi grazie ad uno di questi programmi che semplificano di molto il processo di creazione giochi 2D e 3D.
Altri simili ma più avanzati:
- Construct3
- Sploder
- Adventure Game Studio
- Torque 2D/3D
- Unreal Development Kit (versione gratuita)
- Unity (versione gratuita) da affiancare a Blender per la modellazione 3D
UPDATE 17: Nel 2015 i possessori di Nintendo Wii U e 3DS avevano accolto con grande clamore Super Mario Maker che permetteva di realizzare il proprio livello di Super Mario Bros., personalizzandolo con oggetti e nemici estrapolati dagli episodi più popolari del franchise. Oggi è possibile provare questo gioco nella sua versione per Nintendo Switch, Super Mario Maker 2.
Pochi anni dopo, nel 2018, ha fatto il debutto Nintendo Labo, un kit che unisce hardware e software per insegnare le basi della programmazione e del design e permette di dar vita a platform, puzzle game, sparatutto a scorrimento orizzontale etc.
Nel 2021 viene rilasciato il nuovo gioco di Nintendo che vi insegna a sviluppare videogiochi, Game Builder Garage, che consente agli utenti di Switch di apprendere le basi del game design e di sfruttare le conoscenze acquisite per realizzare la propria opera, sia essa un platform in 3D o un simulatore di corse grazie alla possibilità di seguire sette lezioni per creare altrettanti giochi senza alcuna difficoltà, cogliendo quest’occasione per assimilare le principali nozioni.
UPDATE 18: In Italia, a partire da settembre 2014 quest’iniziativa dell’Ora del Codice è stata proposta a tutte le scuole nell’ambito del progetto Programma il Futuro, con cadenza annuale (l’ultima volta è stata dal 7 al 13 dicembre 2020).
L’Ora del Codice, in inglese The Hour of Code, è un’iniziativa nata negli Stati Uniti nel 2013 per far sì che ogni studente, in ogni scuola del mondo, svolga almeno un’ora di programmazione.
L’obiettivo non è quello quello di far diventare tutti dei programmatori informatici, ma di diffondere conoscenze scientifiche di base per la comprensione della moderna società digitale. Capire i principi alla base del funzionamento dei sistemi e della tecnologia informatica è altrettanto importante del capire come funzionano l’elettricità o la cellula.
È necessario che gli studenti apprendano questa cultura scientifica qualunque sia il lavoro che desiderano fare da grandi: medici, avvocati, giornalisti, imprenditori, amministratori, politici, e così via. Inoltre, la conoscenza dei concetti fondamentali dell’informatica aiuta a sviluppare la capacità di risoluzione di problemi e la creatività.
UPDATE 19: Microsoft MakeCode è una piattaforma open source gratuita per la creazione di esperienze di apprendimento dell’informatica coinvolgenti che supportano un percorso di progressione nella programmazione del mondo reale. Un po’ come Scratch, è possibile iniziare con blocchi colorati da trascinare nell’area di lavoro per creare i propri programmi, ma quando ci si sente più confidenti, è possibile passare a un editor di JavaScript completo di tutte le funzionalità con il supporto di frammenti di codice, descrizioni comandi e rilevamento degli errori.
UPDATE 20: Una ottima risorsa che raccoglie molti siti per la programmazione educativa: Hourofcode.
UPDATE 21: Insegna al tuo bambino Python direttamente nel browser: PyKidos