Il concetto di “pensiero computazionale” è stato introdotto
per la prima volta da Seymour Papert nel 1996
parlando di LOGO, il linguaggio di programmazione da
lui sviluppato al MIT per insegnare la programmazione ai
bambini.
Sono in molti oggi a credere che il pensiero computazionale
costituisca la quarta abilità di base oltre a saper
leggere, scrivere e fare di calcolo. Ed è per questo motivo
che va facendosi strada sempre più la convinzione che il
pensiero computazionale debba essere insegnato a ogni
bambino.
Papert fu colui che per primo coniò il termine “computational
thinking” è il padre di una teoria dell’apprendimento
nota come costruzionismo che sostiene che la mente
umana per poter imparare bene ha bisogno di creare
artefatti, ovvero rappresentazioni reali del mondo con
cui interagisce.
E il computer, secondo Papert, è un ottimo strumento didattico
poiché, grazie alla programmazione, può creare
questi artefatti.
Il testimone di Papert è stato raccolto da Mitchel Resnick
responsabile del Lifelong Kindergarten del MIT MediaLab
che con i suoi collaboratori ha realizzato un framework
per l’insegnamento del pensiero computazionale e la
valutazione dell’apprendimento che si fonda sulla convinzione
che i bambini possano acquisire il pensiero
computazionale programmando storie interattive e videogiochi
(gli artefatti di cui parlava Papert).
Il lavoro di questi anni di Resnick e dei suoi collaboratori ha
portato alla nascita di Scratch, un ambiente di programmazione
visuale che consente ai ragazzi di creare in maniera
semplice e intuitiva le proprie storie animate, giochi e
simulazioni: oggi Scratch conta una community di giovani
sviluppatori estesa in tutto il mondo ed è di fatto lo strumento
di riferimento per insegnare ai bambini il pensiero
computazionale attraverso la programmazione.
A oggi non esiste una definizione universalmente condivisa.
Quella che sembra mettere d’accordo il maggior numero
di esperti è la definizione formulata dalla dottoressa
Jeannette Wing, direttrice del Dipartimento di Informatica
della Carnegie Mellon University, secondo cui “è 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”. Ovvero è lo sforzo che un individuo
deve mettere in atto per fornire a un altro individuo
o macchina tutte e sole le “istruzioni” necessarie affinché
questi eseguendole sia in grado di portare a termine il
compito dato.
Che cos’è il pensiero computazionale?
Se l’obiettivo che devo raggiungere è la costruzione di un
tavolino a partire dalle quattro gambe e dal piano d’appoggio,
dovrò innanzitutto individuare un linguaggio (per
esempio verbale o visuale) attraverso cui comunicare le
istruzioni a chi dovrà operativamente realizzare il tavolo
e poi tradurre i singoli step necessari alla costruzione in
istruzioni precise e inequivocabili.
La programmazione come strumento per sviluppare il
pensiero computazionale
I processi mentali tipici del pensiero computazionale
sono favoriti dall’approccio alla risoluzione dei problemi
che viene messo in atto da coloro che sviluppano programmi
per il computer: in altre parole il pensiero computazionale
è quello che adotta un informatico quando
affronta un problema. Esercitare il pensiero computazionale
significa quindi molto di più che saper scrivere righe
di codice.
Qualche esempio