Linguaggi di programmazione per bambini

Oggigiorno una delle competenze fondamentali che i bambini devono acquisire è quella di imparare le basi della programmazione. Sempre più scuole stanno indirizzando i propri sforzi verso l’insegnamento del coding perché tra le 8 competenze chiave di cittadinanza che l’Europa richiede, c’è proprio la competenza digitale. Ma la motivazione ancora più solida che sta dietro a queste skills è esattamente quella che programmando, bambini e ragazzi acquisiscono la capacità di risolvere i problemi, competenza che in termini più moderni viene chiamata problem solving.

L’insegnamento dell’informatica è stato agevolato negli ultimi anni dalla nascita dei linguaggi di programmazione di facile apprendimento come Scratch, Arduino e piattaforme come App Inventor.

L’invenzione di Arduino, per esempio, ha permesso la fruizione dei linguaggi di programmazione per la robotica anche ai non addetti ai lavori. Arduino infatti oggi rappresenta la scelta privilegiata per chi vorrebbe imparare a programmare un robot, comandare sensori e led partendo da un livello di conoscenze nulle sul settore. Così questo microcontrollore è diventato lo standard di riferimento per la programmazione di robot nel campo dell’istruzione e della didattica.

linguaggi di programmazione per bambini
La homepage di Scratch, linguaggio di programmazione per bambini

Scratch

Anche se Scratch è un linguaggio di programmazione per bambini, può effettivamente essere difficile da padroneggiare. Infatti, anche i suoni, i disegni e gli script hanno complessità nella loro struttura. Ho studiato questo tutorial per coloro che sono completamente nuovi sull’argomento, per i principianti.

Per imparare Scratch non sono necessarie conoscenze importanti di informatica, come si potrebbe pensare, infatti lo scopo principale di Scratch è del tutto didattico. L’aspetto importante è insegnare come implementare un algoritmo, cioè i passi che risolvono un problema.

Implementare“, insieme ad “algoritmo”, sono due termini che incontrerai spesso nella programmazione, perché significano proprio creare i passi e il procedimento che risultano utili alla soluzione di quel problema. Ovviamente, questi passi, possono essere creati differentemente da persona a persona, perché vengono implementati individualmente tramite l’ausilio del proprio intelletto e della propria fantasia, ma i risultati finali sono gli stessi e questo vale per tutti i linguaggi di programmazione per bambini che stiamo analizzando.

Quindi, se siete degli insegnanti, e darete un problema da risolvere con Scratch ai vostri alunni, gli algoritmi (i procedimenti) che ne ricaverete saranno diversi e come dicevo, dipendono dalla fantasia dello studente, ma il prodotto finale sarà lo stesso, se l’algoritmo sarà corretto.

Iniziamo adesso a creare il primo programma con Scratch.

Scratch online è un'ottima piattaforma con cui i bambini possono programmare

Apri Scratch accedendo al loro sito in una normale browser come Chrome. Se vuoi salvare i lavori da te creati, devi necessariamente creare un account gratis cliccando su Unisciti alla comunità Scratch, pulsante collocato nell’angolo in alto a destra.

Una volta fatto il login o la registrazione con il tuo account, clicca su Create (crea in Italiano), il pulsante in alto a sinistra, arriverai al compilatore online di Scratch, una pagina che consente di scrivere i tuoi programmi.

La pagina sarà composta principalmente dal Menù blocchi, dallo Stage e dall’area Script.

Il Menù blocchi, collocato a sinistra, è una specie di cassetta degli attrezzi, dove il bambino prende un blocco con un’istruzione precisa e lo colloca nell’area centrale, dove va scritto il codice.

La parte centrale, invece, è costituita dall’Area Script. Qui i blocchi vengono incastrati per formare un programma più grande che contiene una serie di istruzioni.

L’area Stage, collocato in alto a destra, contiene il risultato finale, cioè il gatto di cui si potrà controllare il movimento tramite le istruzioni. Se il gatto non ti piace, potrai scegliere altri Sprite da manovrare, cioè altre forme come ad esempio una palla, una mela o un orso.

