lunedì 29 maggio 2017

La "grande bellezza" dell'informatica

di Enrico Nardelli

Tutta la scienza è basata su astrazioni: spiegare fenomeni mediante modelli che li descrivono. Quando un fisico scrive l’equazione che rappresenta il moto di un corpo, o un chimico la reazione che spiega la formazione di una sostanza, o un biologo descrive il processo di sviluppo di un organismo, stanno tutti costruendo un modello, cioè una rappresentazione della realtà.

Stanno quindi usando l’astrazione: il concentrarsi su ciò che è essenziale per il punto di vista assunto ed è comune a tutti gli specifici esempi descritti dal modello stesso.

Così, sotto certe condizioni che vanno specificate chiaramente, dal momento che le astrazioni non sono sempre valide nel 100% dei possibili scenari, per il fisico non è determinante la materia di cui sono fatti i corpi che si muovono, o per il chimico il colore delle sostanze che reagiscono o per il biologo la nazione in cui si trova l’organismo che si sviluppa.

Generalmente l’astrazione viene formulata in un linguaggio matematico, dal momento che tale disciplina è necessaria ovunque servano precisione e rigore. Un ragionamento scientifico deve necessariamente rientrare nei canoni logici di coerenza e consequenzialità, pena la sua uscita da questo paradigma della conoscenza.

Anche l’informatica usa estesamente l’astrazione, ma in questo suo utilizzo si distingue per una caratteristica che essa sola possiede e che ne costituisce, a mio parere, la ragione che spiega la sua “grande bellezza”. Le astrazioni dell’informatica sono eseguibili in modo meccanico. Vuol dire che possono essere animate, cioè si può “dar loro vita e vedere che accade” senza dover ogni volta costruire una nuova rappresentazione fisica dell’astrazione stessa. Anche nelle altre discipline si può dar vita alle astrazioni mediante oggetti fisici che esprimono i fenomeni modellati, sostanziandone così la loro espressione logico-matematica. Ma per ogni modello va realizzato ad hoc un insieme di oggetti.

Nell’informatica, grazie alla sua astrazione fondamentale, il cui termine tecnico è “Macchina Universale di Turing” (MUT), abbiamo un unico meccanismo unico mediante il quale, sempre allo stesso modo, qualunque modello può essere “meccanicamente” (cioè in modo del tutto automatico) “eseguito” (cioè reso vivo), senza necessità di ulteriore intervento umano. I PC, gli smartphone e i tablet di cui siamo circondati non sono nient’altro che realizzazioni tecnologicamente molto sofisticate della MUT.

Descrivendo questa unicità dell’informatica non intendo ovviamente sostenere che sia più importante o possa sostituire altre discipline scientifiche. Chi si avventura su questa strada apre polemiche infantili e sterili. Voglio solo ribadire la necessità che l’informatica sia insegnata nella scuola, come in altri paesi stanno facendo. Perché offre un nuovo, complementare ed utile punto di vista per la descrizione dei fenomeni naturali ed artificiali.

In Italia usiamo a questo scopo il termine “pensiero computazionale”, suscitando a volte reazioni più emotive che razionali. Ma l’espressione, come ho spesso discusso, è solo un modo di far capire che stiamo parlando dell’informatica come scienza, delle sue idee, princìpi, concetti, metodi ed approcci e non di sistemi, tecnologie e strumenti. In altri paesi questa necessità non c’è, perché si può parlare di “computer science” e di “information technology”. In Italia entrambe sono “informatica”.

Il pensiero computazionale è la capacità, acquisita da chi ha studiato e praticato l’informatica, di riconoscere gli aspetti computazionali dei fenomeni naturali ed artificiali. Vuol dire descrivere alcuni aspetti di questi fenomeni “come se” fossero delle computazioni. Non è detto che lo siano effettivamente, ma in ogni caso offrono nuovi e utili modi per analizzare e spiegare la realtà. Un esempio lampante è la descrizione dei processi biologici a livello molecolare: il meccanismo di replicazione del DNA può anche essere visto “come se” fosse una computazione, e questo ha offerto enormi vantaggi per la sua comprensione. Anche in economia e in sociologia si trovano esempi dell’utilità di questo approccio.

La realtà, dunque, può essere descritta in diversi modi e l’approccio informatico, grazie alla sua capacità di coglierne la sfaccettatura computazionale, certamente è uno di questi.



-----
Versione originale pubblicata su "Il Fatto Quotidiano" il 27 maggio 2017.

lunedì 15 maggio 2017

Chi ha paura del pensiero computazionale? (un anno dopo)

di Enrico Nardelli

