Coding per la didattica: partiamo dalle origini
Coding per la didattica: innanzitutto cos’è un algoritmo?
Partiamo dall’inizio, visto che il coding per la didattica si basa sugli algoritmi.
La parola “algoritmo”, come anche la parola algebra, è ispirata al nome del matematico ed astronomo persiano Muhammad ibn-Musa-al-Khwarizmi, vissuto a cavallo tra il 700 e l’800 D.C., che introduce il concetto nella sua opera denominata “Regole di ripristino e riduzione”.
Un algoritmo è una successione di ordini da eseguire rigorosamente in sequenza, e quindi di istruzioni relative ad operazioni da eseguire su dei dati per raggiungere dei risultati.
Come nasce il coding per la didattica: Il costruzionismo e Seymour Papert
Per capire le origini del coding per la didattica, dobbiamo parlare di costruzionismo, teoria didattica che pone al centro l’apprendimento tramite la costruzione di qualcosa di concreto e condivisibile, approccio già presente nel costruttivismo di Piaget, uno dei più importanti pedagogisti.
Uno dei principali costruzionisti è stato Seymour Papert, fondatore del Laboratorio di Intelligenza Artificiale al MIT di Boston.
Seymour si specializzò nella creazione di ambienti tecnologici per l’apprendimento, creando un linguaggio/ambiente di programmazione pensato per i più piccoli chiamato LOGO (conosciuto anche come “linguaggio della tartaruga”).
Papert collaborò con Lego (i noti produttori delle costruzioni), promuovendo l’uso della robotica per la didattica, per permettere ai bambini di concretizzare il pensiero astratto.
“E’ il bambino che programma il computer e non il computer che programma il bambino”
Papert, autore di questa indimenticabile citazione, si può quindi definire il papà del pensiero computazionale e dell’uso didattico del Coding.
Coding per la didattica: un’infarinatura tecnologica
Il linguaggio di programmazione visuale
Il coding per la didattica dei più giovani si basa su un sistema più semplice della programmazione “non visuale”: il Sistema a Blocchi.
Usato da molte piattaforme per imparare il coding, è una forma di visual script (linguaggio di programmazione visuale, detto anche VPL), metodo diffusosi recentemente, che permette a chi non ha (ancora) skills da programmatore di impostare una serie di operazioni senza le competenze richieste da chi programma tramite linguaggi “non visuali”, conoscendone la “sintassi”.
Il visual script viene usato da molti software pensati per professionisti adulti, come Vray per 3DS Max.
I VPL, per il loro essere “user friendly”, sono spesso usati nell’ interfaccia utente dei sistemi di domotica, per rendere possibile la fruizione ad utenti informaticamente inesperti.
Scratch e il “Sistema a Blocchi”
Uno dei più diffusi linguaggi di programmazione visuale è Scratch, ideato al MIT per la didattica rivolta ai giovanissimi, per permettere loro di programmare tramite il “sistema a blocchi”, i quali possono essere spostati tramite trascinamento (drag and drop), e compilati con testi e valori numerici, e associati ai personaggi (sprites), per permettere loro di compiere azioni.
Essendo un linguaggio di programmazione visuale, non può essere considerato un esercizio di sintassi vero e proprio (come accade, ad esempio, nei progetti didattici di Python for kids).
Si tratta invece di un esercizio di pensiero procedurale: il “programmatore” bambino deve essere capace di spezzettare operazioni complesse in tante semplici, deve essere capace di disporle nell’ordine corretto, e deve crearle come “finite”, quindi deve indicare un numero “finito” di volte per ogni azione, o indicare che venga ripetuta finché non accade qualcosa o si ottiene un risultato che indicherà, e in questo modo eserciterà le sue competenze logiche e la comprensione del periodo ipotetico.
Non solo Scratch: gli altri linguaggi del coding per la didattica
Un altro linguaggio di programmazione a blocchi molto usato nelle scuole è Blockly, molto simile a Scratch, e proposto dal progetto Code.org, che, sull’omonimo portale, mette a disposizione tantissimi esercizi.
Abbiamo poi Mblock, linguaggio, simile ai due precedenti, che si usa per Mbot, ma qui si entra già nel campo della robotica, strettamente legata al coding.
Mbot è un robot pensato per la didattica rivolta a teenager e bimbi, ai quali viene fornito un kit di montaggio che permette loro di familiarizzare con la scheda elettronica (che si basa su Arduino Uno) e con le altre componenti.
Arduino è un sistema hardware open source che consente di creare strumenti a basso costo e di facile utilizzo, che usa un linguaggio di programmazione, anch’esso a blocchi, chiamato S4A (Scratch for Arduino), che richiede una conoscenza base di Scratch, che permette di sperimentare la robotica.
L’ultimo strumento che merita di essere citato è BBC Micro:bit, un microcontrollore che si usa nei progetti didattici di coding. Viene usato per creare giochi, robot, strumenti musicali e oggetti e si rivolge sia a studenti delle medie che a studenti delle superiori, per permettere loro un’applicazione pratica e creativa.
Coding per la didattica: come sviluppa le competenze dei più piccoli
Immagina, Programma, Condividi: coding per la didattica e socialità
Immaginare, programmare e condividere sono i tre step che compie il bimbo quando si approccia al Coding.
Nel passaggio dalla prima fase (immaginazione) alla seconda (programmazione), lo studente crea storie interattive ricche di suoni, effetti grafici, animazioni, e si sperimenta nel Digital Storytelling.
Oltre ad allenare le capacità creative (inventare avventure che coinvolgano gli spettatori della sua “opera”), sviluppa le abilità logico-matematiche (programmare in modo ordinato le azioni che vuole far fare al suo personaggio o personaggi), mentre si cimenta nell’applicazione del pensiero computazionale.
Si passa quindi al terzo passaggio: la condivisione.
Essa può essere un’osservazione passiva (docenti, familiari o compagni usano il “videogioco” creato dal discente), o attiva (la stessa fase di programmazione può essere condivisa con altri “programmatori”, per creare storie a quattro, sei, otto mani), sviluppando abilità sociali e sperimentando un’esperienza di Cooperative Learning tra pari.
Divertirsi e imparare dagli errori
L’idea è quella di educare al pensiero logico e computazionale senza annoiare. Questo è favorito dalla possibilità di avere una risposta immediata, in quanto la simulazione dell’animazione può essere lanciata in qualsiasi momento. In questo modo, il giovanissimo programmatore o programmatrice ha una verifica immediata di quanto ha appreso, verificare gli eventuali errori, e procedendo secondo il metodo “trial and error”.
L’importanza dell’educazione digitale.
Non solo educazione civica e stradale sono fondamentali nell’educazione di più piccoli: già nel 2006 la legislazione scolastica cita la competenza digitale come quarta competenza chiave europea (o di cittadinanza).
Non si tratta solo di netiquette e prevenzione del cyberbullismo, ma all’esigenza di avere una “patente di guida digitale”, per poter essere competitivi in un mondo sempre più digitalizzato, e in cui l’informatica pervade tutte le professioni: l’insegnamento (basti pensare alla jamboard, alla LIM, al registro elettronico), la medicina (le ricette dematerializzate), l’architettura (l’uso dei programmi CAD e BIM).
Le competenze informatiche, come quelle linguistiche, vanno apprese durante l’infanzia, perché imparare a programmare non è molto diverso da imparare una nuova lingua, visto che si tratta di imparare dei linguaggi, e una nuova forma mentis.
Il coding per la didattica nei programmi scolastici
Già nella scuola primaria, i bambini usano Scratch Jr, mentre alla scuola secondaria di primo grado (medie), la materia Tecnologia comprende robotica e coding.
Tecnologia non è l’unica materia legata al pensiero procedurale. Il coding, ma anche i diagrammi di flusso (Flowchart) gioverebbe a quegli studenti che non hanno un metodo di studio.
Per quanto riguarda invece la scuola secondaria di secondo grado (scuole superiori), non tutti i percorsi, ahimè, comprendono l’informatica.
Va ricordato che per insegnare coding non servono tecnologie e strumenti digitali: si può imparare anche “offline”, senza l’utilizzo di pc e tablet.
Le resistenze dei “dinosauri” sul coding per la didattica
Tante sono le resistenze dei docenti “old school”, ma a volte si tratta solo di una diffidenza verso il nuovo o di una “fobia” verso la tecnologia. Le lancette dell’orologio, però, non vanno mai all’indietro, e battaglie di retroguardia come queste sono destinate ad estinguersi.
I tutorial online per autodidatti e genitori
Non tutti i boomer, comunque, sono dinosauri. Molte sono le persone che, pur non frequentando più la scuola, hanno voglia di imparare. Ad esempio, genitori curiosi sul tema (e che cercano un canale di dialogo con i figli), ci sono molte risorse online, come il canale Yourobot. Non è mai, quindi, troppo tardi per imparare e mettersi alla prova!