Supponiamo di voler creare un semplice programma in cui il gatto compie dieci passi, allora andremo a selezionare dalla toolbox l’istruzione fai 10 passi e la collocheremo nella parte centrale, cioè l’Area Script. Successivamente, nella parte soprastante a questa, incastreremo un’altra istruzione: quando si clicca sulla Bandierina Verde.

Quest’ultima istruzione consentirà al programma di essere avviato con la pressione del pulsante Bandierina Verde, collocata in alto allo Sprite.

Primo programma Scratch

Arduino

Tra i linguaggi di programmazione per bambini è possibile annoverare Arduino, che per essere precisi, è un microcontrollore progettato a scopi didattici che negli ultimi anni sta prendendo piede nel mondo scolastico e anche nel mondo dell’automazione industriale.

La nascita dei primi microcontrollori industriali basati su Arduino, la diffusione di vestiti intelligenti basati su Arduino che misurano i parametri corporei, la diffusione di dispositivi commerciali comandati dal microcontrollore fa pensare ad un boom nel campo commerciale nei prossimi anni e ad un amento della richiesta di forza lavorativa specializzata nella progettazione di software sviluppato per Arduino.

Home di Arduino
Home page di Arduino

Cos’è il microcontrollore?

Il microcontrollore è un dispositivo elettronico che, se opportunamente programmato, consente di comandare l’operatività di altri dispositivi elettronici, come per esempio un Led o un motore.

Ma qual è il forte vantaggio che ha questo dispositivo e perché ha goduto di tale diffusione della didattica e nell’insegnamento dei linguaggi di programmazione robotica anche alle categorie di studenti di fascia di età molto bassa?

Il maggiore punto di forza di Arduino è la facilità di programmazione e la semplicità con la quale si possono creare i primi progetti. Infatti, quando si segue un corso su Arduino, già dalla prima lezione ci si mette subito a lavoro con un programma che accende e spegne il LED (una piccola lampada) che il dispositivo ha già incorporato.

Un altro punto a favore di Arduino è la grande documentazione (in inglese) disponibile online, che guida il lettore nella comprensione di piccoli progetti e arriva, passo dopo passo, a quelli più complessi. La grande comunità molto attiva online, fa da supporto a coloro che incontrano problemi nell’implementazione del codice.

Lo schema di Arduino

Questo dispositivo gode inoltre di un grande vantaggio: è stato distribuito sotto una licenza open source, questo significa che lo schema del circuito di cui è composto è disponibile anche a terzi. Questo ha abbattuto di molto i costi per acquistarlo, infatti lo potete trovare online a pochi euro.

Se sei interessato a cimentarti nel suo utilizzo, ti consiglio di prendere un kit su Amazon che contiene anche molti componenti elettronici con cui iniziare a fare test.

Se la nostra didattica include l’insegnamento dei linguaggi di programmazione per bambini e decidiamo di usare Arduino, il primo progetto che in genere si implementa prende il nome di blink e permette l’accensione ad intermittenza di un led incorporato. Arduino ha dei pin di output digitale, che sono delle uscite che possono trasmettere due tipi di segnali: zero o uno.

Quando il valore in uscita in un pin è 1 il dispositivo connesso con questo si accende (per esempio una lampadina) , mentre quando lo stato del pin è 0, il dispositivo connesso si spegne. Così se colleghiamo un led al pin 13, questo si accenderà e spegnerà a seconda dello stato di quel pin.

Esiste un simulatore online con cui fare test con i circuiti progettati con Arduino, Tinkercad. E’ con questa applicazione che testeremo il nostro circuito.

La piattaforma Tinkercad

La piattaforma di Tinkercad che può essere vista come un gioco di programmazione per bambini online, si presenta con una sezione centrale dove mettere i pezzi presi dalla toolbox, la cassetta degli attrezzi presenti a destra. Per arrivare a questa schermata, abbiamo scelto la sezione “circuits” e successivamente “montato” il circuito, collegando l’uscita 13, a cui corrisponde anche lo stato del Led L incorporato, con un Led rosso con in serie una resistenza. Successivamente, nella sezione Code, abbiamo inserito il seguente codice in linguaggio C, il linguaggio usato da Arduino:

void setup()
{
  pinMode(13, OUTPUT);
}

void loop()
{
  digitalWrite(13, HIGH);
  delay(1000); // Wait for 1000 millisecond(s)
  digitalWrite(13, LOW);
  delay(1000); // Wait for 1000 millisecond(s)
}

