FacebookTwitterLinkedin

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.