Pensiero computazionale

"Pensare in termini computazionali significa applicare la logica per capire, controllare, sviluppare contenuti e metodi per risolvere i problemi [...]"

tratto da "La Buona Scuola, facciamo crescere il Paese" documento del governo Renzi del 03 settembre 2014, pag. 95

Dal problem solving alla didattica

Il problem solving (nel seguito p.s.) indica l'insieme dei processi atti ad analizzare, affrontare e risolvere positivamente situazioni problematiche.

Il p.s. può essere impiegato come approccio didattico per sviluppare, sul piano psicologico, comportamentale ed operativo, la capacità di risoluzione di problemi.

Non occorre inquadrare rigorosamente metodologie e tecniche del p.s., ma dare già a scuola un approccio sistematico alla risoluzione dei problemi non banali. Ad esempio una semplice procedura di p.s. da applicare in classe potrebbe essere costituita dai seguenti punti oppure da un loro sottoinsieme da condividere con gli studenti:

  1. percezione dell'esistenza di un problema

  2. definizione semplificata del problema

  3. analisi del problema e divisione in sotto-problemi

  4. formulazione di ipotesi per la risoluzione del problema

  5. verifica della validità delle ipotesi

  6. individuazione dei punti critici/difficili

  7. valutazione delle possibili procedure di risoluzione

  8. applicazione della procedura migliore.

Il metodo della didattica per problemi consente agli allievi di imparare a risolvere, con gradualità, problemi sempre più complessi che permettono loro di acquisire abilità cognitive di livello elevato.

La didattica per problemi deve essere intenzionale e funzionale rispetto agli obiettivi educativi e didattici da conseguire, in termini di conoscenze, competenze e capacità.

Il filosofo ed epistemologo K. Popper sostiene che "[…] la ricerca scientifica consiste nel risolvere problemi, […] la vita è costituita da problemi da risolvere" e quindi che "apprendere a risolvere problemi significa apprendere a vivere […]".

Il pensiero computazionale (o Computational Thinking)

Per lo studio di tutte le discipline matematiche, scientifiche e tecnologiche è fondamentale, l’approccio logico-matematico. Il linguaggio universale della matematica si applica spesso anche allo studio di problemi umanistici ed artistici (basta pensare alla statistica ed alla musica).

Come legare la parte matematico/computazionale alla procedura rigorosa di risoluzione di un problema non banale? Serve un algoritmo cioè un insieme di piccoli task da eseguire per portare a termine un compito preciso. Tutti conoscono gli algoritmi: quando si comunica una ricetta di cucina o si danno delle indicazioni stradali si trasmette ad un’altra persona un algoritmo. Come tradurli in maniera semplice, rigorosa e comunicabile senza ambiguità? Con un linguaggio di programmazione, così la procedura adottata per la risoluzione del problema non sarà comprensibile solo ad altri esseri umani, ma anche alle macchine che in pochi secondi ne verificheranno il funzionamento. Questo è il pensiero computazionale: un processo di problem solving che include l’uso del personal computer.

Quali vantaggi?

Computational Thinking (CT) significa dividere il problema in precisi piccoli passi semplici da svolgere (pensiero algoritmico), organizzare in maniera logica ed analizzare i dati, capire se e quando utilizzare un linguaggio di programmazione e il PC per la risoluzione e la verifica di quanto progettato. CT significa anche trasformare un problema in una sua versione astratta e quindi più facilmente adattabile a differenti casi reali: per esempio un buon algoritmo di ricerca si può applicare allo stesso modo in contesti differenti. Individuare i passaggi da compiere è un processo che sviluppa la creatività ed insegna a pensare in maniera sistematica. Realizzare il procedimento risolutivo in maniera ottimale confrontando diverse possibili soluzioni sviluppa la capacità di analisi. Far svolgere i calcoli ad una macchina che effettua anche alcune verifiche sulla correttezza sintattica e logica dell’algoritmo significa avere a disposizione un numero infinito di esercitazioni, quasi un insegnante virtuale con tempo e pazienza illimitati.

Infine CT significa usare in maniera evoluta il PC ormai onnipresente in tutti i luoghi di lavoro.

I think everybody in this country should learn how to program a computer because it teaches you how to think.

Traduzione: Penso che tutti in questo Paese dovrebbero imparare a programmare un computer perché ti insegna a pensare.

STEVE JOBS, THE LOST INTERVIEW