A distanza di oltre un anno dal precedente articolo “Chi ha paura del pensiero computazionale?” continuo ad incontrare sulla rete espressioni immotivatamente critiche a proposito di questo termine: «Il pensiero computazionale non esiste» oppure «… è una truffa concettuale» o in alternativa «… è una truffa pedagogica e didattica». Altre posizioni lo descrivono come «… passione pedagogica fondata sul nulla» o, se vogliono concedere qualcosa, come «… piccola e preesistente frazione del pensiero scientifico e tecnologico».

È evidente, leggendo più in dettaglio le critiche, che alcune di queste derivano da opinioni politiche in disaccordo con l’attuale gestione della scuola. Idee del tutto lecite, ma che sviluppandosi su un piano politico non tratto in questa sede.

Qui invece analizzo le considerazioni sull’adeguatezza scientifica e/o didattica del termine “pensiero computazionale”. In genere osservo sempre, come ho fatto su questa rubrica e su questa e su questa, che esso ha il solo scopo di far capire che si parla degli aspetti scientifici e culturali dell’informatica, indipendenti dalla tecnologia. Esso quindi fa riferimento alle idee, ai concetti ed ai princìpi dell’informatica e non a sistemi, tecnologie e strumenti. L’obiettivo strategico per cui viene usato in Italia è arrivare a far sì che nella scuola si insegni l’informatica. Non ovviamente quella delle varie patenti di guida o degli applicativi o di specifici linguaggi di programmazione, ma quella che tutto il mondo riconosce come disciplina scientifica autonoma. Ecco una trattazione più estesa di questo punto. In altri paesi questa necessità non c’è, perché si può parlare di “computer science ” e di “information technology ”. In Italia entrambe sono “informatica ”.

Chiedo sempre a chi è in disaccordo di esplicitare in modo esteso e argomentato posizioni di critica non tanto a ciò che scrivo io, perché non si tratta di una questione personale, ma a quello che hanno scritto prestigiose società scientifiche internazionali. Invito quindi a discutere direttamente il cuore del problema, cioè la necessità dell’insegnamento nelle scuole dell’informatica, sostenuta in questi rapporti: The Royal Society, Shut down or restart? The way forward for computing in UK schools (2012) e Académie des Science, L’enseignement de l’informatique en France. Il est urgent de ne plus attendre (2013), anche in inglese.

Ad oggi non ho letto una critica di questi rapporti fondata su di un’analisi approfondita e motivata.

Tornando alle critiche sopra citate, esse sono generalmente basate sulla tecnica dell’ “argomento fantoccio ” (“straw man ” in inglese). Viene cioè criticata non la definizione generalmente accettata di pensiero computazionale (cioè la modalità di pensiero che ha acquisito ed usa per descrivere e spiegare i fenomeni chi ha studiato e praticato l'informatica come disciplina scientifica) ma una propria definizione scelta ad hoc (p.es: «… come pensano i computer»).

Ribadisco che questa non è una mia definizione ma quella usata da eminenti scienziati nei rapporti sopra citati e in altri documenti ancora. Dal momento che gli informatici esistono, il loro specifico punto di vista sul mondo e il loro particolare modo di pensare esistono. Quindi ritengo esagerato e scorretto dire che “il pensiero computazionale non esiste”.

Certamente vi sono perplessità sulla mancanza di una chiara attività di indirizzo su come insegnare informatica nella scuola. I miei colleghi ed io esercitiamo un'azione di stimolo in questa direzione, ma la situazione è ancora in divenire.

Criticare inoltre – come taluni fanno – l’affermazione che il pensiero computazionale abbia una sua posizione di preminenza rispetto ad altre modalità di lettura della realtà è nuovamente usare un argomento fantoccio. L’attività di pensiero assume differenti modalità o sfumature a seconda della formazione della persona. I modi di pensare e di riflettere sul mondo di un letterato, di un musicista, di un fisico, di un biologo, etc., sono tutti ugualmente validi, diversi l'uno dall'altro e complementari. Contribuiscono tutti alla comprensione del mondo.

Il pensiero computazionale, cioè il modo di descrivere la realtà che hanno gli informatici, apporta qualcosa di nuovo e diverso da quello delle altre discipline scientifiche? Sì, come illustrato dagli scienziati nei rapporti sopra citati. Esso è una nuova, distinta ed utile variante del pensiero scientifico e tecnologico, non certo un piccolo sottoinsieme preesistente.

Va insegnato nella scuola come tale? No, va insegnata a scuola la disciplina che lo sviluppa, cioè l'informatica. È quello che si fa negli USA, in UK e in Francia.

Possiamo confrontarci su come farlo, invece che discutere sulle definizioni?

-----
Pubblicato su "Il Fatto Quotidiano" il 3 maggio 2017.