Il pensiero computazionale
di Daniele Fiorenti
Ogni problema, ci piace pensare, ha una soluzione.
In matematica e in informatica, forse in generale nella vita, la soluzione è tanto migliore, tanto più efficace, quanto più è generale, adatta a una classe di contesti, riproducibile, descrivibile in un numero finito di passaggi e applicabile in tempi ragionevoli.
Il nuovo libro di Paolo Ferragina e Fabrizio Luccio, Il pensiero computazionale. Dagli algoritmi al coding, edito da Il Mulino, si propone appunto di presentare alcuni problemi e soluzioni. I problemi, tratti dagli ambiti più vari, dalla crittografia alla finanza; le soluzioni, come le vorremmo: esprimibili mediante un algoritmo, una sequenza finita di operazioni da far eseguire a una macchina.
Ed è proprio questo uno degli aspetti più attraenti dell’algoritmo, a parte la provenienza stessa della parola, da al-Khwarizmi, matematico persiano del IX secolo considerato uno dei padri dell’algebra (che per dirne un’altra deriva dall’arabo al-ğabr, “unione”, “connessione”, “completamento”): la scrittura dell’algoritmo, il coding, è di per sé un linguaggio, uno stile di pensiero e di comunicazione. E in quanto tale prevede più livelli.
La prima stesura dell’algoritmo può avvenire anche su carta, in una lingua che è una specie di esperanto dei linguaggi di programmazione: è simile a tutti, quindi facilmente traducibile in qualsiasi linguaggio specifico, anche se nessuna macchina lo parla, né può capirlo ed elaborarlo così com’è. Gli informatici lo chiamano pseudocodice.
Gli autori poi traducono lo pseudocodice in un programma scritto in linguaggio Python, tra i più diffusi. Vivo, parlato: il codice così formulato può essere sperimentato dal lettore stesso attraverso un sito Web predisposto dagli autori.
Un problema, un algoritmo, una codifica dell’algoritmo in una qualche lingua, una macchina che la capisca e possa eseguire -così si dice- il codice. Una soluzione, infine.
- On 1 Settembre 2017