Insegnare ai bambini a programmare
Questo il mio contributo al 69° Carnevale della Matematica: “Macchine matematiche antiche e moderne“, poiché la mia “macchina matematica” preferita è il computer allora parlerò di come secondo me bisognerebbe insegnare a programmare questa macchina fin da piccoli, in modo che si possa da grandi imparare a programmare “macchine matematiche” più complesse
Perché io che insegno in una scuola superiore dovrei parlare del modo con cui insegnare informatica nella primaria?
In primo luogo perché lo scambio di competenze è un’aiuto per la propria crescita personale, in secondo luogo perché vorrei tentare di dare un piccolo contribito alla risoluzione di un grande problema, soluzione che si ottiene modificando l’insegnamento dell’informatica fin dalla scuola primaria.Noto spesso la difficoltà con cui gli studenti affrontano la programmazione della loro azione di apprendimento, ciò capita perché in generale non si insegna a farlo. Si da per scontato che uno studente da solo impari la tecnica di studio, impari a memorizzare, impari a dare sequenza alle proprie azioni di studio, si dimentica però che queste azioni, informatiche, sono da insegnare, non nascono naturalmente. Ecco perché lo studente, ma soprattutto l’insegnante, dovrebbe aggiungere alla propria azione didattica il modulo: “impara a pensare” che in altro modo può essere tradotto come:
“impara ad ordinare i tuoi pensieri”
“impara a risolvere i problemi”o ancora meglio:
“impara a programmare”,
in questo modo lo studente avrà la competenza nel formalizzare logicamente qualsiasi tipo di progetto.
Ma quando iniziare questa azione?
Subito! Dalle scuole elementari, la dispersione è da prevenire!Tanto prima gli insegnati, di ogni disciplina, impareranno come fare informatica meglio sarà per i nostri studenti.
In questo periodo è tornato in voga, con progetti ministeriali, un’azione didattica applicata in ogni disciplina, soprattutto nella matematica, che si preferisce nominare in inglese: problem posing and solving, altro non è che il modo classico con cui si affrontano logicamente i problemi in informatica, quindi finalmente ci si accorge che l’informatica può ridurre l’insuccesso didattico.
Ma come applicare il PPS?
Bisogna modificare radicalmente il modo di fare l’insegnante (e qui la vedo dura) mettersi in discussione ed imparare a progettare…… e qui, in meno di 20 righe, ho già perso il 50% dei lettori di questo articolo… poco male i restanti sono sognatori e quindi appartenenti al club “cambiare è bello” che ho fondato in questo momento.
A questo punto il lettore si aspetterebbe la soluzione, che ovviamente non ho, qualcuno più saggio direbbe: “l’obiettivo non è trovare la soluzione, ma percorrere la via del cambiamento” ooommmmm
(vi prometto che non mi candido e non fondo nessun partito )Se siete lettori di questo blog, in un passato articolo, scritto appunto per un Carnevale della matematica diedi una mia personalissima soluzione, l’articolo era indirizzato agli allievi demotivati
a cui consigliavo includere nelle proprie azioni le seguenti librerie in C:
#include (meraviglia.h) #include (precisionePignoleria.h) #include (umilta.h) #include (openSource.h) #include (dream.h)guardare al mondo con meraviglia, essere precisi nelle proprie azioni di progetto, tanta umiltà, pensiero ed azioni didattiche open, sognare, soprattutto sognare perché è sui sogni che vengono costruite azioni reali.
Un buon riassunto del perché è importante insegnare ai bambini a programmare è data dall’infografia: 5 reasons to teach kids to code. La sorpresa nella parte finale dell’innografia (un click sull’immagine per visualizzarla per intero):
Fatta la premessa ora dovrei raccontarvi qualcosa di attinente con il tema del Carnevale della matematica.
Poiché all’inizio di questo post ho parlato di scuola elementare allora propongo alcune soluzioni interessanti che io stesso ho applicato sui miei figli, insegnare l’informatica giocando.
Soluzione 1: Light-bot
Light-bot è un gioco particolarmente adatto per allievi della scuola elementare e media che consente di apprendere concetti di programmazione senza dover digitare nessuna linea di codice, largamente usato in molte scuole americane e russe, è un modo perfetto far apprendere con divertimento la programmazione senza scontrarsi con un muro fatto di linee di codice. L’utente dovrà assemblare sequenze di oggetti grafici che costituiscono azioni che attiveranno il movimento di un piccolo robot.
Il gioco è multipiattaforma, funziona su iOS, Android e qualsiasi PC (all’interno di finestra browser).Vedrete che in meno di un’ora sarete in grado di progettare lezioni di informatica, sarà sufficiente giocare.
Il linguaggio è costituito dalle seguenti istruzioni:
a sinistra vedete il simbolo grafico a destra la traduzione in “informatichese”
Quindi il programma
viene tradotto in
main: forward(); forward(); light();in italiano:
main: avanti(); avanti(); accenti_luce();con la parola main identifichiamo il gruppo di istruzioni principali (il corpo del programma)
Semplice vero?
Le istruzioni sono le stesse, solo che stiamo usando parole invece che immaginiancora un esempio:
Dovreste essere riusciti senza difficoltà ad ottenere il seguente risultato:
main: turnLeft(); jump(); light();in italiano:
main: gira_a_sinistra(); salta(); accendi_luce();ancora una prova
risultato
main: jump(); turnRight(); forward(); light();in italiano:
main: salta(); gira_a_destra(); vai_avanti(); accendi_luce();Nella vita di ogni giorno però ogni singola azione può essere scomposta in procedure più semplici e le procedure in Light-bot vengono così indicate
Come potete notare le procedure sono scritte in una sezione “proc”
main: forward(); proc1(); proc1();proc1: jump(); jump(); light();Se siete giunti fino a questo punto allora sarete in grado di scrivere qualsiasi programma con Light-bot.
Bene! Muovendo il vostro robot virtuale avete compreso cosa vuol dire programmare, cioè come vengono eseguite da un computer le istruzioni di un programma.
Vediamo come è fatta l’interfaccia di programmazione, i programmatori parlano di IDE di programmazione.
Per avviare la programmazione click sull’icona verde “>”. Se volete cancellare i progressi effettuati fate click sul cestino.
Se avete deciso di incominciare potete scegliere tre percorsi:
- Base
- Procedure
- Loop
I tre percorsi possono essere i tre moduli didattici principali su cui costruire le vostre lezioni di informatica.
Se avete concluso tutte le lezioni potete ricevere il diploma.
Prima di incominciare il robot vi spiega come funziona l’interfaccia di programmazione.
All’inizio il robot vi dirà:
- “Ho bisogno del tuo aiuto per illuminare tutte le piastrelle blu!”
- “Il comando “light” mi dice di illuminare una piastrella”
- “per programmarmi premi sui comandi che trovi sotto per aggiungerli nello spazio MAIN”
- “quando hai finito premi >”
- “se vuoi che io ti ripeta queste istruzioni premi sul pulsante ?”
- “buona fortuna”
Nel primo programma viene chiesto di effetuare due passi in avanti ed accendere la luce
Se il risultato è giusto si accenderà la luce.
Nel sesto programma viene chiesto di eseguire un percorso con più salti e più accensioni di luce:
Il programma sarà:
La realizzazione dei programmi potrà essere fatta tutti insieme su una LIM oppure da soli o per gruppi su computer o chi potrà su tablet.
Ma quanti bambini giocano con lo smartphone dei genitori?
Light-bot è anche disponibile per smartphone.Ora se tutto è andato bene avrete un gruppo di bambini che avrà tanta voglia di sperimentare cose nuove, sarà quindi giunta l’ora di incominciare ad usare Blockley.
Soluzione 2: Blockley
Blockley è un ambiente di programmazione grafico, l’utente sposta dei blocchi, simili a tasselli di un puzzle, per realizzare le proprie applicazioni. Chi già si occupa di informatica sicuramente avrà notato similitudini operative e grafiche che ricordano altri linguaggi di programmazione visuale, infatti storicamente la realizzazione di Blockley è stata influenzata da App Inventor, App Inventor è stato influenzato da Scratch il quale è stato influenzato da StarLogo e Etoys. Il progenitore di tutti questi linguaggi di programmazione è stato il Logo, creato da Seymour Papert insieme a Jean Piaget, fautore della teoria dell’apprendimento costruttivista e quindi se facciamo informatica in questo modo stiamo facendo una didattica di tipo costruttivista.
Non è necessario avere una connessione ad internet per usare Blockley, infatti se a scuola avete una connessione lenta, o inesistente, nessun problema, scaricate il tutorial in un unico file da 3MB e poi eseguite il tutto o sul computer o su una chiavetta USB.
Sul sito di riferimento: https://code.google.com/p/blockly/ potrete trovare gli ultimi aggiornamenti con più esercizi.
Un buon modo per insegnare ai bambini ad usare Blockley è quello di eseguire il tutorial “labirinto”
10 esercizi guidati di programmazione in cui dovrete spostare, utilizzando i comandi messi a disposizione, un omino all’interno di un labirinto.
Una volta che avrete unito i blocchi, potrete eseguire il programma facendo click sull’apposito pulsante:
Nel caso venga commesso un errore, sarete avvertiti e vi verrà richiesto di riprovare a riscrivere il programma:
Alla decima lezione bisognerà manipolare istruzioni di cicli e scelte:
In fondo a sinistra della schermata di editing trovate i due pulsanti:
Rispettivamente:
- visualizzare il codice JavaScript generato;
- condividere il programma con altri utenti.
Per gli studenti più grandi, scuole medie e superiori, esistono interessanti possibilità come ad esempio la creazione di propri blocchi personalizzati o ancora addentrarsi tra i diversi progetti collegati a Blockly come ad esempio BlocklyDuino per la generazione di codice Arduino.
Soluzione 3: informatica con carta e penna
Di seguito alcune schede didattiche da cui potrete trovare spunto per creare delle lezioni creative:
- insegnare i numeri binari
- i miei amici robot
- costruire programmi per guidare in percorsi i propri compagni di classe
Soluzione 4: un po’ di idee
Online esistono parecchie soluzioni adatte ai bambini della scuola elementare, ma anche per gli studenti delle scuole medie che potrebbe essere interessante analizzare:
Tre percorsi di apprendimento alla programmazione JavaScript, per allievi delle scuole elementari, medie e superiori.
Vi insegnerà le basi della programmazione in Ruby partendo da zero. Non è necessaria nessuna precedente esperienza di programmazione.
Realizzari divertentissimi programmi in Ruby in modo estremamente semplice e coinvolgente, adatto per allievi di scuola elementare e medie. Il software multipiattaforma funziona su: Mac, Windows, Linux, Raspberry Pi.
Soluzione 5: un po’ di libri da comprare?
Qualche suggerimento per impostare lezioni adatte ai più piccoli.
- JavaScript for Kids
- Super Scratch Programming Adventure!
- Learn to Program with Scratch
- Python for Kids
- Think Like a Programmer
i libri sono disponibili sia in formato elettronico che cartaceo.
Soluzione 6: idee ispiratrici
Come ultimo contributo vi propongo la fonte ispiratrice di questo post, il TED Talk: “Insegnamo ai bambini a programmare” di Mitch Resnick del MIT Media Lab.
Resnick ci spiega, in modo divertente e attraverso esempi e dimostrazioni, quali siano i vantaggi che si ottengono insegnando ai bambini a programmare, in modo che possano essere in grado non solo di “leggere” le nuove tecnologie ma anche di crearle.
Programmare non è solo per fanatici dell’informatica, ma è qualcosa che possono fare tutti.
Sono consapevole che molti dei suggerimenti esposti nell’articolo necessitano di un grande lavoro didattico, ma l’insegnante è anche il “ricercatore” scientifico di nuove strade per l’apprendimento, è questa la vera formazione docente, un lavoro fatto di cooperazione tra colleghi di ogni ordine di scuola. Io stesso ho appreso concetti di pedagogia e disabilità dalle amiche e colleghe della scuola elementare (vicino al mio istituto) e loro da me hanno conosciuto soluzioni tecnologiche che hanno aperto nuove strade…
…è questo che ricerco, la cooperazione e lo scambio di competenze tra insegnanti.
Grazie!
Articoli simili:
Insegnare ai bambini a programmare
Pages: 1 2