# data[].attributes.attachment_link.readable_text
Cos'è il pensiero computazionale

Per caratterizzare sinteticamente il rilevante contributo culturale apportato dall'Informatica alla comprensione della società contemporanea, la scienziata informatica Jeannette Wing nel 2006 introdusse l'espressione "pensiero computazionale " (vedi l' articolo originale - in inglese).

Prima di fornire qualche spiegazione su cosa si intenda con questa espressione, vi invitiamo a guardare il seguente spezzone video, tratto dal film "Apollo 13".

L'essenza del concetto, esemplificata magistralmente dal video, è che con il pensiero computazionale si definiscono procedure che vengono poi attuate da un esecutore ( agente ), che opera in modo "meccanico" e "inconsapevole" nell'ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati.

Il pensiero computazionale - il modo di pensare sviluppato da parte di chi ha studiato e praticato informatica - può essere definito come l'insieme dei processi mentali usati per modellare una situazione e specificare i modi mediante i quali un agente elaboratore di informazioni può operare in modo effettivo all'interno della situazione stessa per raggiungere uno o più obiettivi forniti dall'esterno.

È importante ribadire che l'agente esegue istruzioni (di cui però non conosce il significato), per elaborare dati (di cui però non conosce il significato). In tal modo un'elaborazione "meccanica" e "inconsapevole" riesce a replicare funzioni cognitive "umane". Questa è una vera e propria rivoluzione.

Potete trovare in questo articolo una discussione più dettagliata su cosa si intenda con il termine "pensiero computazionale" e come vada usato. Si noti che il pensiero computazionale non considera la semplice "risoluzione di problemi" ma il "far risolvere i problemi ad un esecutore". È questa la novità concettuale che rende l'informatica - termine che indica l'elaborazione automatica delle informazioni - una scienza nuova e distinta dalla matematica, che ha risolto problemi per millenni.

I metodi caratteristici e gli strumenti intellettuali che si acquisiscono con lo studio dell'informatica hanno un valore concettuale generale che inducono a ritenere utile per tutti gli studenti lo sviluppo del pensiero computazionale.

I metodi caratteristici includono:

analizzare e organizzare i dati del problema in base a criteri logici;

rappresentare i dati del problema tramite opportune astrazioni;

formulare il problema in un formato che ci permette di usare un "esecutore" (nel senso più ampio del termine, ovvero una macchina, un essere umano, o una rete di umani e macchine) per risolverlo;

automatizzare la risoluzione del problema definendo una soluzione algoritmica, consistente in una sequenza accuratamente descritta di passi, ognuno dei quali appartenente ad un catalogo ben definito di operazioni di base;

identificare, analizzare, implementare e verificare le possibili soluzioni con un'efficace ed efficiente combinazione di passi e risorse (avendo come obiettivo la ricerca della soluzione migliore secondo tali criteri);

generalizzare il processo di risoluzione del problema per poterlo trasferire ad un ampio spettro di altri problemi.

Gli strumenti intellettuali includono:

confidenza nel trattare la complessità (dal momento che i sistemi software raggiungono normalmente un grado di complessità superiore a quello che viene abitualmente trattato in altri campi dell'ingegneria);

perseveranza nel lavorare con problemi difficili;

tolleranza all'ambiguità (da riconciliare con il necessario rigore che assicuri la correttezza della soluzione);

abilità nel trattare con problemi definiti in modo incompleto;

abilità nel trattare con aspetti sia umani che tecnologici, in quanto la dimensione umana (definizione dei requisiti, interfacce utente, formazione, ...) è essenziale per il successo di qualunque sistema informatico;

capacità di comunicare e lavorare con gli altri per il raggiungimento di una meta comune o di una soluzione condivisa.

# data[].attributes.attachment_link.description
Cos'è il pensiero computazionale Per caratterizzare sinteticamente il rilevante contributo culturale apportato dall'Informatica alla comprensione della società contemporanea, la scienziata informatica Jeannette Wing nel 2006 introdusse l'espressione "pensiero computazionale  " (vedi l' articolo originale - in inglese). Prima di fornire qualche spiegazione su cosa si intenda con questa espressione, vi invitiamo a guardare il seguente spezzone video, tratto dal film "Apollo 13".

# data[].attributes.body
Pensiero Computazionale

# data[].attributes.body
Coding e Pensiero computazionale

# data[].attributes.attachment_link.readable_text
( Dal 26 al 29 novembre a Milano c'è Codemotion: un'ottima occasione per far avvicinare i bambini al mondo del coding. Il servizio uscito oggi sul Corriere:)

Corsi di nuoto e di sci, corsi di lingua, corsi di pianoforte e violino, corsi di teatro. Di danza, di yoga, di kung-fu, di equitazione. Anche se siete uno dei quei genitori che non vedono l'ora di riempire la settimana dei propri figli, "perché se non si impara da piccoli poi non si impara più", probabilmente non avete mai preso in considerazione l'idea di iscrivere i vostri bambini a un corso di coding. Ovvero il codice informatico, la programmazione. No, non è (solo) roba da ingegneri. Per molti esperti è una materia sempre più necessaria per chi è nato in questo millennio, al pari dell'inglese.

"Imparare a programmare non serve solo a creare futuri programmatori, di cui pure c'è bisogno" spiega Alessandro Bogliolo, docente all'università di Urbino e "ambasciatore" per l'Italia della "CodeWeek", andata in scena lo scorso ottobre. "Il salto di qualità - continua Bogliolo - si fa quando si inizia a pensare che il coding debba diventare materia di studio". E lo sta diventando un po' in tutto il mondo. Barack Obama pochi mesi aveva esortato gli studenti americani: "Non comprate un nuovo videogioco, fatene uno. Non scaricate l'ultima app, disegnatela". In Italia, tra le linee guida del progetto del governo sulla "Buona Scuola" è citata anche l'"educazione al pensiero computazionale e al coding nella scuola italiana". Segnali che questi temi hanno raggiunto le istituzioni, sotto la spinta di un movimento dal basso. Sono moltissimi ormai i corsi, i work-shop e gli appuntamenti nel nostro Paese (v. sotto).

Il concetto chiave è il "pensiero computazionale", che ricorre anche nel documento del governo. "Significa pensare in maniera algoritmica ovvero trovare una soluzione e svilupparla - dice Bogliolo -. Il coding dà ai bambini una forma mentis che permetterà loro di affrontare problemi complessi quando saranno più grandi". Insomma imparare a programmare apre la mente. Per questo si può cominciare già in tenera età. Anche per uscire da un equivoco: quello che i nostri bambini, i cosiddetti "nativi digitali", siano bravissimi con le nuove tecnologie. "È un luogo comune" dice Massimo Avvisati, responsabile didattico dell' area Kids di Codemotion. Poi spiega: "Per gli adulti il tablet o lo smartphone sono una finestra di libertà. Molli il piccolo davanti a quello strumento per una mezzora, ti godi un po' di pace, poi lo vedi disinvolto con la tecnologia e pensi che tutto finisca lì. Ma è una fruizione passiva". Quando i bambini si avvicinano al coding, invece, diventano soggetti attivi della tecnologia. I risultati sono immediati. In poco più di un'ora si può creare un piccolo videogioco, funzionante: "Li rendiamo produttori di tecnologia. E i ragazzi via via maturano anche una presa di coscienza. Quando lavorano per il loro videogame vogliono che sia difficile. "Altrimenti chi lo usa si annoia", dicono. Iniziano a vedere le cose da una prospettiva diversa" aggiunge Avvisati.

Per fare tutto ciò servono strumenti adatti. Il più diffuso è Scratch: un "tool" di programmazione visuale (il codice del programma non deve essere digitato) ideato al Mit di Boston. Ne esiste persino una versione "junior" per chi ancora non sa leggere (dai 5 anni).
Crescendo le cose si fanno più complesse e il software si può interfacciare con il mondo fisico di altre "discipline" di frontiera: stampa 3D, hardware programmabile (tipo Arduino e Rasberry Pi), Lego Mindstorms e altro.
Ai genitori non è richiesta nessuna preparazione particolare. Se non quella di chiedere ai figli che cosa li incuriosisce di più, mostrando siti o brochure. L'attenzione al coding è in crescita anche da noi, alimentata da progetti come la " CodeWeek" che ha coinvolto 30 mila studenti (grazie anche all'interessamento del Ministero per l'Istruzione - Lo speciale su Corriere Scuola). Spiegano i responsabili del Campus La Camilla, un tecno-agriturismo a Concorezzo (Monza): "Quando siamo partiti con corsi di Scratch dai 7 agli 11 anni è stato un azzardo, ma ora abbiamo sempre una decina di iscritti. Con 10 ore si ha già una buona base".

AGGIORNAMENTO: Rispondo a soliti lettori nostalgici e inutilmente passatisti che dicono: "Cosa c'è di nuovo? Anch'io 30 anni fa facevo i corsi di Pascal, di Fortan, di Basic, etc!". Sì, li ho fatti anch'io quei corsi. E ringrazio i miei genitori che me li hanno fatti fare, anche se nella vita il mio lavoro ha poco a che fare. Ma:

1. Non si facevano a 5, 6 e nemmeno a 8 anni

2. Oggi l'approccio al coding è completamente diverso: si punta alla scuola primaria e poi alle medie (secondarie inferiori) perché l'obiettivo è fornire, anche con pochissime ore di lezione, un approccio logico alla programmazione

3. Non si insegna un linguaggio specifico che magari, quando i bambini saranno adulti, sarà già stato accantonato da anni

4. La filosofia alla base del movimento dei Coderdojo, che molto ha già fatto per il coding, è quello dei metodi attivi, cioè il "learning by doing". Imparare facendo. I bambini sono immersi in un ambiente logico e matematico, ma la creatività e la fantasia hanno un ruolo centrale negli incontri sul coding di oggi. Io di quei corsi di Pascal di 30 anni ricordo noiosissime e interminabili lezioni "frontali" teoriche (ma forse non ho avuto buoni insegnanti...)

5. Il movimento del coding promuove altri "valori" quali quelli del software libero, della condivisione e del "remix", ovvero del riuso del codice realizzato da qualcun altro. In un mondo di steccati e "walled garden" erette da questa o quella big dell'elettronica di consumo è bene che più i giovani conoscano alternative.

6. Non è necessario e forse neanche utile puntare a far diventare il coding materia di studio curriculare in Italia. Mancano gli strumenti e la formazione degli insegnanti, sopratutto nella scuola primaria. Finora le iniziative hanno portato a portare nelle scuole, le esperienze (spesso volontaristiche) fatte sul territorio da gruppi e associazioni. E potrebbe essere la via giusta, almeno per un po' di tempo.

7. Un punto importante: l'approccio ludico alla programmazione permette di rinforzare e di far comprendere meglio anche le tradizionali materie scolastiche. Come mi spiegava Massimo Avvisati di Codemotion: "Se in geometria hanno studiato l'angolo giro e nel videogioco che costruiscono devono ruotare un'astronave, ecco che riescono a dare un senso al concetto di 360 gradi. A 7 anni con Scratch riescono già a capire il sistema di coordinate cartesiane. Ma può valere anche per le discipline letterarie "

8. Avviso per mamme e papà: il coding non è una cosa "da maschietti" ma un ottimo strumento per avvicinare le discipline matematico-scientifiche anche le bambine. E aiutare al colmare in prospettive il "gender gap" che il settore sconta, anche ma non solo in Italia

9. Ai cruscanti che mi rimproverano di usare "coding" e non "programmazione".... Per una volta il termine inglese ha senso per dare maggiore chiarezza: in italiano se dici "programmazione" il 99% delle persone pensa all'agenda della settimana o alla pianificazione dei ministeri. Per diffondere il concetto è più utile un termine non ambiguo. E poi l'inglese e la programmazione hanno parecchio a che fare, volenti o nolenti

-

Dove
Codemotion è una conferenza internazionale sulla programmazione e punto d'incontro tra appassionati su quel che ruota intorno alla tecnologia. L'edizione di Milano, con conferenze, corsi e workshop, è al Politecnico in Bovisa dal 26 al 29 novembre. Le attività Kids per bambini sono sabato, tra le 10 e le 18 (prenotare). Altri corsi di coding per bambini? Presso i Coderdojo italiani, vere palestre per imparare a programmare che hanno molte attività riservate ai più giovani. Informazioni su coderdojoitalia.org.
Il progetto L'Ora del Codice si svilupperà dall'8 al 14 dicembre in oltre 180 Paesi, tra cui l'Italia.
Per i più grandi (ma non solo) oltre al coding, si può passare anche ad argomenti quali stampa 3D, interazione con l'hardware (Arduino, Rasberyy Pi, Lego Mindstorms, etc). Il Museo nazionale della Scienza e Tecnologia di Milano ha un laboratorio di Tinkering come varie attività.

Scratch è il "tool" più usato per avvicinare i bambini alla programmazione.
Dai 5 anni si può usare ScratchJr: anche per iPad
Sempre per iPad c'è anche HopScotch, gratuita.
Stencyl è un'alternativa a Scratch.
Per i più grandi c'è Processing .
Giochi per pc e console consentono di creare "mondi" e livelli, e poi condividerli. Il più celebre è Minecraft, ma ci sono anche titoli per console come i recenti Disney Infinity 2.0 e Little Big Planet 3

# data[].attributes.attachment_link.title
Che cos'è il coding e perché i vostri figli dovrebbero imparare a programmare

# data[].attributes.attachment_link.description
(Dal 26 al 29 novembre a Milano c'è Codemotion: un'ottima occasione per far avvicinare i bambini al mondo del coding. Il servizio uscito oggi sul Corriere:) Corsi di nuoto e di sci, corsi di lingua, corsi di pianoforte e violino, corsi di teatro. Di danza, di yoga, di kung-fu, di equitazione.