L'informatica studia il trattamento delle informazioni attraverso procedure formalizzate e automatizzabili. La programmazione ne è una parte importante, e non è tutta: contano anche la rappresentazione dei dati, gli algoritmi e l'interpretazione dei risultati.

La domanda da cui parto è che cosa facciamo davvero quando chiediamo a un computer di elaborare qualcosa.

Il computer è lo strumento, l'informazione è il problema

La parola «calcolatore» richiama le operazioni numeriche. Ma un computer elabora anche testi, immagini e qualsiasi altro dato rappresentato secondo convenzioni precise.

Ecco perché ridurre l'informatica alla conoscenza dei dispositivi è sbagliato. La stessa domanda vale per un'app sullo smartphone, un programma scientifico o un servizio che organizza documenti.

In tutti i casi devi decidere quali dati rappresentare, quali operazioni eseguire e come valutare il risultato.

Input, elaborazione e output

Un modello utile distingue tre momenti:

  1. Input: i dati e le condizioni iniziali.
  2. Elaborazione: le operazioni applicate secondo una procedura.
  3. Output: il risultato, da leggere nel suo contesto.

È una semplificazione, perché molti sistemi restano in esecuzione e ricevono dati nuovi in continuazione. Aiuta però a farsi le domande giuste prima ancora di scegliere un linguaggio.

Se un risultato sembra sbagliato, il problema può stare nei dati iniziali, nella procedura o nell'interpretazione. Distinguere i tre livelli è metà della diagnosi.

Che cos'è un algoritmo: l'esempio della ricetta

Un algoritmo descrive passi definiti per svolgere un compito. Riprendo un esempio sentito all'università: preparare un uovo in camicia.

Funziona perché ti obbliga a elencare che cosa serve e in che ordine. Una ricetta scritta per una persona, però, lascia implicite un sacco di conoscenze che una macchina non ha.

«Quanto basta» è comprensibile solo se esiste un criterio per interpretarlo. Quando trasformi un'idea in una procedura eseguibile, devi rendere esplicite condizioni, decisioni e casi particolari — ed è lì che il lavoro diventa interessante.

La programmazione traduce tutto questo in istruzioni eseguibili. Scrivere codice viene dopo, o insieme, alla progettazione del problema.

Dal dato alla conoscenza

Uso l'operazione 2 + 2 = 4. Il calcolo dà un risultato matematico, ma la sua utilità dipende da che cosa stai contando e dalla domanda che ti eri posto.

Non sto dicendo che la matematica non significhi nulla. Sto dicendo che un numero, per guidare una decisione, deve avere un contesto: unità, provenienza, condizioni di validità.

Un sistema può produrre un output formalmente corretto rispetto alle istruzioni e restituirti comunque qualcosa di inutile, se la domanda o i dati erano inadeguati. Succede molto più spesso di quanto si ammetta.

Intelligenza artificiale: evitare una scorciatoia

Collego elaborazione, intelligenza e autocoscienza, e sono tre concetti diversi. Svolgere bene un compito non dimostra la presenza di esperienza soggettiva.

E descrivere gli assistenti digitali come archivi di risposte preregistrate è altrettanto riduttivo: un sistema può generalizzare a partire dai dati di apprendimento, non solo recuperare una risposta identica.

Per il ragionamento che sto facendo non serve risolvere il dibattito sulla coscienza. Serve capire come il sistema arriva a un risultato, quali limiti conosciamo e quali verifiche servono per l'uso che ne vogliamo fare.

Programmare significa scegliere regole, e risponderne

Uso l'immagine di chi programma come di qualcuno che costruisce un piccolo mondo: definisci relazioni, comportamenti, vincoli.

Quella libertà ha conseguenze. Una scelta nel codice decide quali informazioni una persona vedrà o se riuscirà a portare a termine un'attività. Quindi non basta che il programma si avvii: bisogna chiedersi se fa il lavoro previsto e come si comporta quando le condizioni cambiano.

È quello che mi affascina dell'informatica. Una definizione breve apre un campo enorme: rappresentare problemi, costruire procedure, trasformare risultati in strumenti per capire.