Il coding
una abilità che tutti dovrebbero possedere
di Gabriella Martina
(insegnante di scuola primaria)
Cos’è il coding
Quando si parla di coding, nella scuola, ci si riferisce all’insegnamento e all’apprendimento della programmazione fin dai primi anni dell’età scolare.
Il coding è la modalità con la quale si danno istruzioni ai computer e a tutti gli oggetti “programmabili” che ci circondano. In realtà, il termine italiano equivalente, “programmazione”, mi sembra che renda molto meglio il senso del ragionamento logico-analitico che occorre per poter governare con successo questi oggetti. Parliamo di una programmazione intesa non come disciplina fine a se stessa, ma utilizzata per l’apprendimento di materie diverse, una programmazione che implica una serie di azioni complesse, come studiare un problema, pianificare una soluzione, formalizzarla e comunicarla ad altri.
Ciò avviene nella robotica educativa o pedagogica dove il gioco, motore della curiosità e della scoperta, coinvolge una serie di abilità diverse e suscita nei bambini e nei ragazzi molto interesse.
L’obiettivo è quello di educare i più piccoli al pensiero computazionale, che è la capacità di risolvere problemi, anche complessi, applicando la logica e ragionando passo dopo passo sulla strategia migliore per arrivare alla soluzione.
Il coding educa al pensiero creativo e stimola la curiosità dei piccoli attraverso quello che apparentemente può sembrare solo un gioco. Consente di imparare le basi della programmazione informatica, insegna a “dialogare” con il computer, a impartire alla macchina comandi in modo semplice e intuitivo.
I nostri ragazzi,nativi digitali, utilizzano in genere il tablet o lo smartphone con estrema facilità e disinvoltura, ma si tratta di una fruizione passiva; quando invece si avvicinano al coding, diventano soggetti attivi della tecnologia e i risultati sono immediati: il pensiero computazionale li aiuta a trovare soluzioni a problemi, a gestire processi, funzionalità, algoritmi e dati.
Una seconda lingua
Il coding svolge inoltre, efficacemente, la funzione cognitiva di una seconda lingua. Sappiamo che l’apprendimento di una lingua (un sistema di segni, simboli e regole utilizzate per comunicare) promuove fortemente lo sviluppo del pensiero, e che la negoziazione del significato di concetti e modelli linguistici potenzia l’attività cognitiva. Sappiamo anche che i ragazzi in grado di comunicare in più di una lingua, di utilizzare tecniche di memorizzazione ed usi diversi del vocabolario, di effettuare commutazioni tra strutture linguistiche differenti a seconda dei contesti, esercitano estensivamente il cervello, migliorano significativamente la memoria (ricordano meglio liste e sequenze), dimostrano maggiori capacità nel gestire alcune attività e nel risolvere alcuni tipi di problemi.
In modo del tutto analogo, il coding comporta l’impiego di regole e vocabolari, anche se molto specifici, suggerendo lo scenario semantico e sintattico proprio di un’ulteriore lingua che, insieme alle altre, contribuisce ad accrescere la percezione della realtà. Il coding rappresenta oggi la lingua più diffusa considerando il numero di sistemi di elaborazione esistenti, essendo l’unico veicolo per promuovere la comunicazione tra essere umano e computer, utilizzando strutture semantiche che trovano fondamento concettuale nel cosiddetto “Computational Thinking” o “Pensiero Computazionale”.
Una abilità che tutti dovrebbero possedere
In pratica, imparare a programmare apre la mente ed è per questo che è utile cominciare già in tenera età.
La programmazione richiede la concentrazione dell’attenzione su ciò che funziona e, quindi, anche interventi selettivi per correggere le strutture anomale e dannose.
Nonostante l’aggettivo computazionale possa indurre a pensare che il pensiero computazionale sia un’abilità utile solo a chi vuole imparare l’informatica, al contrario si tratta di una skill fondamentale che tutti dovrebbero possedere.
Così come leggere, scrivere e contare sono abilità che è importante imparare fin da bambini, anche il pensiero computazionale deve essere appreso ed esercitato fin dai primi anni di scuola.
Il pensiero computazionale prende in prestito concetti e strumenti propri dell’informatica per trovare soluzioni innovative e creative ai problemi di ogni giorno. Questo non significa che gli esseri umani devono imparare a pensare come i computer: il pensiero computazionale è il modo in cui gli esseri umani insegnano ai computer a risolvere i problemi, e non viceversa. I computer sono stupidi e noiosi e, solo grazie agli esseri umani, possono diventare strumenti utili e interessanti: l’unico limite a quello che i computer sono in grado di fare è costituito dalla nostra creatività e immaginazione.
I processi mentali tipici del pensiero computazionale sono favoriti dall’approccio alla risoluzione dei problemi che viene messo in atto da coloro che sviluppano programmi per il computer: in altre parole, il pensiero computazionale è quello che adotta un informatico quando affronta un problema. Esercitare il pensiero computazionale significa quindi molto di più che saper scrivere righe di codice.
Sono in molti oggi a credere che il pensiero computazionale costituisca la quarta abilità di base, oltre al saper leggere, scrivere e far di conto.
Papert e il pensiero computazionale
E’ stato Seymour Papert ad usare per la prima volta la locuzione computational thinking parlando di educazione matematica con il suo linguaggio di programmazione didattico LOGO, sviluppato al MIT (Massachusetts Institute of Technology).
Papert è il padre della teoria dell’apprendimento chiamata costruzionismo, una declinazione del costruttivismo che pone l’accento sugli artefatti cognitivi. Infatti,secondo il matematico sudafricano, la mente umana, per imparare bene, ha bisogno di tali artefatti come “materiali da costruzione” per rappresentare situazioni reali del mondo con cui interagisce. Per Papert il computer è un ottimo strumento didattico, in quanto, con la programmazione, può aiutare la costruzione di tali rappresentazioni.
Papert afferma che la programmazione favorisce il pensiero procedurale: insegna come spezzare il problema in componenti più semplici e “fare debug” su di esse se non funzionano. Questo modo di pensare, valido nella programmazione, può essere applicato a tutti gli altri aspetti della vita. Pensare come un computer è uno dei modi di pensare, e ha un suo valore, in quanto favorisce un modo procedurale di approcciare i problemi.
Il framework sviluppato dal Lifelong Kindergarten del MIT MediaLab ha individuato le pratiche del pensiero computazionale con una precisa metodologia di sviluppo:
• Essere incrementali e iterativi: la progettazione è un processo adattativo, in cui la pianificazione può cambiare man mano che ci si avvicina alla soluzione del problema.
• Testare e debuggare: individuare problemi ed errori e correggerli.
• Riusare (pattern recognition): riconoscere come alcune parti di soluzione possono essere riusate o riapplicate a problemi simili.
• Remixare (copiare per migliorare): grazie alla rete e all’ampia disponibilità di lavori di altri autori, è possibile prendere spunto da idee e codici per costruire cose più complesse di quelle che si sarebbero potute realizzare per conto proprio, dando un’ulteriore spinta alla propria creatività.
• Astrarre: è il processo di riduzione della complessità, per far emergere l’idea principale mantenendo solo alcuni aspetti e tralasciandone altri.
• Modularizzare (scomporre): è il processo che consente di scomporre un problema complesso in problemi più semplici, per cui, risolvendo i problemi più semplici, si risolve anche il problema complesso.
Dalle sequenze suindicate scaturiscono le attitudini di pensiero computazionale:
• Esprimere se stessi: una persona dotata di pensiero computazionale vede nella tecnologia uno strumento per esprimere se stessa, la propria creatività e dire qualcosa di sé agli altri.
• Essere connessi: saper comunicare e lavorare con gli altri per raggiungere un obiettivo o una soluzione condivisa.
• Porre domande: saper sviluppare una mente vigile, grazie alla quale è sempre viva la domanda di come un oggetto incontrato nel mondo reale possa funzionare.
Per definire una “cultura della classe” che stimoli il pensiero computazionale, è necessario che insegnanti e studenti adottino il vocabolario del pensiero computazionale per descrivere problemi e soluzioni, che tutti insieme accettino soluzioni errate e tentativi falliti, riconoscendo che sono parte di un percorso per un risultato positivo e, inoltre, che gli studenti lavorino in team.
Il concetto di pensiero computazionale è ancora troppo acerbo perché sia possibile misurarlo come risultato quantitativo di uno studio. Al momento, non esiste un consenso sulla definizione e sugli aspetti costitutivi del pensiero computazionale, né sulle modalità con cui insegnarlo (come materia generale, come argomento di una disciplina o come argomento multidisciplinare).
Però ci stiamo provando, e siamo sempre di più. Il segreto sta tutto nel metodo: poca teoria e tanta pratica.
Il coding nella didattica
Alla fine di gennaio ho avuto l’opportunità di entrare in contatto con la comunità virtuale di EMMA, una piattaforma europea che si occupa di gestire e favorire i MOOC e ho effettuato l’iscrizione al corso “Coding in your Classroom, Now”, gestito dall’Università di Urbino e tenuto dal professore Alessandro Bogliolo che, con grande professionalità ed entusiasmo, ha coinvolto una miriade di docenti. Lezioni online, chat, condivisioni sui social network, compiti da fare a casa (corretti con il metodo peer to peer) e programmazione di gruppo sulla piattaforma code.org, approvata dal MIUR ed utilizzata per il concorso nazionale “CODI-AMO”, hanno dato vita ad un ottimo modo per fare formazione e confrontarsi con i colleghi.
…….