Il precedente codice, esegue all’infinito i comandi inseriti nella funzione ciclica loop(). Questi gli comandano di accendere il Led al pin 13, aspettare un secondo e spegnerlo. L’attesa viene stabilita dalla funzione delay.

Successivamente, per provare il circuito, premiamo il tasto Start Simulation.

Se volessimo provare il circuito in un vero Arduino, dovremmo collegarlo al computer, installare il software Arduino, presente nel loro sito, e successivamente caricarlo sul dispositivo. Una volta caricato, il microcontrollore funzionerà autonomamente.

L’esempio che ho fatto ha soltanto uno scopo illustrativo, il cui unico obiettivo è quello di farti vedere come funziona questa interessante scheda, ottima per far giocare i bambini. Però, questo tutorial non è sufficiente a darti le basi su cui cominciare a progettare autonomamente. Per questo ti consiglio di leggere un buon libro sull’argomento.

Python

Negli ultimi anni, soprattutto nelle scuole anglosassoni, è stato scelto Python come linguaggio di programmazione per bambini. Quando si parla di Python, parliamo sicuramente di un linguaggio di programmazione più avanzato che non è stato creato appositamente per insegnare il coding ai ragazzi, ma che sicuramente, ha la sua semplicità nella scrittura del codice, quindi può essere annoverato ugualmente tra i linguaggi di programmazione per bambini.

Per tale motivo Python sta prendendo piede nel mondo della programmazione, scalando ogni classifica e superando linguaggi che oggi sono in declino. La sua semplicità e immediatezza di scrittura, la sua completezza nella possibilità di importare qualsiasi tipo di libreria, la sua diffusione nel mondo del lavoro, fanno di Python un ottimo investimento per il futuro.

Imparare Python infatti significa acquisire una competenza utilizzabile su larga scala nel mondo lavoro: oggi viene utilizzato nello sviluppo di applicazioni web, nell’intelligenza artificiale, nel trattamento di grandi mole di dati e per l’implementazione di applicazioni desktop.

Se sei un insegnate, Python potrebbe essere un’ottima scelta per i tuoi alunni che potrebbero avere una base da cui partire per eventuali approfondimenti futuri del linguaggio.

Un programma in Python

Installare Python

Per installare Python vai sull’apposita pagina di Python.org e clicca su Download. Potrai scaricare il file d’installazione che una volta eseguito andrà a scaricare l’interprete del linguaggio.

L’interprete è quel programma che ti consente di poter eseguire gli script, cioè il codice che tu e i tuoi alunni scriverete.

Pagina per scaricare Python

Una volta scaricato e installato, noterai subito la presenza di un’icona sul desktop, o sul menu Start di Windows. Puoi usare anche il campo Cerca digitando Python. Dovrai cliccare su IDLE Python (sia le versioni a 32-bit che a 64-bit vanno bene entrambi).

Python sul menù Start

Quello che ti si presenterà davanti sarà la shell di Python e adesso vedremo meglio di cosa si tratta.

Shell di Python

Sicuramente molti di voi si ricorderanno del vecchio Dos, il sistema operativo usato prima dell’avvento di Windows. Dos aveva una shell, che adesso è accessibile cercando su Cerca della Barra delle applicazioni il tool cmd. Ebbene le shell servivano, e servono tuttora, a dare dei comandi al sistema.

La shell di Python non si discosta più di tanto da questo concetto base, con la differenza che i comandi, che generalmente sono dati una riga alla volta, sono indirizzati all’interprete di Python, che ricordo essere il programma che esegue il codice scritto con tale linguaggio di programmazione.

Adesso che abbiamo avviato l’interprete e abbiamo davanti la shell, possiamo finalmente scrivere il nostro primo programma, che come in ogni buon tutorial o libro di programmazione che si rispetti, visualizzerà a schermo la frase “Hello world!” che in italiano significa “Ciao Mondo!”.

Andiamo sulla nostra shell e digitiamo il comando print(“Hello world!”) e successivamente premiamo Invio. La shell si occuperà di stampare la stringa “Hello world!”.

Hello World su Python

Può sembrare un’operazione banale ma print è un comando che potrebbe essere parte di programmi ben più complessi. Analizziamo più da vicino cos’è successo a livello tecnico.

