pensiero computazionale

Nuove parole e neologismi compaiono regolarmente e sempre più spesso per esprimere concetti già noti. Aspetti di alcuni concetti ritornano di moda o iniziano ad essere considerati rilevanti. Nella nostra società dell’informazione sicuramente il termine computazionale, derivante dal verbo computare, è importante. Calcolare, elaborare dopo un analisi e un processo di astrazione è oramai un attività umana diffusa.

Associare la parola computazionale al pensiero ci apre a nuove prospettive ma sicuramente consolida un modello di pensiero che deriva da chi crea con il codice ( to code ) un programma che fa nascere azioni e crea nuove realtà ( non solo virtuali)

lineedicodice

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 si seguito l’articolo originale in inglese Computational Thinking).

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.

I metodi caratteristici includono:

  1. analizzare e organizzare i dati del problema in base a criteri logici;
  2. rappresentare i dati del problema tramite opportune astrazioni;
  3. 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;
  4. 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;
  5. 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);
  6. generalizzare il processo di risoluzione  cioè rendere scalare la soluzione 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);
  • determinazione che la soluzione tecnica è alla portata per nel lavorare con problemi difficili;
  • tolleranza all’ambiguità e utilizzo di linguaggi formali  (da riconciliare con il necessario rigore che assicuri la correttezza della soluzione);
  • abilità nel trattare con problemi  anche 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.
Per ulteriori informazioni sul pensiero computazionale visita i seguenti siti:

http://www.programmailfuturo.it/
http://code.org/