Lezione 1 — Concetti di base

Prima di scrivere una riga di codice: cos'è un computer, cos'è un algoritmo, la differenza tradato, informazione e conoscenza, e cos'è un programma.

🗒️ Struttura della lezione (leggere prima di iniziare)

~90 minuti, lavagna + questa pagina proiettata. Nessuna tastiera in questa lezione: si scrive codice dalla lezione 2. Il tempo non è un vincolo rigido — se non si finisce si continua alla lezione successiva. Se i tempi stringono, il primo taglio è l'esercizio "Ordina i libri" (sez. 3): il concetto di algoritmo regge già con la moka, e i libri tornano in lezione 2.

Come usare le domande ❓ in questa pagina: sono domande vere, non retoriche — dopo averle fatte, stare zitti e aspettare anche 10-15 secondi. Nessuna ha una risposta "da sapere": dirglielo la prima volta. Se risponde bene e in fretta, saltare la spiegazione che segue. Se i tempi stringono le domande si accorciano ma non si tagliano: è il tagliare gli esercizi il primo risparmio previsto.

Tenere un foglio "domande rimandate" visibile per le domande fuori scope (IA, hardware, macchina di Turing formale): sono materiale di lezioni successive.

1. Dare istruzioni a chi non sa nulla

Spiega come si fa un caffè con la moka a chi non ha mai visto una moka né un fornello.

Ogni passaggio dato per scontato — "prendi il caffè", "il fuoco giusto" — è un'istruzione che manca. È da qui che si parte.

🗒️ ❓ Domanda + guida (8 min)
Se dovessi spiegare a un alieno come si fa un caffè con la moka, cosa gli diresti?

Farla provare a dettare i passi ad alta voce. Serve solo a farle notare quanto diamo per scontati passaggi impliciti ("prendi il caffè" — da dove? quanto?). Questo aggancio si ricollega più avanti alla definizione di algoritmo (sez. 3) e all'esercizio "Riordina la moka".

2. Cos'è un computer

Il computer non "capisce" nulla: esegue istruzioni molto precise, senza saltare nulla e senza correggere ambiguità da solo. È come un'assistente scrupolosa ma letterale, che fa esattamente quello che le dici — non quello che intendevi.
🗒️ ❓ Domanda + guida sull'origine del computer
Secondo te perché a qualcuno è venuto in mente di costruire una macchina che calcola? Che problema aveva?

Qualunque risposta va bene, serve a farla arrivare da sola a "gli serviva fare tanti conti uguali senza sbagliare". Se dice "per andare più veloce", rilanciare: "solo velocità, o anche altro?" → si apre da sé il tema dell'errore umano. La storia (sotto) diventa la risposta alla sua domanda, non un racconto che subisce.

Non serve nessun dettaglio hardware (CPU, RAM ecc.) in questa lezione — fuori scope, si aggiunge solo se emerge curiosità spontanea. Spunto facoltativo: il libro di riferimento definisce "computer" in senso ampio come qualunque information-processing agent — anche una persona che segue istruzioni meccanicamente è un "computer" (vedi Think and Compute, cap. 1, sezione "What is a computer?").

La storia, in breve

Perché usiamo un computer? — non un elenco di date, un filo che va dall'inizio a oggi.

Certi calcoli erano lunghi, ripetitivi e ad alto rischio di errore — tavole astronomiche (es. il passaggio della cometa di Halley), tavole di conversione per il nuovo sistema metrico di Napoleone. Per farli si usavano squadre di persone chiamate letteralmente "computer" (computer umani): eseguivano a mano, passo dopo passo, sempre la stessa procedura. Lavoro noioso, e un umano stanco o distratto sbaglia.

Schede perforate di un telaio Jacquard

Schede perforate che, cambiando solo la scheda, facevano tessere disegni diversi allo stesso telaio — la stessa macchina, compiti diversi a seconda di cosa le dai in pasto. L'idea che Babbage riprenderà per la sua macchina programmabile.

Ritratto fotografico di Charles Babbage

