A come algoritmo
A causa dell’esplosione dei Big Data, dell’invasione dell’Internet delle Cose e… del Datagate il termine programma si è scisso tra dato e algoritmo anche nella conoscenza popolare uscendo dalla cerchia ristretta degli addetti ai lavori.
Un algoritmo non è altro che la descrizione formale ed esplicita delle regole da applicare ai dati in ingresso per ottenere l’uscita desiderata (la soluzione del problema). Ai corsi per neofiti lo si paragona spesso a una ricetta per cucinare, solo molto più precisa, espressa tramite un linguaggio di programmazione, il mezzo con cui comunicare le istruzioni alla macchina. Ci sono linguaggi di tutti i tipi: testuali, logici, grafici, manuali…
Programmare è facile e divertente oltre che un modo per abituarsi all’elaborazione di strategie su come risolvere problemi, creare progetti e comunicare idee. Tra le tante iniziative che sono nate per avvicinare la gente comune agli algoritmi vi segnalo l’Ora del Codice e Progetto NERD.
Se siete di quelli che pensano che programmare sia difficile provate Scratch, il linguaggio gratuito creato dal Massachusetts Institute of Technology (MIT).
Eppure, proprio ora che ha ottenuto una discreta notorietà, il concetto stesso di algoritmo si sta dissolvendo sotto il vento delle nuove capacità informatiche. Ad esempio, con le reti neurali (una branca dell’intelligenza artificiale) la soluzione al problema nasce dall’allenamento sostenuto dalla macchina e non più da una codifica (giusta o sbagliata, in ogni caso rivedibile) imposta da un umano. Si parla in questi casi di apprendimento automatico (Machine Learning), una tecnica sempre più utilizzata per elaborare l’enorme mole di dati a disposizione e affrontare problemi complessi.
Sorprendente, vero? Peccato che la macchina non sappia spiegare (all’uomo) come ci riesca.
Cadiamo quindi nel dilemma della scatola nera (black box): quali sono i razionali che hanno guidato la scelta? E, soprattutto, tale scelta è un approccio innovativo, un banale errore di programmazione oppure un palese pregiudizio?
Un aspetto non da poco, dato che all’orizzonte iniziano a comparire automobili che vanno a cercarsi il parcheggio, autobus senza guidatore, assistenti virtuali, sistemi di prevenzione del crimine e di valutazione dei candidati. Sareste disposti a farvi operare in base alle predizioni di un programma senza che il vostro medico di fiducia sappia spiegarvi il perché (ovviamente non vale il “l’ha detto la macchina”)? Lascereste che l’auto che vi trasporta fosse libera di scegliere tra rischiare la vostra vita e uccidere cinque pedoni?
Ecco che le figure professionali tradizionali (analista, programmatore, sistemista, architetto, capo progetto…) sfumano e si diversificano in un arcobaleno di ruoli che va dall’esperto dei dati (con cui allenare e verificare la bontà del programma) allo “psicologo” (se non psichiatra) del programma (e dei suoi creatori).
Ma siamo pronti a sederci di fronte al computer per chiedere delucidazioni come in Westworld, oppure rimpiangeremo le paginate di istruzioni mal documentate?