Immagina la funzione print come una scatola chiusa che ha un ingresso x e un’uscita y. Non sappiamo come è fatta questa scatola internamente, ma sappiamo cosa fa, cioè stampare a schermo la stringa che gli diamo. Ecco cosa fa print, prende in ingresso (input) la stringa “Hello world!” e restituisce in uscita sullo schermo (output) la scritta che noi abbiamo dato come valore in ingresso.

La funzione print su Python

Prendiamo il caso in cui dobbiamo scrivere un nuovo programma, più complesso, con più righe di codice. Forse la shell che accetta comandi ad uno ad uno, non è il luogo più appropriato. E’ necessaria dunque una nuova interfaccia grafica, che permetta di scrivere più righe alla volta. In tal caso ci appoggiamo all’editor di Python, una parte del programma che permette di scrivere codice più complesso.

Vai su File >> New File, ti si aprirà una finestra con un editor testuale, studiato per scrivere il codice sorgente.

Qui creeremo un programma che effettua la somma di due variabili e ci fornisce il risultato finale. Per farlo useremo la funzione print e due variabili di tipo intero. Se non sai cosa sono le variabili, non temere. Lo spiegherò dettagliatamente qui di seguito.

Variabili

Il concetto di variabile è un concetto che incontrerai in tutta la teoria sul coding e che quindi incontrerai in tutti i linguaggi di programmazione per bambini, quindi è meglio analizzarlo più da vicino.

Le variabili sono delle aree di memoria adibite a contenere valori che, come dice lo stesso termine, possono variare nel tempo. Quindi quando dichiariamo una variabile, stiamo dicendo al computer di riservarci una piccola area di memoria che utilizzeremo nel nostro programma.

A ogni variabile corrisponderà un nome e un tipo: il nome serve a identificare univocamente quell’area di memoria, il tipo invece serve a indicare il tipo di valore che quell’area di memoria deve contenere.

Per esempio se dichiariamo:

a=10

b=20

stiamo dicendo all’interprete Python che vogliamo che un’area di memoria dal nome “a” dovrà contenere l’intero 10, mentre un’altra area di memoria di nome “b” dovrà contenere l’intero 20.

Possiamo, inoltre, creare un’altra variabile che conterrà la somma dei due valori. Il valore di questa variabile sarà infine stampato a schermo dalla funzione print dopo la stringa “La somma è uguale a”.

Somma di due numeri in Python

Per eseguire il seguente programma, vai sul menù a tendina e clicca Run >> Run Module, oppure premi F5. Il risultato finale sarà simile a questo:

Somma in Python, esecuzione del programma

Se vuoi approfondire il linguaggio Python, ti consiglio quest’ottimo corso da seguire online.

Blockly

Blockly è un linguaggio di programmazione visuale per bambini, simile a Scratch nell’interfaccia grafica. Infatti questi due linguaggi usano, in linea di massima, entrambi dei blocchi per aiutare i bambini a programmare. C’è però una sottile differenza tra entrambi: Blockly infatti favorisce la conversione del codice costruito in blocchi in codice sorgente in Javascript, linguaggio usato in larga scala per implementare le pagine web.

Inoltre, Blockly è molto più simile a un linguaggio di programmazione anche nell’output dei programmi, che viene implementato con il blocco print e in formato testuale invece che grafico.

La finestra di Blockly adibita a scrivere il codice.

L’output viene visualizzato con un messaggio a comparsa che ci avvisa del risultato finale.

Il messaggio di output di Blockly

Sviluppato sotto la licenza Apache 2.0 è stato creato per bambini dagli 8 anni in su. E’ sviluppato, inoltre, per chi preferisce imparare il codice a casa o a scuola all’interno del proprio browser, quindi senza la necessità di installare programmi.

I diversi colori dei blocchi e le forme di questi, danno la possibilità di incastrarli l’un l’altro formando blocchi unici che si differenziano a seconda dell’algoritmo implementato.

Il tutto è davvero semplice da usare. I bambini prendono, uno alla volta, i blocchi fuori dal toolbox (la cassetta degli attrezzi) e li collocano nello spazio adibito alla creazione dei programmi. Una volta che finiscono di comporre il codice finalmente possono provarlo e controllare se funziona correttamente. Il tutto si realizza tramite un pulsante play che ha la forma di una freccia rivolta a destra.

