Pagine

venerdì 20 ottobre 2017

From coding to Borges

by Enrico Nardelli

(versione italiana qua)

As schools and universities resume their activities this autumn, the idea that coding (that is, computer programming) is the new English is gaining ground across the education system.

Bocconi University led the way, making a programming exam compulsory for all undergraduate students. More than three years ago I criticised the linguistic laziness of using an English term in place of its Italian equivalent. I was neither the first nor the last to do so, but I want to reiterate that using our own language means upholding our social and cultural identity. And identities matter for respecting differences. Biology and physics have been teaching us for millions of years that richness in systems emerges only from differentiation.

Several newspapers picked up and amplified this concept — communicatively very simple, but conceptually entirely wrong — and called for the introduction of coding in schools as well. I will explain briefly why this framing is mistaken.

Since computer programming consists of giving instructions to a computer, it can seem as though learning a programming language is the same as learning a new language. Just as it makes sense to learn Chinese or English given that around a billion people speak each, so — with several billion technological objects in the world that are computers — it seems useful to learn "the language of computers."

The problem is that language is merely the tool through which thought is expressed. Not being a linguist, I will not weigh in on whether the Sapir-Whorf hypothesis (the idea that spoken language shapes the speaker's cognitive system) is true or not. But it is perfectly clear to everyone that what determines the success of an entrepreneur or a professional is not so much knowing English as their skills and abilities in their specific field.

Knowing a programming language is therefore not enough to understand the digital world. It is an illusion to think otherwise. Just as a linguistic expression is only a representation of thought, so a computer program is merely the form through which we give concrete shape to "the way a computer scientist thinks" — that is, computational thinking.

What should therefore be taught, in schools even before universities, is the discipline that fosters the development of this way of thinking — that is, informatics. This is necessary for understanding the scientific foundations of the digital world, and for navigating today's society in a more informed and competent way.

However, the loyal reader — or the critical one who asks "let's see what Nardelli has written on this subject" and does a little research — might object: "but you yourself have spoken of computational thinking as a new language for describing the world and of Informatics: the new Latin that everyone loves. Aren't those languages?"

Human communication is, unfortunately, extremely slippery terrain. An expression can in some cases be a chisel that carves exactly the desired profile, but in others it can take on entirely different meanings. The latter can be an advantage that makes it possible to achieve broad consensus, but it becomes a weakness when it comes to establishing shared foundations and agreeing on common action. The world of scientific knowledge uses mathematical language precisely because it is the only one that brings only benefits, without drawbacks. In communication between people, there is no alternative to calm, reasoned discussion.

In those earlier articles I used the term "language" in the sense in which "mathematics" is often used to denote a "language" capable of describing quantities and relationships with absolute precision. To use somewhat philosophical terms, I used "language" as a synonym for "epistemological paradigm" — or, in plain words, as a synonym for "a key to reading reality." So when I say that "computational thinking provides a new language for describing the world," I am saying that through it we can describe certain phenomena "as if" they were computations. This does not necessarily mean that they actually are, but informatics offers new and useful ways of analysing and explaining reality. A prime example is the description of biological processes at the molecular level: the mechanism of DNA replication can also be viewed "as if" it were a computation, and this has offered enormous advantages for understanding it. Examples of the usefulness of the informatics approach can also be found in economics and sociology.

Let me return to the importance of teaching "how a computer scientist thinks" from school age onwards, with an example drawn from mathematics. In primary school we teach children "to do sums" — not so much because the goal is to learn that 3×2=6 or 12÷4=3, that is, the times table, but because it is important for children to understand that if 3 girls have 2 sweets each the total number of sweets is obtained by multiplication, while if 12 biscuits are to be shared among 4 girls the number of biscuits per girl is obtained by division. We are not, therefore, teaching an operational tool so much as a key to understanding reality — "mathematical thinking."

And why should it be taught in schools? other readers might ask, pointing out that children today are all digital natives who already speak "the language of computers." I have already explained that what is at stake is not teaching a language but a way of thinking.

Moreover, as Giorgio Israel had already noted, the expression "digital natives" simply refers to those who were born into a digital society. Extending this term to imply an "innate" capacity for understanding that world is one of the pitfalls of communication that we must be alert to — especially when we are talking about the majority of the school-age population, and not letting ourselves be dazzled by the exceptions that most easily find space in the mass media.

Young people, partly thanks to the greater amount of time available to them compared to adults, and to a curiosity that is still very much alive, often manage to surprise us with these devices. Yet without adequate education, their understanding of a technology more complex than anything else ever built by human hands remains only superficial. Ask in schools what the difference is between Google (the search engine) and the Internet, and you will see. Of course, human beings are intelligent enough to navigate the world around them without a complete rational explanation of how it works — but in this case we are not dealing with a "book of nature" that is hard to read, but with an extremely complex technological infrastructure, built by people for people, where the choice is between shaping your own future or having it imposed on you.

Added to this is the difficulty — the result of deliberate market choices by the manufacturers of modern computing devices — of "getting one's hands dirty" to "see what happens if." In the decades following the Second World War, the country's productive fabric was rebuilt partly because enterprising young people could dismantle, study, and reassemble machinery in order to reproduce and improve it. All of this is impossible with today's plug-and-play smart devices, which is one of the reasons why open solutions both at the hardware level (such as Arduino) and the software level (such as Linux) should be the absolute standard for schools.

I will close by observing that it is not only the complexity of technology that eludes so-called "digital natives" and cannot be acquired through a simple coding course. "Thinking like a computer scientist" (to quote Jeannette Wing) — that is, possessing the intellectual tools that remain after studying informatics — is necessary for understanding that the productive automation brought about by informatics (the so-called "digital enterprise") is radically different from traditional industrial automation.

The latter was essentially the replacement of people's physical actions with the power of machines, under the guidance of human cognitive faculties. Digital automation is the replacement of human intelligence with a machine: this is a dramatic paradigm shift that contemporary society has not yet fully absorbed or understood. One of the essential capacities of human intelligence is adaptability to changes in the environment — the flexibility to handle new or modified requirements. People have an innate ability to evolve in response to change and to learn from their mistakes. Computer systems do not.

To borrow a metaphor introduced by Umberto Eco, computer systems are like that "Funes el memorioso" described by Jorge Luis Borges — a character capable of remembering and correlating every last detail of his existence, yet almost incapable of general ideas, of actual thought. In a world where it is no longer necessary to remember, because any piece of information is easily retrievable; where the manipulation of symbols can be repeated at fantastic speed and negligible cost — the ability to ask the right questions and find innovative solutions is what will make the difference. Informatics (the science, not the technology) is one — though not the only — powerful gymnasium for this. A humanities education is another.

Without either glorifying or demonising the use of digital technologies in the classroom — a complex scenario to be approached with a critical and questioning mindset — it is worth noting that there is scientific evidence that the availability of devices that keep us constantly connected impairs cognitive abilities (the so-called brain drain effect). It is no coincidence that in Silicon Valley — whose inventions have brought the future into the present — the children of the ruling class have for many years now been educated in schools with no smartphones or tablets, but with paper books and laboratories.

--
The original version (in italian) has been published by "Il Fatto Quotidiano" on 17 October 2017.

Dal coding a Borges

di Enrico Nardelli

(english version here)

In questa ripresa autunnale delle attività del mondo dell’istruzione si va diffondendo, dalla scuola all’università, il concetto che il coding (cioè la programmazione informatica) sia il nuovo inglese.

Ha iniziato la Bocconi, imponendo a tutti gli studenti della triennale l’esame di programmazione. Ho stigmatizzato più di tre anni fa la sciatteria linguistica dell’usare un termine inglese al posto dell’equivalente italiano. Non sono stato né il primo né l’ultimo, ma ci tengo a ribadire che usare la nostra lingua significa sostenere la nostra identità sociale e culturale. E le identità sono importanti per rispettare le differenze. La biologia e la fisica da milioni di anni ci insegnano che solo dalla differenziazione nasce la ricchezza dei sistemi.

Diversi giornali hanno ripreso e rilanciato questo concetto, comunicativamente molto semplice, ma concettualmente del tutto sbagliato, ed hanno invocato l’introduzione del coding anche nelle scuole. Spiegherò in modo sintetico perché questa formulazione sia errata.

Poiché la programmazione informatica consiste nel dare istruzioni ad un computer, può sembrare che imparare un linguaggio di programmazione sia la stessa cosa dell’imparare una nuova lingua. Così come con circa un miliardo di persone che parlano cinese o inglese ha senso imparare una di queste lingue, così con diversi miliardi di oggetti tecnologici al mondo che sono computer sembra utile imparare “la lingua dei computer”.

Il problema è che la lingua è solo lo strumento mediante il quale viene espresso il pensiero. Non essendo un linguista, non discuto se l’ipotesi di Sapir-Worf (la lingua parlata condiziona il sistema cognitivo del parlante) sia vera o meno. Ma è ben chiaro a tutti che non è tanto il sapere l’inglese che determina il successo di un imprenditore o di un professionista, quanto le sue competenze e abilità nel suo specifico campo.

Non basta quindi conoscere un linguaggio di programmazione per capire e comprendere il mondo digitale. È illusorio e sbagliato pensarlo. Così come un’espressione linguistica è solo una rappresentazione del pensiero, così un programma informatico è solo la forma mediante cui rendiamo concreto il “modo di pensare di un informatico”, cioè il pensiero computazionale.

Ciò che quindi dovrebbe essere insegnato, nelle scuole ancor prima che nelle università, è la disciplina che favorisce lo sviluppo di questo modo di pensare, cioè l’informatica. Questo è necessario per comprendere le basi scientifiche del mondo digitale, per sapersi orientare nella società odierna in modo più informato e competente.

Però il lettore fedele, o quello critico che si pone la domanda «ma vediamo un po’ che ha scritto il Nardelli su questo tema» e fa un po’ di ricerca, potrebbero obiettare: «scusa, ma tu stesso hai parlato del Pensiero computazionale come nuovo linguaggio per la descrizione del mondo e di Informatica: il nuovo latino che tutti amano». Non sono linguaggi?

Purtroppo la comunicazione umana è terreno estremamente scivoloso. Un’espressione può essere in certi casi uno scalpello che incide esattamente il profilo voluto, ma in altri casi può assumere significati estremamente diversi. Quest’ultimo può essere un vantaggio che permette di ottenere un vasto consenso, ma si trasforma in debolezza quando si tratta di assumere basi condivise e concordare azioni comuni. Il mondo della conoscenza scientifica utilizza un linguaggio matematico proprio perché è l’unico che apporta solo benefici, senza danni. Nella comunicazione tra persone non c’è alternativa alla discussione serena ed argomentata.

In quei precedenti articoli ho usato il termine “linguaggio” nel significato con cui spesso si usa il termine “matematica” per denotare un “linguaggio” in grado di descrivere con assoluta esattezza quantità e relazioni. Per usare termini un po’ filosofici, ho usato “linguaggio” come sinonimo di “paradigma epistemologico”. Detto in parole povere, come sinonimo di “chiave per la lettura della realtà”. Quindi dicendo che “il pensiero computazionale fornisce un nuovo linguaggio per la descrizione del mondo” sto dicendo che mediante di esso è possibile descrivere alcuni fenomeni “come se” fossero delle computazioni. Non è detto che lo siano effettivamente, ma attraverso l’informatica si hanno 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à dell’approccio informatico.

Ritorno sull’importanza di insegnare già nella scuola “come pensa un informatico” con un esempio preso dalla matematica. Nelle elementari insegniamo “a far di conto” non tanto perché il fine sia imparare 3x2=6 o 12:4=3, cioè la tavola pitagorica, quanto perché è importante che il bambino capisca che se 3 bambine hanno 2 caramelle ciascuna il numero totale di caramelle si ottiene con la moltiplicazione, mentre se 12 biscotti devono essere distribuiti a 4 bambine il numero di biscotti per bambina si ottiene con la divisione. Non stiamo quindi tanto insegnando uno strumento operativo, quanto una chiave di comprensione della realtà (“il pensiero matematico”).

E perché andrebbe insegnata nella scuola? potrebbero chiedere altri lettori, osservando che bambine e bambini sono ormai tutti nativi digitali che già parlano “la lingua dei computer”. Ho già spiegato che non si tratta di insegnare un linguaggio ma un modo di pensare.

Inoltre, come aveva già evidenziato Giorgio Israel, l’espressione “nativi digitali” indica semplicemente coloro che sono nati in una società digitale. Estendere tale denotazione a suggerire una loro capacità di comprensione “innata” di tale mondo è una delle insidie della comunicazione di cui dobbiamo essere avvertiti. Soprattutto se parliamo della maggioranza della popolazione scolastica e non ci facciamo abbagliare dalle eccezioni che sono quelle che più facilmente trovano spazio sui mass media.

I ragazzi, grazie anche alla maggiore quantità di tempo a disposizione rispetto agli adulti e ad una curiosità ancora vivissima, spesso riescono con questi dispositivi a sorprenderci. Però, la comprensione che hanno di una tecnologia più complessa di qualunque altra costruita dall’uomo è solo apparente, in assenza di un’adeguata istruzione. Chiedete nelle scuole la differenza tra Google (il motore di ricerca) ed Internet e vedrete. Per carità, gli esseri umani sono così intelligenti che possono usare il mondo intorno a loro anche senza una spiegazione razionale completa di come funziona, ma in questo caso non si tratta di un “libro della natura” difficile da leggere, ma di un’infrastruttura tecnologica estremamente complessa, costruita da persone per le persone, in cui l’alternativa è tra creare il proprio futuro o farselo imporre.

A questo si aggiunge la difficoltà, per precise scelte di mercato dei produttori dei dispositivi informatici moderni, di “mettere le mani in pasta” per “vedere che accade se”. Nei decenni successivi alla seconda guerra mondiale, il tessuto produttivo del Paese è stato riscostruito anche grazie al fatto che una gioventù intraprendente poteva smontare, studiare e rimontare macchinari, per riprodurli e migliorarli. Tutto questo è impossibile con le soluzioni “chiavi in mano” degli strumenti smart di oggi ed è uno dei motivi per i quali, invece soluzioni “aperte” sia a livello hardware (tipo Arduino) che software (tipo Linux) dovrebbero essere lo standard assoluto per la scuola.

Concludo osservando che non è solo la complessità della tecnologia che sfugge ai cosiddetti “nativi digitali” e non può essere conseguita da un semplice corso di coding. Il “pensare come un informatico”, cioè il possedere quegli strumenti intellettuali che rimangono dopo aver studiato informatica, è necessario per capire che l’automazione produttiva derivante dall’informatica (la cosiddetta “impresa digitale”) è radicalmente diversa dalla tradizionale automazione industriale.

Quest’ultima è stata essenzialmente la sostituzione dell’azione fisica delle persone con la forza delle macchine, sotto la guida delle facoltà cognitive delle persone. L’automazione digitale è la sostituzione dell’intelligenza umana con una macchina: si tratta di un drammatico cambiamento di paradigma che la società contemporanea non ha ancora pienamente assorbito e compreso. Una delle capacità essenziali dell’intelligenza umana è l’adattabilità ai cambiamenti dell’ambiente, la flessibilità nel gestire esigenze nuove o modificate. Le persone hanno una capacità innata di evolversi per fronteggiare l’evoluzione e di imparare dagli errori. I sistemi informatici non ce l’hanno.

Riprendendo una metafora introdotta da Umberto Eco, i sistemi informatici sono come quel “Funes el memorioso” descritto da Jorge Luis Borges, che era in grado di ricordare e correlare ogni più minimo dettaglio della sua esistenza ma quasi incapace di idee generali, di pensare. In un mondo in cui non è più necessario ricordare, perché ogni informazione è facilmente reperibile, in cui la manipolazione di simboli può essere ripetuta a velocità fantastica ed a costi irrisori, la capacità di porsi le giuste domande e di trovare soluzioni innovative è ciò che farà la differenza. L’informatica (la scienza, non la tecnologia) è una (non l’unica) palestra potente. L’istruzione umanistica è un’altra.

Senza esaltare né demonizzare l’uso delle tecnologie digitali in classe, scenario complesso da affrontare con un approccio critico-problematico, è bene ricordare che vi sono evidenze scientifiche che la disponibilità di strumenti che ci consentono di essere sempre connessi disturba le capacità cognitive (il cosiddetto effetto brain drain). Non è un caso che in quella Silicon Valley le cui invenzioni hanno reso il futuro presente, da molti anni ormai i figli della classe dirigente studiano in scuole senza smartphone né tablet ma con libri di carta e laboratori.


-----
Versione originale pubblicata su "Il Fatto Quotidiano" il 17 ottobre 2017.