domenica 18 luglio 2021

Somme di numeri e riporti

Uno dei primi algoritmi che si imparano a scuola è quello della somma di due numeri. Poichè ai miei tempi esistevano già le calcolatrici tascabili queste operazioni fatte e ripetute tante volte sul quaderno potevano risultare inutili, sia a noi studenti che ai genitori che ci seguivano. Ricordo benissimo le critiche che i genitori si permettevano di fare agli insegnanti circa la loro insistenza nel farci fare questi esercizi, ritenuti appunto inutili. In particolare la polemica si innescava quando questi algoritmi di calcolo si complicavano, ad esempio quando si arrivava alle divisioni con un dividendo a più cifre. Qui infatti scattava il senso protettivo dei genitori verso i propri figli.

Queste critiche mi sono sempre sembrate (anche allora) del tutto infondate, perché basate sulla solita osservazione insensata che "i ragazzi devono studiare le cose utili", trascurando del tutto di analizzare con un minimo di intelligenza il senso del termine "utilità". D'altra parte però da un certo punto in poi ho cominciato a pensare che quegli esercizi un po' noiosi potevano essere già in quel momento associati in modo istruttivo al concetto di algoritmo e alla sua realizzazione pratica, così importante e così "utile" al giorno d'oggi. Forse a quell'età è un po' presto per analizzare a fondo un concetto del genere, ma è certamente possibile trovare almeno il modo di metterlo in evidenza. E vista la sua natura così importante e sfuggente al tempo stesso, credo sia utile farlo emergere il prima possibile. Gli algoritmi nel nostro mondo sono onnipresenti ma invisibili, si rischia di non afferrarne mai l'importanza, anche nell'età adulta. Una lacuna culturale di una certa gravità.

Ad esempio ci si può aiutare a fare le somme cercando di tradurre l'algoritmo in una qualche procedura meccanica che lo esegua automaticamente, con il nostro intervento ridotto al minimo. In fondo la storia dell'informatica può essere raccontata così (in estrema sintesi). Il primo oggetto che viene in mente è l'abaco. La sua funzione principale è quella di trasformare il calcolo in un semplice spostamento di palline e la sua efficacia si poggia essenzialmente sull'uso del sistema di numerazione posizionale. Con opportuno allenamento e pratica quotidiana l'uso di questo strumento rende le operazioni sui numeri relativamente veloci. E' il motivo per cui nella storia è sopravvissuto tanto (anche perché per molto tempo non c'è stato niente di meglio a disposizione).

Ma l'abaco ha un problema che ne rende complicato l'utilizzo, si deve tener conto dei riporti. E' esattamente lo stesso problema principale che si incontra nell'algoritmo "carta e penna" che viene insegnato a scuola. Ed è il problema che si cerca di risolvere attraverso l'uso concatenato di ingranaggi nelle macchine calcolatrici introdotte dalla prima metà del seicento in poi, di cui la famosa "pascalina" ne è il prototipo. Un collegamento meccanico tra le ruote numerate fa sì che la completa rivoluzione di una ruota provochi l'avanzamento di una unità da parte di quella immediatamente alla sua sinistra, automatizzando quindi il riporto. In tal modo l'unica cosa che deve fare l'utilizzatore è impostare gli addendi della somma e affidare l'esecuzione del conto al meccanismo.

Dalle calcolatrici meccaniche ad oggi di miglioramenti ne sono stati fatti, soprattutto sul lato dell'interfaccia uomo-macchina, cioè della facilità dell'utente di impostare la somma, e ovviamente nella velocità e affidabilità dell'operazione eseguita dal dispositivo di calcolo, ad oggi realizzato con componenti elettronici a stato solido. Tra la pascalina e il computer c'è tutta la conoscenza della struttura della materia sviluppata principalmente nel ventesimo secolo. Ma anche nel caso dei dispositivi moderni rimane ovviamente il problema della gestione del riporto, basta guardare la realizzazione di una somma binaria, composta da una funzione XOR (e dal circuito logico corrispondente) e completata in parallelo da una funzione AND (e anch'essa dal circuito logico corrispondente) che calcola appunto il riporto dell'operazione.

In qualche momento della nostra istruzione secondo me sarebbe utile comunicare con argomentazioni ed esempi che non solo la somma è concettualmente un'operazione importante ma lo è anche la sua realizzazione pratica, l'algoritmo che ne descrive la procedura di calcolo (il software) e il dispositivo fisico che la esegue (l'hardware).

Nessun commento: