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.