Charles Babbage nota che affidare calcoli critici a persone stanche è pericoloso — un errore in una tavola numerica stampata (es. per la navigazione) poteva costare vite. Costruisce una macchina meccanica che ripete sempre la stessa sequenza di operazioni, senza stancarsi né distrarsi. Ne completa solo un prototipo parziale, ed è comunque limitata: fa un solo tipo di calcolo, per cambiare compito va riconfigurata fisicamente.

Piano tecnico dell'Analytical Engine, 1840

Insoddisfatto, Babbage disegna una macchina generica, programmabile tramite schede perforate come quelle dei telai Jacquard. L'intuizione chiave, alla base di ogni computer moderno: separare le istruzioni (il programma) dalla macchina che le esegue. Non fu mai costruita: troppo complessa per la meccanica dell'epoca.

Replica della Bombe di Turing, Bletchley Park

L'idea di Babbage resta sulla carta fino alla Seconda Guerra Mondiale. Stavolta il problema non è calcolare tavole ma decifrare messaggi: i tedeschi cifravano le comunicazioni con Enigma, che cambiava chiave ogni giorno tra miliardi di combinazioni. Alan Turing e il suo team a Bletchley Park costruiscono la Bombe: una macchina dedicata a trovare la chiave del giorno abbastanza in fretta da essere militarmente utile.

Fotografia dell'ENIAC

Primo computer elettronico digitale generale e riprogrammabile (con cavi e interruttori, non ancora "software" come lo intendiamo oggi) — la prima realizzazione fisica dell'idea di Babbage, un secolo dopo.

In ogni caso — tavole astronomiche, cifratura, oggi la gestione di dataset enormi — il problema è lo stesso: un compito fatto di passi ripetitivi e precisi, dove un umano è lento e rischia di sbagliare su grande scala. Il computer non è stato inventato perché è "intelligente": è stato inventato perché è affidabile, veloce e instancabile.
🗒️ ❓ Domanda + guida sulle 500 lettere
Se ti dessi 500 lettere digitalizzate e ti chiedessi in quali compare la parola "guerra", perché conviene farlo fare a un computer invece che leggerle noi?

La risposta giusta non è "perché è intelligente" ma "perché ripete la stessa cosa 500 volte senza stancarsi né distrarsi". Se risponde "perché è più bravo", correggere subito: il computer non sa cosa sia una guerra, sa solo confrontare sequenze di lettere. È anche l'aggancio a quello che farà davvero nei corsi.

Alan Turing a Princeton, 1936
Alan Turing, Princeton 1936 — Wikimedia Commons

Turing non si è limitato a decifrare Enigma: ha anche dato la prima definizione matematica rigorosa di "calcolare" — e da lì ha dimostrato cheesistono domande che nessun computer, per quanto potente, potrà mai risolvere (il cosiddetto halting problem). Affidabile e veloce non vuol dire onnipotente: anche il computer ha limiti dimostrati, non solo pratici ma matematici.

🗒️ Domande che può fare lei — sezione 2
  • "Ma allora ChatGPT cosa fa? Quello sembra capire." — La domanda più probabile di tutta la lezione. Risposta breve: prevede la parola successiva più probabile sulla base di enormi quantità di testo; è ancora esecuzione di una procedura, non comprensione. Rimandare a una lezione dedicata.
  • "Quindi il computer non sbaglia mai?" — Da valorizzare: esegue senza errori le istruzioni che riceve; se le istruzioni sono sbagliate, ripete l'errore 500 volte senza accorgersene. Seme del debugging (lezione 2+).
  • "Come fa a 'capire' le schede perforate / l'elettricità?" — ⚠️ Cassetto hardware, il rischio più grosso della lezione: può mangiare 20 minuti. Risposta minima: buco/non-buco, corrente/non-corrente, due stati. Se insiste, diventa un argomento a sé.
  • "Chi erano i 'computer' umani?" — Probabile dato il profilo umanistico: in maggioranza donne, pagate poco, invisibili — si ripete a Bletchley Park e alla NASA. Ottimo ponte verso Ada Lovelace nella sezione dopo.
  • "Se esistono problemi irrisolvibili, come fanno antivirus e compilatori?"— Improbabile ma possibile: approssimano, rispondono "forse" invece di "sì/no". Fermarsi lì.

