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 da questo video, è che con il pensiero computazionale si definiscono procedure che vengono poi attuate da un esecutore, che opera nell'ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati.

Il pensiero computazionale è un processo mentale per la risoluzione di problemi costituito dalla combinazione di metodi caratteristici e di strumenti intellettuali, entrambi di valore generale. Questa generalità è il motivo principale del perché partecipare al progetto.

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 “sistema di calcolo” (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.

Questi metodi sono importanti per tutti, non solo perchĂ© sono direttamente applicati nei calcolatori (computer ), nelle reti di comunicazione, nei sistemi e nelle applicazioni software ma perchĂ© sono strumenti concettuali per affrontare molti tipi di problemi in diverse discipline.

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);
  • ostinazione 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.

Anche per questi strumenti i benefici si estendono al di lĂ  della disciplina informatica.