Dietro il coding/Come va praticato il Coding
Dicevamo che la maniera di organizzare il coding può variare molto tra le attività proposte su Code.org, quelle proposte dagli sponsor e quelle organizzate da volontari (ad esempio nei Coder Dojo). Questa situazione è destinata a cambiare.
Un bando MIUR del Settembre 2016 destina 4,3 milioni di euro alle reti di scuole per produrre 25 curricoli su 10 tematiche del “digitale”. Le tematiche sono sicuramente interessanti, a partire da quelle definite Fondamentali, ovvero:
- diritti in internet
- educazione ai media (e ai social)
- educazione all’informazione
Seguono le tematiche “Caratterizzanti”, che comprendono anche il coding:
- STEM (competenze digitali per robotica educativa, making e stampa 3D, internet delle cose)
- big e open data
- coding
- arte e cultura digitale
- educazione alla lettura e alla scrittura in ambienti digitali
- economia digitale
- imprenditorialità digitale
Più avanti nel bando vengono descritti degli esempi dei contenuti per ogni area. Per il coding, in particolare per la scuola primaria, troviamo questa descrizione:
“[...] Educazione e sviluppo del pensiero computazionale sia tramite attività unplugged (senza calcolatore) sia tramite linguaggi di programmazione visuali (scuola primaria)."
Si tratta quindi di attività del tutto omogenee a quelle proposte da Code.org. Nel seguito, però, si danno indicazioni più precisi sugli argomenti:
- coding by gaming, percorsi di apprendimento condivisi in classe; uso di strumenti di coding by gaming online;
- competenze computazionali di base; il codice binario; identificare e scrivere istruzioni sequenziali;
- esecuzione di sequenze di istruzioni elementari; programmazione visuale a blocchi;
- capire lo sviluppo e l'utilizzo di strumenti informatici per la risoluzione di problemi;
- calcolare espressioni logiche con gli operatori AND e OR;
- riconoscere nel procedimento di soluzione algoritmica di un problema gli elementi strutturali fondamentali: sequenza, scelta condizionata, iterazione;
- conoscere e saper applicare nella vita quotidiana metodologie di ricerca sequenziale, dicotomica e hash e comprenderne i limiti di applicazione e il grado di efficienza;
- conoscere le strategie per l'ordinamento di oggetti (selezione/inserimento, partizionamento) e comprendere, in modo intuitive, l'efficienza della strategia adottata;
- saper eseguire semplici algoritmi su grafi di ridotte dimensioni, quali la ricerca di cammini e di matching;
- saper rappresentare i dati o i risultati di un problema mediante l’uso di tabelle, alberi o grafi; oggetti programmabili;
- verifica e correzione del codice;
- conoscere il concetto di ipertesto, il suo ruolo nel world wide web, e la struttura a rete di calcolatori su cui esso è basato”
Come si vede, a parte le due righe in cui si citano il “coding by gaming” e la “programmazione visuale a blocchi”, qui si sta parlando dei contenuti classici di un corso di introduzione all’informatica (come quello del testo del professor Batini citato). Il che lascia un po’ perplessi.
Ma soprattutto, è chiaro che il coding appartiene all’area delle pratiche, non a quella delle riflessioni. Quando si gioca con Scratch, quando si pilota un robot, non si deve riflettere?
Questa separazione tra riflessione e tecnica, tra aspetti etici e pratica, è indizio di un'altra grande separazione che è più difficile cogliere: quella tra aspetti cognitivi e affettivi.
In generale, il rapporto affettivo con le macchine digitali (computer, tablet, robot) e con gli artefatti digitali (programmi) è davvero poco studiato.
Ne può essere esagerata l’importanza (Papert) o può essere stigmatizzato come simulacro pericoloso dei rapporti con le persone (Turkle); ma è questo che fa funzionare il coding (e che fa amare ai programmatori il proprio lavoro).
Non è detto che docenti e famiglie condividano questa tonalità affettiva particolare. Ma non è un aspetto che si può trascurare. Però questo non significa che occorre che tutte le attività di coding debbano essere puzzle e giochi.
Mi sembra che ci sia un errore pedagogico alla base della maniera di proporre, e di pensare, gli ambienti di apprendimento come Scratch. E’ come se ci fosse un sillogismo:
- L’apprendimento tramite un gioco è più divertente
- Bisogna insegnare il pensiero computazionale
- Quindi facciamolo con un ambiente giocoso (“coding by gaming online”), così non sembra nemmeno scuola.
Apprendere, nel senso di procedere gradualmente – se possibile - in un percorso di maggior comprensione del mondo, è gratificante di per sé.
Creare un (piccolo) mondo, assegnargli delle regole e modificarle, poi dargli vita e vederlo evolvere, è un modo molto efficace – e piacevole - di imparare.
Questa creazione di un piccolo mondo è, appunto, la programmazione. Che è parente della creazione narrativa e di quella musicale.
Visuale o verbale, non fa molta differenza. Anzi: paradossalmente: più si aggiungono “gadget”, meno il bambino è concentrato sul processo di costruzione vera e propria del mondo artificiale. L’identificazione del bambino con l’avatar (tartarughe o pupazzetti), tipica del videogioco, è solo uno dei possibili rapporti che si possono istituire.
Il programmatore, junior o meno, è il Demiurgo del suo programma, non semplicemente uno degli eroi.
Note
modifica