3. Algoritmo

Un algoritmo è una sequenza finita di passi precisi che risolve un problema, sempre nello stesso modo: è finito, è preciso, è ripetibile.
Un algoritmo come sequenza di passi da un problema a una soluzioneProblemaPasso 1Passo 2Passo 3Soluzione
Un algoritmo attraversa una sequenza finita di passi precisi, sempre nello stesso ordine.
Finito

Deve arrivare a una fine. La moka ha un numero preciso di passi: non si ripete all'infinito.

Preciso

Ogni passo dice esattamente cosa fare. "Metti il caffè" da solo non basta: quanto? dove?

Ripetibile

Seguendo sempre la stessa procedura, il risultato è lo stesso ogni volta — che la faccia io o tu.

🖱️ Riordina la moka

Trascina i passi giusti nella sequenza, nell'ordine corretto. Alcune carte sono scritte in modo ambiguo ("metti il caffè") e vanno scartate a favore della versione precisa.

Ricostruisci la procedura per fare il caffè con la moka, passo dopo passo.

Banca dei passi

Avvita la parte superiore alla base, senza stringere il filtro.
Riempi il filtro con caffè macinato, senza pressarlo, livellando la superficie.
Metti il caffè. (dove? quanto?)
Quando il caffè sale e gorgoglia, spegni il fuoco.
Riempi la base con acqua fredda fino alla valvolina di sicurezza.
Metti la moka sul fuoco basso, con il coperchio aperto.
Riempi d'acqua. (quanta? fino a dove?)
Aspetta che sia pronto. (come si capisce "pronto"?)
Svita la moka in due parti: base e parte superiore.
Inserisci il filtro a imbuto nella base.

