# Dietro il coding/Che cos'è il coding

Dietro il coding
Copertina Tutti i moduli · Sviluppo
    CopertinaDietro il coding/Copertina
* Che cos'è il codingDietro il coding/Che cos'è il coding
* Perché è così importante?Dietro il coding/Perché è così importante?
* Una valutazione storicaDietro il coding/Una valutazione storica
* Come si parla del coding?Dietro il coding/Come si parla del coding?
* Gli schieramenti in campoDietro il coding/Gli schieramenti in campo
* Primo Intermezzo: che significa opensource?Dietro il coding/Primo Intermezzo: che significa opensource?
* A che serve il coding?Dietro il coding/A che serve il coding?
* Chi può insegnare il coding?Dietro il coding/Chi può insegnare il coding?
* Secondo Intermezzo: le differenze tra linguaggiDietro il coding/Secondo Intermezzo: le differenze tra linguaggi
* Che linguaggio?Dietro il coding/Che linguaggio?
** AliceDietro il coding/Che linguaggio?#Alice
** Squeak/EtoysDietro il coding/Che linguaggio?#Squeak.21_.2FEtoys
** Snap!Dietro il coding/Che linguaggio?#Snap!
** CatrobatDietro il coding/Che linguaggio?#Catrobat
** OpenRobertaDietro il coding/Che linguaggio?#OpenRoberta
** Minecraft: Education EditionDietro il coding/Che linguaggio?#Minecraft: Education Edition
** Apple Swift PlaygroundDietro il coding/Che linguaggio?#Apple Swift Playground
** ToonTalkDietro il coding/Che linguaggio?#ToonTalk
** LinotteDietro il coding/Che linguaggio?#Linotte
* Il modello didattico dietro ScratchDietro il coding/Il modello didattico dietro Scratch
* Come va praticato il CodingDietro il coding/Come va praticato il Coding
* Un po' di storia…Dietro il coding/Un po' di storia…
** B.A.S.I.C.Dietro il coding/Un po' di storia…#B.A.S.I.C.
** LOGODietro il coding/Un po' di storia…#LOGO
** NETLOGODietro il coding/Un po' di storia…#NETLOGO.5B1.5D
** STARLOGODietro il coding/Un po' di storia…#STARLOGO.5B2.5D
** SMALLTALKDietro il coding/Un po' di storia…#SMALLTALK
* E oggi?Dietro il coding/E oggi?
* Come potrebbe funzionare davveroDietro il coding/Come potrebbe funzionare davvero
* Suggerimenti di letturaDietro il coding/Suggerimenti di lettura
Modifica il sommario
Per i pochi che non ancora lo sapessero: coding significa letteralmente “l’attività di scrivere codice sorgente”, che è uno dei quasi-sinonimi di “programmare”.
Quasi, perché programmare può significare anche analizzare, progettare, verificare, integrare un codice sorgente, mentre coding fa riferimento solo alla scrittura del codice.
Infatti il codice sorgente si scrive, esattamente come un romanzo, o meglio come una sceneggiatura o una partitura musicale.
Bisogna conoscere la grammatica e il lessico di un linguaggio, ma non basta: bisogna avere in testa il plot, i personaggi, l’ambiente. O se preferite: bisogna avere in testa le funzioni di Propp.
Siccome è un'attività complessa, ci sono dei software per aiutare a farlo: si chiamano "editor", o più pomposamente "Ambienti Integrati per lo Sviluppo" (IDE). Come ad esempio NetBeans.
NetBeans controlla la sintassi, evidenzia automaticamente i costrutti, permette di riusare frammenti, mostra l’aiuto contestuale, aiuta a seguire i collegamenti tra le centinaia di librerie che compongono un programma.
Con “coding”, in questo momento e in Italia, ci si riferisce però alle attività di introduzione dei bambini alla programmazione, attraverso ambienti di programmazione visuale, a partire dalla prima elementare.
Cioè in cui paradossalmente non serve (anche se è possibile) scrivere il codice, ma è sufficiente posizionare oggetti simbolici che stanno al posto di operatori, variabili, condizioni. Si utilizza un ambiente di programmazione in cui la metafora è quella dei "blocchi", un po' come se si trattasse del Lego: ci sono mattoncini di tipo diverso (di colori diversi), ognuno con un suo ruolo. Certi mattoncini si incastrano facilmente con altri. Questo "incastrarsi" rappresenta il vincolo della sintassi. Attenzione: non sono linguaggi visuali, ma interfacce grafiche per disporre linea di codice sorgente una sotto l’altra, nell’ordine giustro.
Non si scrive, perché scrivendo si possono commettere errori; scrivendo bisogna ricordarsi regole e termini.
Non si scrive perché scrivere è difficile.
Il coding in questa accezione nasce probabilmente nel 2013 in Gran Bretagna, con un finanziamento ministeriale di 500.000 sterline. E' ancora online il sito dove veniva annunciata la nascita di una associazione noprofit (Yearofcode) che promuoveva l'apprendimento della programmazione tra i bambini.
In Italia il MIUR, in collaborazione con il CINI e con un buon numero di partner "tecnologici" (TIM, Microsoft, Facebook, CISCO, Engineering, Samsung,...), all’interno del programma “La buona scuola” ha spiegato come e perché va introdotto il coding nella scuola in un sito dedicato, "Programma il Futuro".
L’obiettivo dichiarato è “fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell’informatica”.
Iniziativa numericamente di grande successo: in due anni sono stati raggiunti oltre 1 Milione di studenti con una media di 8 h di attività per ciascuno.
Nella versione aggiornata del progetto, si chiarisce che "l'obiettivo non è quello di far diventare tutti dei programmatori informatici, ma di diffondere conoscenze scientifiche di base per la comprensione della società moderna". Un obiettivo quindi livello culturale.
Inoltre, "la conoscenza dei concetti fondamentali dell'informatica aiuta a sviluppare la capacità di risoluzione di problemi e la creatività". E questo, invece, è un obiettivo metacognitivo.
La modalità base di partecipazione, definita L'Ora del Codice, consiste nel far svolgere agli studenti un'ora di avviamento al pensiero computazionale usando Scratch. A quest'ora possono eventualmente seguire percorsi articolati e personalizzati.
Oltre alle attività centralizzate, esistono delle “varianti locali” del programma di educazione al coding gestite direttamente da Microsoft, Samsung, Telecom nelle scuole all’interno di accordi quadro con il MIUR.
L’iniziativa ministeriale ripropone corsi e ambienti di lavoro creati e gestiti da una associazione no profit statunitense, Code.org, che ha come partner Microsoft, Google e tanti altri. L'Italia è il secondo Paese al mondo dopo gli USA per utilizzo dei materiali proposti.
Code.org ha in realtà obiettivi più ampi: punta all’integrazione razziale e a diminuire il gap di genere, a modificare i curricula delle scuole elementari e medie negli Stati americani, a soddisfare la richiesta di più informatica da parte dei genitori.
Obbiettivi, come si vede, abbastanza diversi da quelli Italiani.
Oltre alle lezioni introduttive per i più piccoli (su Code.org si parte da 4 anni) organizzate come puzzle da risolvere, immerse in universi molto conosciuti (Flappy Bird, Star Wars, Minecraft) ci sono lezioni avanzate di Computer Science, materiali per i docenti (in inglese) e c'è un ambiente di apprendimento per ragazzi +13 che è basato su JavaScript.
Ci sono poi liste di corsi offerti da terze parti (liberi o a pagamento).
Tutti i materiali sono distribuiti con licenza CC BY/NC/SA 4.0. Se non sapete cosa significa, non vi preoccupate e continuate a leggere: è spiegato poco più avanti.
Nota: sul sito ministeriale invece non ci sono molti materiali di supporto per gli insegnanti. Per la verità, ne ho trovati solo due: la scansione di un libro di Carlo Batini del 1984 (la via italiana al computational thinking) e un link ad un bell'ebook del 2008 sugli aspetti culturali del digitale, Blown to bits.

## Note

* ↑ http://programmailfuturo.it/come/ora-del-codice
* ↑ http://www.programmailfuturo.it/notizie/il-secondo-anno-del-progetto/avvio-secondo-anno
* ↑ http://www.programmailfuturo.it/media/docs/approfondimenti/Batini-basi-dell-Informatica.pdf
* ↑ http://www.bitsbook.com/wp-content/uploads/2008/12/B2B_3.pdf