# Coding

Il coding è una disciplina che ha come base il pensiero computazionale, cioè tutti quei processi mentali che mirano alla «risoluzione di problemi, la progettazione di sistemi, la comprensione del comportamento umano attraverso quei concetti tipici solitamente attribuibili al campo della computer science risoluzione di problemi».
Il termine, proveniente dall'inglese, significa "programmazione informatica".

## Storia

La storia del coding inizia con Ada Lovelace, considerata la prima donna programmatrice della storia: durante la sua collaborazione con Charles Babbage, lavorò sulla macchina analitica da lui ideata (un computer a vapore, mai realizzato) ed elaborò un algoritmo capace di computare automaticamente i numeri di Bernoulli.
Un contributo rilevante nell'evoluzione della programmazione connessa alla pratica didattica/educativa arriva da Seymour Papert, matematico e pedagogista sudafricano, attento alla relazione tra computer e apprendimento. Nel 1967 ha ideato LOGO, un linguaggio di programmazione dedicato alla didattica per comprendere la geometria attraverso l'uso del computer. Secondo Papert, l'apprendimento è un processo che avviene attraverso il ruolo attivo di chi impara: analizzare, costruire, scomporre, confrontare, presentare l'oggetto dell'apprendimento:
«...È l’elaboratore che programma il bambino, né più né meno. Nell'ambiente LOGO il rapporto è rovesciato: il bambino, anche d'età prescolare, padroneggia la macchina, è lui che programma l’elaboratore. Insegnando all’elaboratore a pensare, i bambini si lanciano in un'esplorazione del loro stesso modo di pensare.»
Al tema dell'educazione e della didattica, Papert dedica la pubblicazione di importanti testi, quali Mindstorms: Children Computers and Powerful Ideas (1980, tradotto in italiano nel 1984 col titolo Mindstorms: Bambini, computers e creatività), che rappresenta una tappa importante nell'elaborazione del concetto di "pensiero computazionale", Children's Machine: Rethinking School in the Age of the Computer (1993, tradotto in italiano l'anno successivo col titolo I bambini e il computer: Nuove idee per i nuovi strumenti dell'educazione) e The Connected Family: Bridging the Digital Generation Gap (1996, tradotto in italiano nel 2007 con il titolo Connected family: Come aiutare genitori e bambini a comprendersi nell'era di Internet).
Nel 1984, Papert inizia una collaborazione con la LEGO, che porta alla realizzazione della linea di produzione dei LEGO Mindstorms, presso il MIT Media Lab. Proprio qui, nei primi anni duemila, viene ideato e sviluppato il software educativo gratuito Scratch, grazie al gruppo Lifelong Kindergarten guidato da Mitchel Resnick. Il software, basato su un linguaggio di programmazione a blocchi, permette a chiunque di programmare e realizzare contenuti interattivi.
L'idea per cui il pensiero computazionale sia una competenza utile a tutti, e non solo agli informatici, trova successiva conferma nell'articolo del 2006 Computational Thinking di Jeannette Wing, che contribuì a ispirare l'idea dei CoderDojo, una comunità con l'obiettivo di insegnare la programmazione anche ai più piccoli.

## Il coding a scuola

Nel 2013 la Commissione Europea ha pubblicato il DigCompEdu, documento che delinea il quadro comune di riferimento per le competenze digitali ritenute necessarie per vivere da cittadini attivi e consapevoli, prendendo atto di come nella società attuale non sia possibile escludere la tecnologia dall’insegnamento. Nelle sei aree individuate da questo documento sono menzionate la programmazione e il problem solving, competenze affini al pensiero computazionale.
Infatti, alcuni dei processi che caratterizzano il pensiero computazionale sono:
* la scomposizione di un problema complesso in problemi più elementari e gestibili;
* l’analisi dei dati e la loro organizzazione;
* la rappresentazione delle informazioni attraverso codici;
* la costruzione di sequenze di istruzioni per risolvere i problemi;
* l’astrazione di principi generali e la conseguente generalizzazione di strategie risolutive per affrontare e risolvere problemi simili.
La Comunità Europea ritenendo il coding un linguaggio universale ha istituito la Europe Code Week, che raccoglie una serie di iniziative internazionali ed eventi svolti nelle scuole relative al coding. Attraverso questa è possibile conoscere strumenti e consultare attività per lo sviluppo dell’insegnamento delle competenze legate al pensiero computazionale. Le varie edizioni annuali del Code Week sono legate a temi specifici e "questa successione di temi denota una progressiva presa di coscienza del valore formativo del pensiero computazionale come abilità trasversale".
In Italia nel 2014 è stato avviato il progetto Programma il futuro, nato dalla collaborazione del MIUR con il CINI (Consorzio Interuniversitario Nazionale per l’Informatica). Intento del progetto è promuovere lo sviluppo dei concetti base dell’informatica nella scuola ed educare a un uso consapevole e responsabile della tecnologia. All’interno della piattaforma sono presenti numerosi contributi e percorsi accessibili agli insegnanti delle scuole di ogni ordine e grado, percorsi pronti per essere presentati in classe ma vi è anche la possibilità di seguire un corso di formazione preparatorio per gli insegnanti.
Nel 2016 Programma il futuro è stato riconosciuto come iniziativa di eccellenza europea per l’educazione digitale nell’ambito degli European Digital Skills Awards.
Il MIUR ha pubblicato nel 2018 il documento “Indicazioni nazionali e nuovi scenari” nel quale riconosce il pensiero computazionale come uno degli strumenti digitali per la cittadinanza.
A seguire, la mozione n. 1-00117 del 12 marzo 2019 ha dichiarato che alla luce dell’attuale situazione del mondo del lavoro e della scuola entro il 2022 lo studio del pensiero computazionale e del coding diventerà obbligatorio anche nel curriculo della scuola dell’infanzia e della scuola primaria. Il coding viene anche riconosciuto come metodologia che consente di costruire percorsi interdisciplinari.
Il coding come metodologia didattica nei primi gradi di scuola consente sia di ricorrere alla robotica educativa, quindi alla reale programmazione di una macchina, ma anche ad attività di coding unplugged, senza l’uso di tecnologie. In questo caso i bambini attraverso dei reticoli e utilizzando il proprio corpo, principale mezzo di apprendimento, giocano sperimentando queste abilità. Attraverso la dimensione ludica permessa da questi strumenti si consente ai bambini di imparare le basi della programmazione, insegnando loro a comunicare con la macchina e impartirle comandi in modo semplice e intuitivo.