Cultura digitale, etica e coding

Cultura digitale, etica e coding

La parola inglese “coding”, nell’informatica, indica la stesura di una sequenza di istruzioni scritte per essere eseguite da un calcolatore; cioè un programma.

Calcolatore che può essere un personal computer, un tablet o un telefono cellulare e quest’ultimo è sempre più utilizzato alla stregua di un computer.

Coding in italiano è “programmazione”.

Alla base della programmazione vi è il pensiero computazionale, cioè il processo mentale per la risoluzione di problemi mediante algoritmi applicati ai calcolatori.

Algoritmi che tradotti per il calcolatore sono le applicazioni software, vero e proprio motore che converte un inanimato insieme di ferro e circuiti in un meccanismo in grado di interagire con l’essere umano.

Nella società contemporanea la presenza dell’informatica è pervasiva. Diviene quindi fondamentale passare da semplici consumatori passivi di tali servizi e tecnologie, a soggetti che hanno familiarità con i suoi concetti di base.

Sapere come i computer possono rendersi utili agli esseri umani è indispensabile per non soggiacere alla tecnologia. Non serve essere attori attivamente partecipi del loro sviluppo, neppure soggetti in grado di creare un portale o una best company del web, solo avere una cognizione dei concetti di base dell’informatica.

Serve una cultura che faccia comprendere che innovare fa bene, che la tecnologia rende più liberi e non discrimina, ma che è un elemento del processo di evoluzione del genere umano.

Passare da utilizzatori passivi a soggetti consapevoli di tutti gli aspetti in gioco. In particolar modo essere consapevoli che non si è alle soglie di un’era in cui gli algoritmi possono pilotare le macchine e sostituire l’essere umano nel lavoro giornaliero. Ma che questi programmeranno solo apparati non invasivi e di aiuto all’essere umano.

Comprendere che gli algoritmi non sono parto di un essere supremo, bensì frutto del lavoro di soggetti pensanti, di soggetti fallaci che possono costruirli bene, ma anche male.

L’insegnamento del coding deve arrivare a far conoscere un linguaggio di programmazione e i concetti base di come si programma per dare forma a quello che si ha nella mente.

Seppure può sembrare che programmare non sia difficile, programmare bene non è una passeggiata. Non è solo mettere insieme le istruzioni per dare forma alle visioni, è un lavoro certosino che alla fine dà la soddisfazione pari a quella dell’artista che vede la sua idea farsi realtà.

Come l’artista anche il programmatore deve essere consapevole di sbagliare per raggiungere l’obiettivo prefissato. Errori che si concretizzano a fronte di risultati fallaci su input corretti.

Alle volte questi risultati si evidenziano all’occhio, ma in altri casi non vengono alla luce se non in condizioni particolari, su input non previsti. La complessità degli algoritmi attuali pone l’attenzione sulla ricerca di questi casi e non sull’ignorarli, come spesso avviene.

La ricerca dell’errore è lunga e laboriosa stante la mole di istruzioni necessaria ad implementare gli attuali algoritmi. Per questo l’insegnamento della programmazione deve essere accompagnato dall’etica informatica.

L’etica applicata all’informatica cioè ai rapporti tra l’essere umano e l’algoritmo. L’etica all’uso dei dispositivi programmati dall’uomo che potrebbero fallire e quindi non dare il risultato aspettato.

Chi programma il più delle volte è isolato dal mondo, in una stanza chiusa. Immedesimandosi con il suo computer non è in grado di percepire che un coding errato può causare danni a cose e persone.

Finché si parla della videata blu di Microsoft o di una clessidra che seguita a girare senza fine, si parla di tempo perso, ma quando succedono altre cose allora necessita tornare alla realtà.

Purtroppo il più delle volte i richiami sono bruschi e recenti fatti fanno riflettere.

29 ottobre 2018 un aereo della Lion Air è precipitato, con un alto numero dei morti (189), poco dopo il decollo a Giacarta, in Indonesia. Secondo le indagini condotte dalla Commissione indonesiana per la sicurezza nei trasporti, il volo Boeing 737 Max8, sarebbe caduto a causa di un’errata segnalazione di uno dei sensori dell’aeroplano che serve ai piloti per capire se ci sia o meno il rischio di stallo. Sensori che dialogano con il software di bordo.

A distanza di pochi mesi, 10 marzo 2019, analogo incidente, il disastro aereo della Ethiopian Airlines che ha causato 157 vittime. I due eventi hanno in comune il velivolo, un Boeing 737 Max8 e una situazione analoga dell’accaduto [vedi l’articolo Incidente Ethiopian Airlines, forse dovremmo frenare l’entusiasmo per la tecnologia nei trasporti].

“Sarebbe stata riscontrata un’anomalia di funzionamento legata al sistema Aoa (Angle of attack) che interviene a correzione dell’assetto dell’aeromobile quando questo supera inclinazioni che possano determinarne lo stallo. Quest’ultimo – in parole povere – è la condizione in cui un aeromobile non può sostenersi in aria perché il suo peso non riesce a essere sopportato dalla portanza delle ali, nonostante la spinta che la velocità dovrebbe assicurare”. “Il malfunzionamento di un sensore o errori di programmazione possono determinare l’esecuzione automatica di una manovra correttiva allo stallo quando non ce n’è assolutamente bisogno, indirizzando così l’aereo verso terra”.

L’inchiesta è ancora in corso e non ci sono conclusioni definitive sugli incidenti.

Incidenti pure a Milano dove sono segnalati blocchi anomali sulle linee della metropolitana [Milano, ancora una frenata brusca in metropolitana: due feriti a Cassina de’ Pecchi].

La società ATM, che gestisce il trasporto pubblico a Milano, ha spiegato che: mentre un treno viaggiava a 25 chilometri all’ora il sistema ha rilevato come rosso un semaforo che invece era verde. Il sistema ha quindi imposto al treno una frenata di emergenza a fronte di un’anomalia inesistente.

Sono quindi falsi allarmi in cui il sistema complesso di gestione ha “inchiodato” un treno anche se non c’era un pericolo. Malfunzionamenti di componenti del sistema che rilevano anomalie come “occupazione di binario” che in realtà non esiste. Oppure treni “fantasma” che creano una sorta di interruzione di comunicazioni tra i vari elementi del sistema che gestisce la marcia automatica dei treni e dunque si determinano frenate di emergenza.

Sia nel caso dei Boeing sia nei treni della ATM si tratta di sistemi complessi che non sono stati completamente verificati in tutte le loro possibili situazioni.

Verificare tutte le “righe del codice”, come si dice nel gergo non è facile, ma occorre insegnare a farlo perché la tecnologia è agnostica, sta alla persona stabilire se usarla bene o male.

Scritto da: Marcello Pistilli