Sequenza (trascina qui, nell'ordine giusto)

🗒️ ❓ Domanda + guida sul bar
"Cammina dritto finché non trovi un bar" è un algoritmo?

La risposta interessante è "dipende": è preciso e ripetibile, ma non è detto che finisca (se il bar non c'è si cammina per sempre). Serve a far vedere che le tre proprietà non sono una lista da imparare, sono un test da applicare. Variante se fa fatica:"e 'aggiungi un po' di sale'?" (qui salta la precisione).

🖱️ Ordina i libri

Clicca due libri per confrontarli, poi decidi se scambiarli. La pagina conta i confronti.

Pavese
Eco
Woolf
Calvino
Morante
Ginzburg

Confronti fatti: 0

Clicca due libri per confrontarli.

🗒️ ❓ Domanda di apertura + guida all'esercizio dei libri
Come faresti tu a mettere in ordine alfabetico una pila di 20 libri? Spiegamelo come lo spiegheresti all'alieno.

Non correggere il metodo che inventa (qualunque esso sia, sarà un algoritmo di ordinamento vero); chiederle solo "quante volte hai dovuto confrontare due libri?", la domanda da cui nasce l'efficienza a Computational Management of Data.

Se i tempi stringono, questo è il primo esercizio da tagliare (il concetto regge già con la moka; i libri tornano in lezione 2).

Ritratto di Ada Lovelace, c. 1840
Ada Lovelace, c. 1840 — Wikimedia Commons

La prima programmatrice della storia è una donna, Ada Lovelace, figlia del poeta Lord Byron — non un'informatica di formazione. Nel 1843 scrisse il primo "programma" mai concepito: istruzioni per calcolare i numeri di Bernoulli con l'Analytical Engine di Babbage — una macchina che esisteva solo su carta. Intuì anche che una macchina del genere avrebbe potuto manipolare non solo numeri ma qualsiasi cosa esprimibile con regole formali, persino comporre musica, disse lei, un secolo prima che esistessero i computer veri.

La programmazione non nasce come atto tecnico: nasce comeatto di immaginazione applicata alla logica.

🗒️ Domande che può fare lei — sezione 3

Perché Ada Lovelace apre questa sezione: sgonfia da sola l'idea "la programmazione è roba da matematici/ingegneri" — nessun bisogno di dirlo esplicitamente, basta lasciarla emergere se lei stessa fa il collegamento.

  • "Algoritmo e programma sono la stessa cosa?" — Molto probabile, e la risposta è la sezione 5: l'algoritmo è la procedura, il programma è la sua scrittura in un linguaggio eseguibile. Se arriva presto, anticipare in una riga e andare avanti.
  • "Ma 'algoritmo' non è quella cosa di Instagram/TikTok?" — Sì, stessa parola: una procedura che decide cosa mostrarti. Buona occasione per sgonfiare il termine.
  • "Se due persone ordinano i libri in modo diverso, sono due algoritmi diversi?" — Sì: stesso risultato, numero di confronti diverso. È la porta dell'efficienza; se la domanda arriva da lei, la sezione ha funzionato.
  • "Il mio metodo per i libri è sbagliato?" — No, e va detto esplicitamente: non è sbagliato, è più o meno costoso.

4. Dato, informazione, conoscenza

🗒️ ❓ Domanda di apertura (piramide DIKW)
Cosa vuol dire "28"?

Scrivere alla lavagna solo 28 e fare la domanda. Lei chiederà (o dovrà chiedere) 28 di cosa: è esattamente il punto, un dato da solo non significa niente, serve il contesto. Rilancio: "28 sulla bilancia e 28 sul termometro sono lo stesso dato?"

Lo stesso numero isolato non dice nulla: è il contesto a trasformarlo in qualcosa di utilizzabile — e collegarlo ad altra informazione lo trasforma ancora, in qualcosa che si può usare per decidere.
Piramide Dato, Informazione, ConoscenzaDatoInformazioneConoscenza
Ogni livello si costruisce mettendo in relazione quello sotto.
Dato

Numeri/parole isolate, senza contesto. Da soli non dicono nulla.

Informazione

I dati messi in relazione/contesto iniziano a dire qualcosa.

Conoscenza

Richiede di collegare l'informazione ad altre informazioni/esperienza pregressa.

🖱️ Piramide DIKW

Trascina ogni cartellino al livello giusto: Dato, Informazione o Conoscenza.

Cartellini da collocare

1.200
Bologna
28
03/2027
Marzo 2027 è stato insolitamente caldo rispetto alla media stagionale
La temperatura a Bologna a marzo 2027 è stata di 28°C
Questo archivio è più ricco della media per il periodo
In questo archivio ci sono 1.200 lettere

Conoscenza

Informazione

Dato

Questa distinzione è il cuore di Information Modeling (come rappresentare dati/informazioni) e Knowledge Representation (come rappresentare la conoscenza in modo che una macchina possa "ragionarci sopra", es. i grafi della conoscenza).

🗒️ Domande che può fare lei — sezione 4
  • "Il confine tra informazione e conoscenza chi lo decide?" — Domanda da umanista, molto probabile. Risposta onesta: è sfumato e dipende da cosa vuoi farci; la piramide è uno strumento per ragionare, non una legge.
  • "E la 'saggezza'? La piramide non ha quattro livelli?" — Se l'ha già incontrata altrove: esiste, la tagliamo perché non aggiunge nulla di operativo.
  • "Un dato sbagliato è ancora un dato?" — Sì: 28 resta un dato anche se lo strumento era rotto. Apre (senza nominarla) la qualità dei dati.
  • "Un'immagine è un dato? Una lettera manoscritta?" — Molto probabile nel suo dominio. Sì — digitalizzare vuol dire decidere cosa di quell'oggetto diventa dato (il testo? il layout? la macchia d'inchiostro?). Una riga sola: è il cuore di Information Modeling, non va bruciato adesso.

5. Programma e linguaggio

Un programma è un algoritmo scritto in un linguaggio che il computer può eseguire senza ambiguità — per questo i linguaggi di programmazione sono rigidi (sintassi), a differenza dell'italiano che tollera ambiguità.
🗒️ ❓ Domanda + guida sul cane
Se dovessi far eseguire a una macchina l'ordine "porta il cane fuori se piove", cosa dovresti spiegarle che a me non serve spiegare?

Si arriva a "cosa vuol dire piove" e a "come fa a saperlo". Poi mostrare che in italiano la frase è chiara; un computer ha bisogno di sapere esattamente cosa vuol dire "piove" (una misura di pioggia > 0? un booleano true/false?).

Diagramma di flusso: condizione sul semaforoSemaforo rosso?FermatinoVai
Una persona capisce "fermati se è rosso" al volo. Un programma ha bisogno di sapere esattamente cosa vuol dire "rosso": un valore letto da un sensore? uno dei tre stati di una variabile?

"I shot an elephant in my pyjamas."

Ero io a indossare il pigiama mentre sparavo all'elefante.
Era l'elefante a indossare il pigiama.

Versione senza ambiguità: Indossando il mio pigiama, ho sparato a un elefante.

Un linguaggio naturale tollera letture multiple; un linguaggio di programmazione è costruito apposta per non permetterlo.

🗒️ Ponte alla lezione 2 (per te)

La prossima volta si inizia a scrivere le prime istruzioni vere in Python — riusando esattamente gli esempi della moka e dei libri come primi algoritmi da "tradurre" in codice. Vale la pena dirlo a voce qui, a chiusura sezione, per far vedere che tutto quello fatto oggi torna utile subito.

🗒️ Domande che può fare lei — sezione 5
  • "Quanti linguaggi esistono? Perché non ne basta uno?" — Centinaia, ma ne servono pochi; nascono per scopi diversi, e quello che impari nel primo non si butta.
  • "Perché proprio Python?" — È il più vicino all'inglese, è lo standard di fatto nelle digital humanities, ed è quello usato a Computational Management of Data.
  • "Devo imparare la sintassi a memoria?" — Ansia tipica: no, la documentazione si guarda sempre, anche dopo vent'anni. Dirlo presto e con convinzione.
  • "Il computer capisce Python direttamente?" — No, viene tradotto. Fermarsi lì: compilatore/interprete non sono roba da lezione 1.

6. Quattro idee, in breve

Computer

Esegue istruzioni precise, senza saltare nulla e senza correggere ambiguità da solo.

Algoritmo

Sequenza finita di passi precisi che risolve un problema, sempre nello stesso modo.

Dato → Informazione → Conoscenza

Il contesto è quello che trasforma un numero isolato in qualcosa di utilizzabile.

Programma

Un algoritmo scritto in un linguaggio che il computer esegue senza ambiguità.

🗒️ ❓ Le 4 domande di verifica finale
Cosa fa un computer quando esegue un programma?
Cos'è un algoritmo, con un esempio a tua scelta (diverso dalla moka)?
Un esempio di dato, uno di informazione, uno di conoscenza, tutti collegati tra loro.
Che differenza c'è tra l'algoritmo della moka detto a parole e un programma?

Se risponde con sicurezza a queste 4 domande, l'obiettivo della lezione è raggiunto.

🗒️ Domande emotive trasversali (tenerle pronte per tutta la lezione)
  • "Non sono portata per la matematica." — Usare Ada Lovelace come risposta, non come aneddoto: programmare è scomporre un problema in passi, non fare conti.
  • "A cosa mi serve per una laurea umanistica?" — Risposta concreta: le 500 lettere della sezione 2 sono una tesi che altrimenti non faresti.
  • "Quanto tempo ci vuole per imparare?" — Non un numero: "per fare cose utili, prima di quanto credi; per smettere di sentirti in difficoltà, dopo. È normale."
  • "Se tanto poi il codice lo scrive l'IA, perché impararlo?" — Da prendere sul serio: per sapere se quello che ti restituisce è giusto. Poi avanti.