Blockly dà la possibilità di realizzare programmi funzionanti e utili e questo lo rende più di un semplice linguaggio di programmazione per bambini o di un giocattolo con cui imparare a programmare.

Pur essendo un tool abbastanza avanzato, a differenza di Scratch, non ha una grossa comunità che lo supporta dietro, è quindi manca la presenza corposa di tutorial online che aiutino i bambini, e anche i più grandi, a realizzare i loro progetti.

I punti di forza di Blockly però sono la facile comprensione dell’interfaccia grafica e il fatto che sia più vicino ai linguaggi di programmazione usati in campo professionale, e questo senza dubbio può favorire il passaggio di conoscenze più professionalizzanti.

Tynker

Uno dei più diffusi linguaggi di programmazione per bambini e Tynker che si compone di una piattaforma educazionale che mira a insegnare ai ragazzi a fare giochi e programmi.

Su Tynker invece di scrivere il codice sorgente, vengono visualizzati dei blocchi che rappresentano le istruzioni del codice, forme che vengono trascinate ed incastrate in programmi più complessi. Il design visuale è molto simile a Scratch , ma la piattaforma è basata su Javascript e HTML5 e quindi può essere utilizzato dal browser come Chrome e Firefox senza l’ausilio di plugin o altri accorgimenti. Questo aspetto dà la possibilità ai bambini di potere programmare anche da tablet o smartphone.

E’ bene precisare che Tynker è un prodotto commerciale, a differenza di Scratch che è un prodotto open source. Open Source significa che il codice sorgente è distribuito liberamente tra la comunità informatica, insieme alla possibilità di poterlo migliorare.

La home page di Tynker

CodeCombat

Un modo diverso e forse anche più divertente di fare coding è usare una piattaforma simile a un gioco online per imparare diversi linguaggi di programmazione. Codecombat è una di queste. Qui gli utenti si sfideranno attraverso vari pericoli codificando e programmando le azioni compiute dai vari personaggi.

Durante il gioco, Codecombat farà da guida attraverso dei tutorial e delle direttive multimediali illustrate durante il gioco, consentendo anche ai più inesperti giocatori e istruttori di imparare facilmente a giocare e soprattutto a programmare.

Inoltre il gioco è predisposto per insegnare diversi linguaggi di programmazione, incluso Python e Javascript. Le istruzioni durante il gioco faranno comodo ai giovani giocatori, che saranno motivati dai premi ricevuti alla fine di ogni livello.

Se vuoi iniziare subito a programmare, basta andare nella home di Codecombat e cliccare su Play, il pulsante in basso a sinistra. Si aprirà una pagina che assomiglia a tutti gli effetti ad un gioco online, ma con l’unica variante di comandare i personaggi con il codice.

Una schermata di Codecombat

Codecademy

Se finora abbiamo analizzando i più avvincenti linguaggi di programmazione per bambini, adesso è venuta l’ora di scoprire quale potrebbe essere un ottimo modo per impararli e approfondire le proprie competenze sul coding. E anche se in questo paragrafo non parleremo di un linguaggio specifico, analizzeremo una delle piattaforme più importanti per imparare a programmare in maniera interattiva, senza la lettura di noiosi e lunghi libri.

Codecademy è una delle piattaforme e-learning più importanti per i novelli programmatori, studiata appositamente per condurre lo studente da un livello base a un livello avanzato.

Questo sito interattivo ha una piacevole interfaccia e insegna ai bambini le basi del codice attraverso il divertimento e semplici esercizi, facendogli sembrare di stare giocando.

Su Codecademy si possono imparare linguaggi come Javascript, Php, Java e Python, inoltre si può imparare come progettare un sito web con i linguaggi Html e Css. Infine, per la gestione dei database viene trattato il linguaggio SQL.

L’accesso in Codecademy è libero, con alcuni percorsi specifici che possono essere a pagamento. L’unica nota negativa, ma neanche tanto, è che il sito è in inglese, quindi gli studenti faranno anche pratica con la lingua straniera oltre ad imparare la programmazione.

La home di Codecademy

Lascia un commento