di Michael Lodi
Pensiero computazionale e coding sono argomenti “caldi” nelle indicazioni didattiche di oggi1. Si tratta solo di una moda, oppure l’introduzione di questi nuovi mondi del sapere è fondata su solide basi? L’introduzione, già a partire dalla scuola primaria, del pensiero computazionale come quarta abilità di base da insegnare (insieme a leggere, scrivere e far di conto) è ritenuta sempre più indispensabile. L’Italia non rappresenta un caso isolato: scelte analoghe sono state fatte (a volte alcuni anni prima rispetto al nostro paese) anche in molti altri paesi (Regno Unito, Stati Uniti, Australia, Nuova Zelanda, solo per citarne alcuni).
Per prima cosa è bene soffermarsi sul significato di questi termini.
Il pensiero computazionale può essere definito2 come un “processo di formulazione di problemi e di soluzioni in una forma che sia eseguibile da un “agente che processa informazioni”. Si tratta di formalizzare un problema di modo che un qualche esecutore (la massaia che segue una ricetta, l’hobbista che monta il mobile prefabbricato, il computer che esegue le istruzioni scritte in un preciso linguaggio formale) possa trovare la soluzione al posto nostro.
Non si tratta di “pensare come un computer”, frase che di per sè contiene una contraddizione, ma piuttosto di pensare come un Informatico per trovare strategie creative (tipiche di un pensiero umano) e innovative per la risoluzione di un problema, lasciando poi al computer il “noioso” compito di eseguire i passi che effettivamente porteranno alla soluzione desiderata.
Lo strumento espressivo principale di un informatico è quello della programmazione (coding, in inglese). Tramite la traduzione degli algoritmi (le descrizioni dei passi necessari alla risoluzione di problemi, di cui abbiamo parlato poc'anzi) in un linguaggio di programmazione (cioè un linguaggio che, direttamente o indirettamente, è comprensibile ad un computer) l’informatico dà vita ad artefatti (virtuali) inediti che si occupano di realizzare un compito, risolvere un problema, fornire un servizio, ecc.
A questo punto è normale chiedersi se imparare questa abilità (pensiero computazionale) e queste conoscenze e competenze (coding) sia davvero necessario per il più vasto pubblico possibile, o se invece non debba rimanere appannaggio di alcuni tecnici specializzati. L’informatica è pervasivamente presente nel mondo di oggi, in ogni ambito della nostra vita. Si parla infatti di “ubiquitous computing”. Dunque, conoscerne i concetti basilari è imprescindibile per la formazione personale.
(continua a pag.2)
Così come a scuola si studiano le lingue, la matematica, la fisica, le arti per capire il mondo che ci circonda (e non necessariamente per diventare esperti di questo o quel settore), così deve essere ora per l’informatica, che è una scienza autonoma e dunque (sempre più) degna di un posto tra le discipline scolastiche.Sebbene non deve essere il solo obbiettivo, è giusto dare uno sguardo alle professioni del futuro. I dati parlano chiaro, sempre più professioni (dei più disparati settori: scientifico, umanistico, ecc) richiedono una competenza informatica che va ben al di là del semplice “uso” della tecnologia e i trend preannunciano una carenza di lavoratori con le competenze necessarie, negli anni a venire.
Normale, se la maggioranza dei ragazzi non ha avuto modo di entrare in contatto con tali aspetti del sapere e dunque, eventualmente, appassionarvisi. Ma c’è di più. Imparare a programmare, a “pensare come un informatico”, è un ottimo modo per acquisire competenze trasversali quali problem-solving, ragionamento analitico e sistematico, precisione e cura per la forma, gestione della complessità di un problema, collaborazione. Per la natura stessa dell’Informatica, programmare e risolvere problemi computazionalmente aiuta a non essere spaventati dagli errori (i “bug” di cui i programmatore sono sempre a caccia), ma anzi a procedere per prove ed errori. Il feedback inoltre è imparziale ma motivante: se il programma non funziona, mi rendo conto che c’è qualcosa da migliorare e sono spronato a farlo.
Gli studenti
- imparano a scomporre un problema che sembra insormontabile in sottoproblemi più facilmente risolubili;
- imparano a lavorare con problemi reali e non necessariamente costruiti ad arte per avere un risultato “pulito”, per ottenere un apprendimento autentico e per mettere in gioco, stimolare e valutare le loro competenze;
- imparano inoltre a collaborare e a riutilizzare il lavoro di altri (senza paura di copiare ma sapendo di dover rispettare il diritto d’autore) per realizzare i propri progetti.
Come è evidente, si tratta di skill di vita, che vanno ben al di là dell’informatica: sono la base per continuare a crescere e ad imparare
Costruire i propri programmi (videogiochi, storie, animazioni, simulazioni…) permette inoltre un uso attivo della tecnologia (contrapposto all'uso passivo, di solito l’unico a cui sono esposti bambini e ragazzi oggi), come strumento per esprimere la propria creatività. Così come, dopo aver imparato a leggere, impariamo a scrivere, per poter esprimere i nostri pensieri e dare forma a opere nuove, così possiamo fare quando da semplici utilizzatori diventiamo capaci di creare usando la tecnologia e l’informatica.
1 La Buona Scuola, Piano Nazionale Scuola Digitale
2Per una rassegna sulle possibili definizioni del pensiero computazionale si veda il Cap.1 della tesi di Michael Lodi: http://amslaurea.unibo.it/6730/
Brano estratto e riadattato da
La locuzione computational thinking (pensiero computazionale[1]) è stata utilizzata per la prima volta da Seymour Papert nel suo libro Mindstorms[2], e poi in un suo articolo sulla didattica della Matematica[3]. La locuzione pensiero computazionale è stata però portata alla ribalta da un breve ma seminale articolo[4] di Jeannette Wing[5], in cui il concetto è definito informalmente come un “modo di pensare” volto a “risolvere problemi, progettare sistemi, comprendere il comportamento umano basandosi sui concetti fondamentali dell’informatica”. In altre parole, “pensare come un informatico per risolvere un problema”. La scienziata si spinge a individuare il pensiero computazionale come “quarta abilità di base”, oltre a leggere, scrivere e far di conto[6], che dovrebbe essere insegnata a tutti, fin dalla scuola primaria. La stessa Wing ha formalizzato la sua idea, definendo il pensiero computazionale come un processo mentale di formulazione di problemi e delle loro soluzioni in una forma che sia effettivamente eseguibile da un agente che processa informazioni. Tale definizione, estremamente generale, sottointende molti aspetti non ovvi del processo che un informatico mette in atto per risolvere un problema: organizzare logicamente e analizzare i dati; rappresentare i dati tramite astrazioni, modelli e simulazioni; identificare, analizzare, implementare e testare le possibili soluzioni con un’efficace ed efficiente combinazione di passi e risorse, avendo come obiettivo la ricerca della soluzione secondo tali criteri; generalizzare il processo di soluzione e trasferirlo ad altri problemi, eccetera. Proviamo quindi a elencare le componenti principali che secondo la letteratura[7], e con integrazioni di chi scrive queste note, fanno parte del pensiero computazionale. Partiamo dagli aspetti più pratici: realizzando i propri progetti di programmazione, i bambini devono utilizzare concetti che sono alla base della totalità dei linguaggi dell’informatica.
Come già esplicitato, pensando e lavorando come un informatico, si sperimentano, sviluppano e affinano alcune pratiche, cioè nuovi modi di lavorare, pensare e approcciare i problemi.
Utilizzando il pensiero computazionale si sviluppano nuove prospettive, cioè nuovi modi di vedere il mondo e se stessi.
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 4.0 Internazionale. [1] Per una rassegna sulle definizioni di Pensiero computazionale, con proposte per insegnarlo al meglio, rimando alla mia tesi di laurea: Lodi M. (2014), Imparare il pensiero computazionale, imparare a programmare, Tesi di Laurea Magistrale in Informatica, Università di Bologna. In Internet, URL: http://amslaurea.unibo.it/6730/ [2] Papert S. (1980), Mindstorms: Children, Computers, and Powerful Ideas, Basic Books, New York. [3] Papert S. (1996). An exploration in the space of mathematics educations, in «International Journal of Computers for Mathematical Learning», vol. 1, issue 1, pp. 95-123. [4] Wing J. M. (2006), Computational thinking, in «Communications of the ACM», ACM New York, NY, USA, vol. 49, issue 3, pp. 33-35 [5] Professoressa di Informatica, all’epoca direttrice del dipartimento di Informatica della Carnagie Mellon University. [6] Che nelle Indicazioni nazionali per il curricolo della scuola primaria (MIUR, 2012) vengono considerate “alfabetizzazione strumentale” di base, da unire a quella sociale e culturale, e ai linguaggi e saperi delle varie discipline. [7] Principalmente da e da [8] L’origine etimologica dell’uso del termine bug come sinonimo di errore in un programma è controversa. Una vicenda molto evocativa (e che può catturare l’attenzione dei bambini) è quella di una pioniera dell’Informatica, Grace Hopper, che un giorno trovò all’interno di uno dei primi computer (all’epoca grandi quanto intere stanze) un bacarozzo che interferiva con i componenti elettromeccanici, facendo così produrre risultati inattesi ad un programma ben scritto. |
.....in sintesi: una chiara spiegazione del nostro amico ed esperto Michael Lodi
|
Quattro domande sul pensiero Computazionale
“E’ il processo mentale che sta alla base della formulazione dei problemi e delle loro soluzioni così che le soluzioni siano rappresentate in una forma che può essere implementata in maniera efficace da un elaboratore di informazioni sia esso umano o artificiale” (Jeannette Wing, direttrice del Dipartimento di Informatica della Carnegie Mellon University). Ovvero è lo sforzo che un individuo deve mettere in atto per fornire a un altro individuo o macchina tutte le “istruzioni” necessarie affinché questi eseguendole sia in grado di portare a termine il compito dato.
Perché è importante il pensiero computazionale?
Nonostante il termine “computazionale” possa indurre a pensare che il pensiero computazionale sia un’abilità utile solo a chi ha fatto dell’informatica la propria professione, si tratta di una skill fondamentale che tutti dovrebbero possedere, in particolare quei giovani che desiderano non farsi sfuggire le opportunità che il futuro porrà loro davanti nei prossimi anni. È ormai universalmente riconosciuto che per riuscire bene nel proprio futuro professionale i giovani dovranno “imparare a imparare” e non limitarsi a fornire risposte preconfezionate: in questa direzione si muovono le raccomandazioni dell’Unione Europea in materia di istruzione che sono state recepite dal MIUR anche con l’introduzione della programmazione e della robotica educativa nelle scuole a partire dalla primaria. Perché 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 secondo il framework sviluppato dal Lifelong Kindergarten del MIT MediaLab.
Concetti di pensiero computazionale:
- Sequenza: un’attività può essere espressa attraverso una serie consecutiva di singoli step o istruzioni.
- Ciclo: è un meccanismo per eseguire più volte la medesima sequenza in maniera iterativa.
- Evento: il verificarsi di un’azione causa lo scatenarsi di un’altra azione.
- Parallelismo: significa eseguire sequenze di istruzioni inerenti allo stesso tempo.
- Condizione: è la possibilità di prendere decisioni sulla base del verificarsi di determinate situazioni.
- Operatore: fornisce supporto per la manipolazione di numeri e stringhe di caratteri.
- Dati: sono valori che possono essere salvati, recuperati e modificati durante l’esecuzione di un programma.
Learning by doing
Per insegnare a “pensare come un informatico” è necessario promuovere uno stile esperienziale (learning by doing), non frontale ma laboratoriale, in cui gli studenti imparano facendo, si sentono responsabili del processo e, sostenuti dagli adulti, ne diventano consapevoli, si percepiscono come competenti, acquisendo così fiducia nelle proprie risorse e aumentando la propria autostima.Si tratta di un approccio “learner centered”, centrato sul discente, in cui l’insegnante si muoverà a proprio agio, poiché questo approccio rappresenta l’orizzonte di riferimento della scuola italiana, coerentemente con le raccomandazioni dell’Unione Europea in materia di sviluppo delle competenze. Lavorare in team e aiutarsi reciprocamente rappresentano dei valori imprescindibili del progetto, poiché costituiscono skill che devono essere esercitate e sviluppate: l’apprendimento è più efficace e coinvolgente se frutto di un’ esperienza che si sviluppa in un ambiente caratterizzato da un clima collaborativo.
Pensiero computazionale - ...le "nostre" prime fonti |
|
Pubblicazioni di Michael Lodi
|
Marchignoli,R.,Lodi,M. (2016).EAS e pensiero computazionale.La Scuola, Brescia,2016.Capitolo1,sezione3.1. |
Papert ne ha parlato nel suo libro Mindstorms |
Jeannette Wing nel suo articolo del 2006 |
|
Coding - Programmare, inventare giochi con il linguaggio visuale a blocchi....noi siamo partite da qui! |
|
Imparare con SCRATCH |
Non sapete come andare avanti con un progetto Scratch? Avete domande e dubbi? Allora potete chiedere aiuto accedendo a questa piattaforma....non esitate! Forum Italiano di Scratch |
CODE.ORG: la prima piattaforma informatica nata negli Stati Uniti ed utilizzata da oltre venti milioni di ragazzi, che aggrega associazioni, università e imprese. |
PROGRAMMA IL FUTURO: la piattaforma italiana del MIUR e CINI che ha l’obiettivo di fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica. |
CS-UNPLUGGED: imparare l’informatica senza alcun Computer. Una collezione di attivit`a didattiche divertenti per gli studenti delle scuole primarie. |
CODERDOJO-ITALIA: per capire che cos'è e cosa si fa. |
...quando ancora non erano stati scritti libri e guide su SCRATCH: GUIDA PER I DOCENTI e GUIDA PER GLI STUDENTI |
Poi è arrivata questa fantastica guida scritta dalla nostra amica e collega Caterina Moscetti con prefazione di Michael Lodi: "CODING E PENSIERO COMPUTAZIONALE NELLA SCUOLA PRIMARIA" |
BAMBINI CHE IMPARANO A PROGRAMMARE: blog tenuto sul tema dal maestro Alessandro Rabbone |