mercoledì 11 febbraio 2026

Corso Fondamenti di Informatica e Reti: 6 Reti di computer e Internet


6 Reti di computer e Internet

Introduzione

Prova a pensare alla vita quotidiana senza reti informatiche: niente messaggi WhatsApp, niente musica in streaming, niente ricerche su Google né mappe che ci guidano per strada. È difficile persino immaginarlo, vero? Questo perché le reti sono diventate l’infrastruttura invisibile della civiltà digitale.
Eppure, non sono qualcosa di “magico”: dietro a quel semplice gesto di cliccare un link o avviare una chiamata, c’è un complesso universo di regole, tecnologie e meccanismi matematici.

Studiare le reti significa scoprire questo mondo sotterraneo, capirne i principi e – soprattutto – acquisire la capacità di guardare la tecnologia con occhi nuovi, consapevoli. È un po’ come smettere di essere semplici passeggeri di un treno per diventare macchinisti: non solo si viaggia, ma si conosce il perché e il come il viaggio è possibile.

1. Cos’è una rete di computer

Una rete è, in sostanza, un insieme di dispositivi interconnessi. Non parliamo solo di computer: smartphone, stampanti, server, telecamere di sorveglianza, smart TV, sensori IoT… persino elettrodomestici come frigoriferi e lavatrici ormai fanno parte della rete.

Immaginala come una città:

  • i dispositivi sono gli abitanti,
  • i cavi e i segnali radio sono le strade,
  • i protocolli sono il codice della strada,
  • e i router e switch sono i semafori e gli incroci intelligenti che regolano il traffico.

Le reti possono essere cablate, con fili di rame o fibra ottica, oppure wireless, dove i dati viaggiano nell’aria sotto forma di onde radio. La fibra ottica, in particolare, è un piccolo miracolo della fisica: i dati viaggiano come impulsi di luce che rimbalzano all’interno di un sottilissimo filo di vetro, raggiungendo velocità vicine a quella della luce.

👉 Esempio pratico: quando invii una foto via Wi-Fi a un amico seduto accanto a te, quella foto non “salta” direttamente da un telefono all’altro. Prima viene suddivisa in pacchetti, ciascuno con una sua etichetta di destinazione, poi attraversa il router di casa (che sa come instradarli) e infine arriva al dispositivo corretto, dove i pacchetti vengono ricomposti come pezzi di un puzzle.

2. Tipologie di rete

LAN – reti locali

Le LAN (Local Area Network) sono reti di piccole dimensioni. Immagina la rete della tua scuola: ogni aula ha dei computer, tutti collegati tra loro e a un server centrale. Le LAN sono veloci (anche oltre 1 Gbps con gli standard moderni) e sicure perché racchiuse in un ambiente ristretto.

WAN – reti geografiche

Le WAN (Wide Area Network) collegano intere città o nazioni. Le dorsali in fibra ottica transoceanica, lunghe migliaia di chilometri, sono l’ossatura di Internet. Curiosità: molti non sanno che il 99% del traffico Internet mondiale viaggia in cavi sottomarini, non via satellite.

WLAN – reti locali wireless

Le WLAN sono LAN senza fili, basate sul Wi-Fi. Qui entra in gioco la fisica delle onde radio: la frequenza (2,4 GHz o 5 GHz) determina quanta distanza si copre e a che velocità. Con Wi-Fi 6 si possono superare i 9 Gbps in condizioni ottimali.

Topologie di rete

La topologia è la forma con cui i dispositivi si collegano.

  • A stella → un nodo centrale gestisce tutto.
  • A bus → un unico cavo, condiviso da tutti.
  • Ad anello → i dati passano di mano in mano.
  • A maglia (mesh) → ogni nodo può parlarsi direttamente con molti altri.

👉 Formula: per calcolare i collegamenti necessari in una rete mesh completa:

L = \frac{n(n-1)}{2}

3. I protagonisti della rete

Ogni rete è popolata da dispositivi con ruoli precisi:

  • Modem → il “traduttore”: trasforma i segnali digitali in segnali adatti al mezzo fisico (rame, fibra, radio).
  • Router → il “navigatore”: legge gli indirizzi IP e sceglie la strada migliore per ciascun pacchetto.
  • Switch → il “vigile urbano”: consegna i pacchetti solo al dispositivo corretto, riducendo collisioni.
  • Access Point → l’“antenna radio”: estende la rete wireless.
  • NIC (Network Interface Card) → la “carta d’identità”: permette a ogni dispositivo di entrare nella rete.

4. Indirizzi, nomi e protocolli

Come nella vita reale, anche in rete serve un indirizzo univoco.

Indirizzi IP

  • IPv4 → 32 bit, circa 4 miliardi di indirizzi (ormai quasi esauriti).
  • IPv6 → 128 bit, un numero talmente grande da poter assegnare miliardi di indirizzi a ogni granello di sabbia della Terra!

Subnet mask

Permette di dividere una rete grande in sottoreti più piccole.
Esempio: IP 192.168.1.10 con subnet 255.255.255.0 → la rete è 192.168.1.0, l’host è .10.

DNS

Senza il DNS, dovremmo digitare IP numerici anziché nomi di dominio. È un sistema gerarchico e distribuito: i server root sono i “capitani” che conoscono i percorsi verso ogni dominio.

Protocolli

I protocolli sono lingue condivise.

  • IP → spedisce pacchetti.
  • TCP → garantisce ordine e affidabilità.
  • UDP → veloce, ma senza controlli.
  • HTTP/HTTPS → navigazione web.
  • SMTP/IMAP/POP3 → email.
  • FTP/SFTP → trasferimento file.

👉 Curiosità: il modello TCP/IP nasce negli anni ’70, finanziato dal Dipartimento della Difesa USA per garantire comunicazioni resistenti anche in caso di guasto di parti della rete.

5. Il modello client-server

Ogni volta che digiti un URL, entri nel modello client-server.
Il client (tuo browser) invia una richiesta, il server (un computer remoto, spesso in un data center) elabora e risponde.

Dietro quel semplice gesto, avviene un percorso intricato:

  1. Risoluzione del nome tramite DNS.
  2. Instradamento dei pacchetti attraverso router e dorsali.
  3. Riassemblaggio sul tuo dispositivo.
  4. Visualizzazione finale nel browser.

Conclusione

Studiare le reti è come esplorare il sistema nervoso del mondo moderno. Ogni pacchetto, ogni protocollo, ogni router è una sinapsi tecnologica che collega persone, aziende e nazioni.

Dietro la semplicità di un clic si nasconde un’opera ingegneristica colossale, frutto di decenni di ricerca e collaborazione internazionale. Comprenderla non è solo questione di tecnica: è imparare a leggere la realtà digitale in cui siamo immersi, con uno sguardo critico e consapevole.


martedì 10 febbraio 2026

Corso Fondamenti di Informatica e Reti: 5 Sistemi operativi e gestione risorse

 

5 Sistemi Operativi e Gestione delle Risorse

Un sistema operativo (SO o OS dall’inglese Operating System) è il cuore del computer, il “direttore d’orchestra” che coordina CPU, memoria, dispositivi e programmi. Senza di esso, un computer sarebbe soltanto un insieme di componenti hardware incapaci di dialogare tra loro o con l’utente. Il sistema operativo svolge funzioni fondamentali come la gestione dei processi, della memoria, dei file e delle periferiche, fornendo un ambiente stabile e sicuro in cui i programmi possono funzionare senza interferire l’uno con l’altro.

1. Perché esiste un sistema operativo

Immagina di voler scrivere un documento mentre contemporaneamente ascolti musica e navighi sul web. Senza un SO, dovresti gestire manualmente ogni risorsa: dire alla CPU quando passare da un programma all’altro, decidere dove salvare i dati in RAM, comunicare direttamente con ogni dispositivo. Il sistema operativo automatizza tutto questo, orchestrando le risorse e permettendo agli utenti di concentrarsi sui propri compiti.

Il SO si occupa di creare, sospendere e terminare programmi (i processi), assegna memoria e spazio su disco, dialoga con periferiche come stampanti, tastiere e GPU tramite i driver, organizza i dati in file e cartelle, e garantisce sicurezza tramite permessi e gestione utenti. Inoltre, fornisce interfacce diverse: le GUI, cioè le interfacce grafiche con finestre e icone, e le CLI, interfacce testuali precise e automatizzabili tramite comandi.

2. Processi, thread e il tempo del computer

Un processo è un programma in esecuzione con il suo stato interno: registri della CPU, memoria utilizzata e risorse aperte. All’interno di un processo, i thread rappresentano flussi di esecuzione separati ma condividono la stessa memoria.

Ogni processo passa attraverso vari stati: Nuovo, quando viene creato; Pronto, in attesa della CPU; In esecuzione, quando sta usando la CPU; Attesa I/O, quando aspetta il completamento di un’operazione di input/output; infine Terminato, quando ha completato il lavoro. Tutte queste informazioni sono conservate nel Process Control Block (PCB), mentre il context switch è il passaggio della CPU da un processo all’altro, un’operazione necessaria ma che richiede tempo.

Scheduling dei processi

Il sistema operativo deve decidere quale processo eseguire in ogni istante. Esistono diversi metodi:

  • FCFS (First Come First Served): il primo processo arrivato è il primo a essere eseguito. È semplice ma può generare lunghe attese.
  • Round Robin: ogni processo riceve un intervallo di tempo fisso, il quantum, e poi passa al successivo. È ideale per interattività e multitasking.
  • Priorità: processi più importanti eseguono prima; per evitare che i processi meno importanti restino bloccati a lungo (starvation) si può applicare l’aging, cioè aumentare progressivamente la priorità dei processi in attesa.

Concorrenza e sincronizzazione

Quando più thread accedono a dati condivisi, possono verificarsi gare di corsa (race conditions). Per evitarle si usano strumenti come mutex (blocchi), semafori e monitor, che regolano l’accesso alle risorse.
Un caso estremo è il deadlock, in cui più processi rimangono bloccati in attesa reciproca di risorse. Le condizioni che lo causano sono quattro: mutua esclusione, hold-and-wait, non-preemption e attesa circolare. Il SO può prevenire, evitare o rilevare e recuperare da deadlock.

3. La memoria del computer: RAM, cache e pagine

La memoria è il luogo dove il computer conserva temporaneamente i dati e i programmi in esecuzione. Possiamo immaginarla come una scrivania: più grande e organizzata è, più agevolmente possiamo lavorare. La memoria non è unica: esiste una gerarchia basata su velocità e vicinanza alla CPU:

  • Registri della CPU: piccolissimi spazi interni alla CPU stessa, usati per calcoli immediati. Sono ultraveloce, ma molto limitati in dimensione.
  • Cache (L1/L2/L3): memoria interna più ampia dei registri, ma sempre veloce. Serve per memorizzare dati e istruzioni usati di frequente, così da non doverli richiamare dalla RAM ogni volta.
  • RAM (Random Access Memory): memoria principale del computer. Qui risiedono i programmi attivi e i dati che la CPU deve usare subito. La RAM è volatile, cioè si svuota quando spegni il computer.
  • Disco/SSD: memoria permanente, più lenta, dove si salvano file e programmi a lungo termine.

Memoria virtuale

Ogni processo “vede” uno spazio di memoria continuo e proprio, chiamato spazio di indirizzamento virtuale, anche se in realtà i dati possono essere sparsi tra RAM e disco. Questo permette di far sembrare a ciascun programma di avere più memoria di quella fisica disponibile. Quando un programma accede a una parte della memoria non presente in RAM, si verifica un page fault: il SO carica quella pagina dal disco nella RAM.

Parafrasi: page fault = il computer “si accorge” che il dato richiesto non è in scrivania (RAM), quindi lo va a prendere dall’archivio (disco).

La gestione della memoria avviene con pagine (blocchi di memoria di dimensione fissa, ad esempio 4 KB) e frame (spazi in RAM che accolgono le pagine). Per velocizzare, la CPU usa una cache speciale chiamata TLB (Translation Lookaside Buffer), che ricorda dove si trovano le pagine. La memoria è protetta: ogni processo non può leggere o scrivere in aree di altri processi, evitando crash e violazioni.

Frammentazione: problema comune della memoria. Può essere:

  • Interna: un blocco è più grande del necessario e il resto rimane inutilizzato.
  • Esterna: piccoli spazi vuoti sparsi tra blocchi occupati, difficile da riutilizzare.

4. File system: organizzare i dati

Un file è un insieme di informazioni, di solito sequenze di byte, con associate alcune proprietà chiamate metadati, ad esempio:

  • dimensione
  • data di creazione/modifica
  • permessi
  • proprietario

Le cartelle (directory) contengono file e altre cartelle, permettendo di organizzare i dati. Il percorso di un file può essere assoluto (dalla radice del file system, es. /home/alex/file.txt) o relativo (rispetto alla cartella corrente, es. ../documenti/file.txt).

In Unix/Linux i permessi determinano chi può leggere, scrivere o eseguire un file: r = read (lettura), w = write (scrittura), x = execute (esecuzione). La sequenza rwxr-x--- significa:

  • Proprietario: lettura, scrittura, esecuzione
  • Gruppo: lettura e esecuzione
  • Altri: nessun accesso

Esistono collegamenti per riferirsi a file senza duplicarli:

  • Hard link: due nomi diversi che puntano allo stesso file fisico.
  • Symlink (link simbolico): puntatore a un altro file, simile a un “segnaposto”.

File system comuni:

  • ext4 (Linux)
  • NTFS (Windows)
  • APFS (macOS)
  • FAT32/exFAT (portabilità tra sistemi diversi)

Journaling: sistema che registra le operazioni recenti per prevenire perdita di dati in caso di crash.

Perfetto! Riscrivo dal punto 5 in avanti usando uno stile discorsivo e guidato, con spiegazioni approfondite dei concetti e senza attività operative. Il testo termina con un test di 20 domande, seguito da soluzioni dettagliate e spiegate punto per punto.

5. Interfacce: GUI e CLI

Quando parliamo di interfacce del sistema operativo, ci riferiamo al modo con cui l’utente comunica con il computer. Esistono due approcci principali: la GUI (Graphical User Interface) e la CLI (Command Line Interface).

La GUI è l’interfaccia grafica. È quella che vediamo quotidianamente sui nostri desktop: finestre, icone, menu, pulsanti. Il vantaggio principale della GUI è che rende intuitivo l’uso del computer. Possiamo cliccare, trascinare e osservare visivamente cosa succede. È particolarmente utile per chi esegue operazioni occasionali, come aprire un documento o spostare file tra cartelle, perché non richiede di ricordare comandi specifici. Tuttavia, la GUI può diventare lenta per operazioni ripetitive o complesse e non è sempre facilmente automatizzabile.

La CLI, invece, è basata su testo. L’utente scrive comandi che il sistema operativo interpreta. Anche se all’inizio può sembrare più difficile, la CLI è incredibilmente potente. Permette di eseguire operazioni complesse con precisione e di automatizzare attività tramite script. Concetti fondamentali della CLI includono:

  • stdout e stderr: flussi di output del sistema. Lo stdout contiene l’output normale di un comando, mentre lo stderr raccoglie messaggi di errore.
  • Exit code: ogni comando restituisce un numero che indica il successo (0) o il tipo di errore (1, 2, ecc.). Utile per creare controlli nei script.
  • Pipe (|): permette di collegare l’output di un comando all’input di un altro, formando catene di operazioni.
  • Redirezioni (>, >>, <): consentono di salvare l’output di un comando su un file o leggere l’input da un file invece che dalla tastiera.
  • Variabili d’ambiente (es. PATH): definiscono informazioni globali, come dove cercare i programmi eseguibili.

La GUI è più immediata e visiva, mentre la CLI richiede una maggiore conoscenza dei comandi ma consente un controllo molto più preciso e ripetibile delle operazioni del sistema operativo.

6. Multitasking e servizi di sistema

Il multitasking è la capacità di un sistema operativo di eseguire più programmi contemporaneamente. Questo non significa che la CPU faccia più cose allo stesso istante, ma che alterna rapidamente l’esecuzione dei processi, dando l’impressione di simultaneità.

Esistono due modalità principali di multitasking:

  • Cooperativo: i processi cedono volontariamente la CPU quando hanno finito di lavorare o quando attendono eventi esterni. Era comune nei primi sistemi operativi, ma può portare a blocchi se un processo si comporta male.
  • Preemptive: il sistema operativo interrompe automaticamente i processi dopo un certo intervallo di tempo (quantum) e assegna la CPU ad altri processi. Questa modalità è quella dei moderni sistemi operativi ed evita che un singolo programma monopolizzi la CPU.

I servizi o daemon sono programmi che girano in background e svolgono attività continue, come gestire la stampa, la rete o i backup. Non hanno un’interfaccia diretta con l’utente, ma sono essenziali per il funzionamento del sistema. L’avvio di un computer segue una sequenza precisa: il bootloader carica il kernel, il kernel avvia i servizi di base e solo alla fine viene presentata l’interfaccia utente per login e lavoro quotidiano.

7. Driver, aggiornamenti e sicurezza

Un driver è un software che permette al sistema operativo di comunicare correttamente con l’hardware. Senza driver, dispositivi come stampanti, schede video o dischi potrebbero non funzionare o essere utilizzabili solo in modo limitato. Ogni periferica richiede driver specifici che traducono i comandi del sistema operativo in istruzioni comprensibili dall’hardware.

Gli aggiornamenti del sistema operativo includono patch di sicurezza, correzioni di bug e nuove funzionalità. È fondamentale mantenere il sistema aggiornato per proteggersi da vulnerabilità e migliorare la stabilità. Le buone pratiche di sicurezza includono backup regolari e lettura delle note di rilascio prima di applicare aggiornamenti importanti.

8. Virtualizzazione e container

La virtualizzazione consente di far girare un intero sistema operativo all’interno di un altro, creando una macchina virtuale (VM). In pratica, il software simula l’hardware del computer, permettendo di eseguire sistemi diversi contemporaneamente senza interferire tra loro.

I container, invece, isolano singole applicazioni sullo stesso kernel del sistema operativo. Sono molto leggeri e veloci da avviare, e vengono utilizzati soprattutto nello sviluppo e nella distribuzione di software moderno, perché permettono di garantire che un’applicazione funzioni nello stesso modo su computer diversi.

9. Test di verifica: 20 domande

1. Il context switch è…
A. Cambio di modalità video
B. Sostituzione di un driver
C. Salvataggio/caricamento dello stato tra processi
D. Formattazione della memoria

2. La memoria virtuale permette…
A. Di aumentare fisicamente la RAM
B. Ogni processo di vedere uno spazio di indirizzamento proprio
C. Di sostituire la cache L1
D. Di disabilitare la protezione della memoria

3. Che cosa succede quando si verifica un page fault?
A. Il computer si blocca
B. Il SO carica la pagina richiesta dal disco nella RAM
C. La RAM viene formattata
D. La CPU aumenta la frequenza

4. La cache L1 è…
A. Memoria lenta su disco
B. Memoria veloce interna alla CPU
C. Memoria RAM aggiuntiva
D. Un registro del disco

5. La frammentazione interna si verifica quando…
A. Ci sono blocchi troppo grandi rispetto ai dati
B. Ci sono buchi sparsi tra blocchi occupati
C. Il SO non trova la RAM
D. La CPU si blocca

6. La frammentazione esterna si verifica quando…
A. Ci sono blocchi troppo grandi rispetto ai dati
B. Ci sono spazi vuoti sparsi tra blocchi occupati
C. La RAM non è sufficiente
D. La CPU non ha registri disponibili

7. Symlink vs hard link: quale affermazione è corretta?
A. Symlink = puntatore simbolico, Hard link = riferimento diretto allo stesso file
B. Symlink = file copiato, Hard link = link di rete
C. Symlink = file temporaneo, Hard link = file permanente
D. Nessuna

8. La GUI è…
A. Solo testuale
B. Basata su finestre, icone e menu
C. Sempre più potente della CLI
D. Una memoria virtuale

9. La CLI consente…
A. Solo comandi base
B. Controllo preciso, automazione e scripting
C. Lavorare solo con GUI
D. Non permette pipe

10. Round Robin è utile per…
A. Batch processing
B. GPU computing
C. Reattività dei sistemi interattivi
D. Copiare file

11. FCFS può causare…
A. Alta reattività
B. Latenza lunga per processi successivi
C. Deadlock
D. Nessuna differenza

12. Race condition è…
A. Un tipo di memoria
B. Quando più processi accedono contemporaneamente a dati condivisi senza sincronizzazione
C. Una scheda video
D. Un comando CLI

13. Mutex e semafori servono a…
A. Aumentare RAM
B. Evitare race condition e controllare accesso a risorse condivise
C. Creare file
D. Bloccare la CPU

14. Deadlock è…
A. Un driver difettoso
B. Situazione in cui processi restano bloccati in attesa reciproca
C. Una cache
D. Un comando shell

15. Driver servono a…
A. Installare programmi
B. Comunicare tra SO e hardware
C. Fare backup
D. Eseguire script

16. Journaling è…
A. Salvataggio dei processi
B. Registro delle operazioni recenti per recupero dati
C. Pulizia della RAM
D. Un tipo di cache

17. Servizio/daemon è…
A. Processo in background che svolge attività continuative
B. Processo utente
C. Un driver
D. Una GUI

18. Exit code indica…
A. Stato del computer
B. Valore restituito da un comando
C. Indirizzo IP
D. Nome di un file

19. PATH è…
A. Percorso delle cartelle correnti
B. Variabile d’ambiente che indica dove cercare programmi eseguibili
C. Nome del disco
D. Registro dei driver

20. Virtualizzazione consente…
A. Creare un intero sistema operativo simulato all’interno di un altro
B. Aumentare RAM fisica
C. Rendere più veloce la CPU
D. Sostituire la GUI


10. Soluzioni spiegate

1. C – Il context switch salva lo stato del processo attuale e carica quello del successivo, permettendo il multitasking.

2. B – La memoria virtuale crea l’illusione di uno spazio continuo dedicato a ciascun processo, proteggendo la memoria degli altri.

3. B – Il page fault è normale; il SO recupera la pagina dal disco e la carica in RAM.

4. B – La cache L1 è integrata nella CPU e contiene dati e istruzioni frequentemente usati, velocizzando l’esecuzione.

5. A – Blocchi di memoria più grandi dei dati causano spazi inutilizzati all’interno (frammentazione interna).

6. B – La frammentazione esterna si verifica quando piccoli spazi liberi sono sparsi tra blocchi occupati, difficile da riutilizzare.

7. A – Lo symlink punta simbolicamente a un file, l’hard link crea un secondo nome che punta allo stesso file fisico.

8. B – La GUI si basa su elementi grafici come finestre, icone e menu, per facilitare l’uso.

9. B – La CLI permette controllo preciso, automazione e scripting, ideale per operazioni ripetitive.

10. C – Round Robin migliora la reattività, alternando la CPU tra i processi in modo equo.

11. B – FCFS (First Come, First Served) può causare attese lunghe se un processo lungo blocca i successivi.

12. B – Una race condition si verifica quando più processi modificano dati condivisi senza sincronizzazione, creando comportamenti imprevedibili.

13. B – Mutex e semafori servono a sincronizzare i processi e prevenire race condition.

14. B – Deadlock è una situazione di stallo in cui processi attendono risorse occupate reciprocamente.

15. B – I driver traducono le istruzioni del SO in comandi comprensibili dall’hardware.

16. B – Il journaling tiene traccia delle operazioni recenti, permettendo il recupero dei dati dopo un crash.

17. A – Un daemon è un processo che gira in background e svolge attività continue senza interfaccia utente diretta.

18. B – L’exit code indica se un comando è riuscito (0) o fallito (numero diverso da 0).

19. B – La variabile PATH indica al SO dove cercare i programmi da eseguire.

20. A – La virtualizzazione permette di simulare un intero sistema operativo all’interno di un altro, isolandolo e rendendolo indipendente.



lunedì 9 febbraio 2026

Corso Fondamenti di Informatica e Reti: 4 Architettura del computer

 

4 ARCHITETTURA DEL COMPUTER
come funziona davvero una macchina

Capire un computer non significa solo saperlo accendere o aprire file: dietro ogni operazione c’è un mondo complesso di componenti, segnali e cicli di calcolo. Qui ti porto in un viaggio attraverso la macchina, spiegandoti tutto in maniera colloquiale e accessibile, ma senza saltare nulla di importante.

La squadra del computer: CPU, memoria e periferiche

Immagina il computer come una grande cucina professionale. Al centro c’è la CPU, il cervello e il cuoco insieme. È lei a leggere le ricette (le istruzioni dei programmi), decidere come cucinare (decodifica) e infine mettere il piatto pronto sul tavolo (esegue il calcolo o l’operazione richiesta). Accanto al cuoco c’è la memoria, che funziona come una dispensa. Alcuni scaffali sono vicini e contengono ingredienti già pronti all’uso, altre scorte sono più lontane, più lente da raggiungere. Per spostare dati e comandi tra CPU e memoria ci sono i bus, veri e propri corridoi della cucina dove tutto si muove velocissimo. Infine, le periferiche, i dispositivi di input/output, permettono al computer di interagire con il mondo esterno: tastiera, mouse, monitor, stampanti, schede di rete, microfoni, sensori e altoparlanti.

Questa organizzazione segue il modello di Von Neumann, che risale agli anni ’40. La grande intuizione di Von Neumann fu semplice ma rivoluzionaria: programmi e dati vivono nella stessa memoria e la CPU li preleva a turno. Grazie a questo schema, anche computer moderni, smartphone e microcontrollori condividono lo stesso principio di base.

Il ciclo macchina: fetch → decode → execute

Il funzionamento della CPU si basa sul ciclo fetch-decode-execute. Immagina che la CPU legga una riga di ricetta: prima preleva l’istruzione dalla memoria (fetch), poi capisce che operazione deve eseguire e quali ingredienti usare (decode), e infine realizza l’azione richiesta, scrivendo il risultato nel posto corretto (execute). Questo ciclo si ripete miliardi di volte al secondo senza interruzioni.

Per rendere tutto più efficiente, le CPU moderne usano la pipeline, una sorta di catena di montaggio: mentre un’istruzione viene eseguita, un’altra viene decodificata e una terza prelevata. Tecniche avanzate come out-of-order execution e branch prediction permettono alla CPU di non fermarsi mai: se c’è un “se… allora”, la macchina prova a indovinare il percorso giusto. Se sbaglia, elimina il lavoro errato, ma il vantaggio di prevedere correttamente è enorme.

Dentro la CPU: registri, ALU, FPU e unità di controllo

All’interno della CPU ci sono componenti specializzati. I registri sono piccole tasche dove vengono conservati dati temporanei, velocissimi da leggere. L’ALU (unità aritmetico-logica) si occupa dei calcoli sui numeri interi, mentre la FPU gestisce numeri in virgola mobile, cioè decimali complessi. L’unità di controllo dirige il traffico delle istruzioni, mentre il clock scandisce il ritmo, proprio come un metronomo.

Alcune CPU supportano Hyper-Threading o SMT, che permettono di gestire più flussi di istruzioni contemporaneamente usando le stesse unità di calcolo. La differenza tra CPU e GPU è fondamentale: la CPU è un solista molto bravo su compiti diversi, mentre la GPU è un coro di migliaia di voci che eseguono in parallelo la stessa melodia, perfetta per grafica, IA e calcoli massivi.

La gerarchia della memoria

La memoria è organizzata come una piramide di velocità e capienza. I registri sono velocissimi ma minuscoli, poi ci sono le cache L1, L2 e L3, sempre più grandi e leggermente più lente. Dopo le cache arriva la RAM, la memoria principale di lavoro, e infine i dischi SSD o HDD, che conservano i dati in modo permanente.

La cache serve a ridurre i tempi di accesso ai dati usati di recente, sfruttando la località spaziale (se accedi a un dato, probabilmente userai anche quelli vicini) e la località temporale (se un dato è stato usato di recente, lo userai di nuovo a breve). Nei sistemi multicore, è fondamentale che le cache dei vari core siano coerenti: se un core cambia un dato, gli altri devono essere aggiornati.

La memoria virtuale permette a ogni programma di vedere un suo spazio ordinato di indirizzi. La MMU traduce questi indirizzi virtuali in indirizzi fisici reali, e se la pagina richiesta non è in RAM si verifica un page fault, che costringe il sistema a recuperarla dal disco.

Come comunicano le periferiche

Tutte le periferiche comunicano con la CPU tramite interruzioni: quando la tastiera viene premuta o il mouse si muove, la CPU riceve un segnale e gestisce l’evento. La GPU aggiorna lo schermo scrivendo in un framebuffer che viene visualizzato a ripetizione, creando l’effetto di immagini fluide. Alcuni dispositivi, grazie al DMA, trasferiscono dati direttamente in memoria senza disturbare la CPU, rendendo il sistema più efficiente. Il sistema operativo decide in ogni momento quale thread eseguire, coordinando CPU, memoria e periferiche.

Multicore e parallelismo

Nei sistemi moderni, avere più core significa poter eseguire più operazioni contemporaneamente. I processi sono programmi in esecuzione con il loro spazio di memoria, mentre i thread sono flussi di esecuzione all’interno dei processi che condividono la memoria. Lo scheduler del sistema operativo decide chi gira e quando. Tuttavia, come ci ricorda la legge di Amdahl, il pezzo di lavoro che resta seriale limita i guadagni del parallelismo: non tutto può essere fatto contemporaneamente.

Un esempio semplice: se cucini pasta e sugo insieme, puoi velocizzare il lavoro, ma se l’acqua non bolle, devi comunque aspettare. Allo stesso modo, nei computer non tutto può essere parallelizzato.

RISC vs CISC e microarchitetture

Il set di istruzioni (ISA) è il linguaggio che la CPU comprende: x86-64, ARM, RISC-V. La microarchitettura è il modo in cui la CPU realizza queste istruzioni. Le architetture RISC usano istruzioni semplici e uniformi, mentre le CISC hanno istruzioni più ricche e complesse. Oggi molte CPU CISC traducono internamente le istruzioni in micro-operazioni semplici, unendo i vantaggi di entrambe le filosofie.

Apertura di un file: cosa succede davvero

Quando apri un file, dietro il semplice doppio clic c’è una coreografia complessa. Il programma chiama una system call, il kernel individua il filesystem, consulta la cache delle pagine, eventualmente legge i blocchi da disco tramite DMA, e consegna i dati alla CPU. Infine, i dati arrivano al programma e vengono visualizzati sullo schermo. Tutto avviene così rapidamente che nemmeno ce ne accorgiamo.

PC, smartphone e microcontrollori

I principi restano gli stessi su tutti i dispositivi, ma con ottimizzazioni diverse. Nei PC e server prevale la potenza e la RAM abbondante; negli smartphone, i SoC combinano CPU, GPU, acceleratori IA e modem in un unico chip, ottimizzato per basso consumo. Nei microcontrollori, come Arduino o ESP32, la memoria è ridotta e il sistema operativo è minimale, ideale per rispondere in tempo reale a sensori e attuatori.

Performance e sicurezza

Aumentare la frequenza della CPU produce più calore, quindi servono dissipatori e sistemi di throttling per proteggere il processore. L’efficienza, cioè il lavoro fatto per watt consumato, è fondamentale nei portatili e negli smartphone. Anche la sicurezza è cruciale: vulnerabilità legate all’esecuzione speculativa sono mitigabili con aggiornamenti di firmware e sistema operativo.

Mini-glossario lampo

ALU = calcoli interi; FPU = calcoli decimali complessi; registri = memoria velocissima della CPU; cache = memoria piccola e vicina alla CPU; RAM = memoria di lavoro; SSD/HDD = archiviazione permanente; DMA = trasferimenti diretti; IRQ = interruzioni; MMU/TLB = traduzione indirizzi virtuali/fisici; ISA = set di istruzioni; thread = flusso di esecuzione; scheduler = regista del processore.

domenica 8 febbraio 2026

Corso Fondamenti di Informatica e Reti: 3 Dati e informazioni: codifica e rappresentazione

💾 3 Dati e informazioni: un viaggio nel mondo digitale

Immagina di svegliarti in un mondo in cui tutto ciò che vedi, tocchi, ascolti o persino annusi può essere tradotto in numeri e simboli. Ogni parola, ogni immagine, persino il rumore delle tue scarpe sul pavimento, può essere ridotto a sequenze di 0 e 1. Questo è il mondo digitale, e al suo cuore ci sono dati e informazioni. Ma attenzione: non sono la stessa cosa!

📖 Dato vs informazione: quando i numeri prendono senso

Partiamo dal principio. Un dato è un pezzo di realtà ancora grezzo, privo di contesto. Potrebbe essere il numero 42. Da solo, non dice molto: forse è la temperatura di un paziente, forse il numero di scalini che hai salito stamattina, o l’età di qualcuno. Non c’è ancora significato, solo un simbolo astratto.

Quando però aggiungiamo contesto, quel dato si trasforma in informazione.
Ad esempio: 42° C è la temperatura corporea di un paziente → ora abbiamo un allarme, una situazione chiara e interpretabile. Il dato è diventato utile. È come avere un seme: senza terreno, sole e acqua resta solo un seme; con il contesto giusto, può crescere in una pianta.

In classe, puoi fare un gioco semplice: scrivi 25 su una lavagna. Chiedi agli studenti: cosa significa? Poi aggiungi il contesto: 25 anni. Immediatamente, il numero acquista senso e può generare decisioni o discussioni. Questo piccolo passaggio è la magia che trasforma dato in informazione.

🔢 Tipi di dato: la varietà del digitale

I dati non sono tutti uguali. Possono essere:

  • Numeri: interi o decimali, positivi o negativi, come 123, -45.6, 3.14159. Servono per contare, misurare, calcolare.
  • Testi: parole, frasi, storie. “Ciao”, “Benvenuto nel mondo digitale” o anche interi romanzi possono diventare sequenze di numeri per il computer.
  • Immagini: ogni foto è una griglia di pixel. Ogni pixel ha valori di colore e luminosità, convertiti in numeri.
  • Suoni: la tua voce, il rumore della pioggia, una canzone. Tutto trasformato in onde digitali, con frequenze e ampiezze misurate in numeri.
  • Video: sequenze di immagini + audio. In pratica, un film miniatureizzato in dati.

Ecco un esempio pratico: una foto 8x8 pixel. Ogni quadratino diventa un numero che rappresenta un colore. È come dipingere con la matematica. Un file audio MP3, invece, non contiene onde continue, ma una serie di numeri compressi che il computer ricostruisce in suono.

🔢 Codifica digitale: bit e byte, gli atomi del computer

Nel mondo dei computer, ogni dato viene rappresentato in binario, cioè usando solo due simboli: 0 e 1.

  • Bit: la più piccola unità, può essere 0 o 1.
  • Byte: 8 bit, sufficiente per rappresentare un carattere, come una lettera o un numero piccolo.

Ad esempio: la lettera H in ASCII è 01001000, i è 01101001. La parola Hi diventa quindi 16 bit, due byte.

💡 Curiosità: con un singolo byte puoi rappresentare valori da 0 a 255, oppure un carattere ASCII. Non sembra molto, ma pensa a quante combinazioni si possono fare con più byte: miliardi di numeri, parole, immagini e suoni!

📦 Compressione dei dati: risparmiare senza perdere il senso

I file digitali possono essere giganti, e per questo esistono tecniche di compressione.

  • Lossless (senza perdita): riduce le dimensioni senza perdere informazioni. Es: ZIP, PNG.
  • Lossy (con perdita): risparmia molto spazio, ma elimina alcune informazioni non essenziali. Es: JPEG, MP3.

📌 Esempio:

  • Una foto originale di 5 MB
    • JPEG → 1 MB (qualche dettaglio perso)
    • PNG → 3 MB (tutti i dettagli conservati)

🌐 Standard e formati: un linguaggio universale

  • ASCII: i caratteri base (da 0 a 127)
  • Unicode: include tutti i caratteri e simboli del mondo, anche ❤️ (U+2764)
  • JPEG: immagini compresse
  • MP3: audio compresso

Unicode è una rivoluzione: finalmente un computer può leggere testi in qualsiasi lingua, senza confondersi. Un “Ciao” in italiano, “こんにちは” in giapponese, o un’emoji possono convivere nello stesso documento.

🧩 Attività pratiche: imparare facendo

🧪 1. Gioco “comprimiamo un messaggio”

Scopo: capire la compressione semantica.

  • Messaggio originale: CIAO CIAO CIAO CIAO CIAO CIAO
  • Messaggio compresso: CIAO x6

✅ Variante: prova con frasi più lunghe, ricorda di sostituire sequenze ripetute con simboli o numeri per abbreviare.

🎨 2. Convertire un’immagine in dati

Materiale: foglio a griglia 8x8, pennarelli nero e bianco

Procedura:

  1. Disegna un cuore, una stella o una faccina
  2. Colora i quadrati: nero = 1, bianco = 0
  3. Trascrivi ogni riga come sequenza di 0 e 1

Esempio cuore 8x8:

00011000
00111100
01111110
11111111
11111111
01111110
00111100
00011000

🎯 Risultato: hai creato la tua prima bitmap digitale. È incredibile pensare che un semplice disegno possa diventare numeri leggibili da un computer.

❓ 3. Quiz interattivo sui formati

  1. Quale formato conserva un testo senza perdita?
  • A. MP3
  • B. TXT ✅
  • C. JPEG
  • D. MP4
  1. Hai una foto da inviare via email. Formato ideale per compressione con qualità accettabile?
  • A. BMP
  • B. PNG
  • C. JPEG ✅
  • D. GIF
  1. Quale formato audio è compresso con perdita?
  • A. WAV
  • B. MP3 ✅
  • C. FLAC
  • D. AIFF

✨ Conclusioni e obiettivi raggiunti

Dopo questo viaggio, dovresti essere in grado di:

  • Distinguere dato da informazione
  • Comprendere la codifica digitale: bit, byte, ASCII e Unicode
  • Apprendere i principali formati e tecniche di compressione
  • Creare bitmap digitali partendo da un disegno
  • Capire la differenza tra lossy e lossless


sabato 7 febbraio 2026

Corso Fondamenti di Informatica e Reti: 2 Software: sistemi operativi e applicativi

💻 2 Software: sistemi operativi e applicativi 

Immagina che il tuo dispositivo (computer, tablet, smartphone) sia una casa. Il sistema operativo è il proprietario e il custode: organizza le stanze, decide chi entra, controlla le utenze, e tiene in ordine gli armadi. Le applicazioni sono gli ospiti o gli strumenti che usi in casa: il frigorifero, la televisione, la macchina del caffè, il pianoforte. Tutti necessari, ma senza il proprietario che coordina (il sistema operativo) la casa sarebbe caotica.

Di seguito esploriamo in profondità cosa significa questa analogia: come funzionano le parti, che tipi di software esistono, come scegliere e usare, e soprattutto come imparare a farlo con attività pratiche.

1) Cos’è il software — definizione e ruolo centrale

Il software è l’insieme di istruzioni (codice) che dice all’hardware cosa fare. Se l’hardware è la parte fisica (schermo, tastiera, CPU, memoria), il software è l’intelligenza che la anima. Senza software, un computer è un mucchio di silicio e metallo; con il software diventa strumento creativo, di lavoro, informazione e divertimento.

Il software si divide grossolanamente in due grandi famiglie:

  • Software di sistema (o di base): il sistema operativo, i driver, i tool che mantengono il dispositivo funzionante e permettono alle applicazioni di parlare con l’hardware.
  • Software applicativo: i programmi che svolgono compiti concreti per gli utenti: scrivere testi, navigare il web, montare video, giocare, contare con una calcolatrice.

2) Software di sistema vs software applicativo — cosa fa ciascuno

Il sistema operativo (OS) — il direttore d’orchestra

Il sistema operativo è il cuore: gestisce processi, memoria, file, dispositivi di input/output, rete, sicurezza. Alcuni concetti chiave:

  • Kernel: il nucleo che parla direttamente con l’hardware. Regola risorse CPU, memoria e periferiche.
  • Shell / Interfaccia utente: il modo in cui interagisci con l’OS (interfaccia grafica o riga di comando).
  • Driver: piccoli programmi che permettono a stampanti, schede video, mouse e altro di funzionare.
  • File system: l’organizzazione dei file (cartelle, permessi).
  • Gestione dei processi: l’OS decide quale programma “usa” la CPU e per quanto tempo.
  • Gestione memoria: assegna RAM ai programmi e evita che si pestino i piedi l’uno con l’altro.

Il software applicativo — cosa usi per lavorare e divertirti

Programmi concreti: Word processor, browser, app mobili, videogiochi, editor video, strumenti di contabilità. Si appoggiano all’OS per accedere a file, rete e periferiche.

Sintesi: l’OS fornisce lo spazio e le regole; l’applicazione svolge il compito specifico.

3) Panoramica dei principali sistemi operativi

Windows (Microsoft)

  • Ambito: desktop/laptop aziendali e consumer.
  • Punti forti: ampia compatibilità software (giochi, applicazioni professionali), facilità d’uso per utenti non tecnici.
  • Quando sceglierlo: se usi programmi che girano solo su Windows (es. certe suite professionali), o giochi.

macOS (Apple)

  • Ambito: laptop e desktop Apple (MacBook, iMac).
  • Punti forti: integrazione hardware-software, stabilità, ecosistema Apple per creativi (video, foto, musica).
  • Quando sceglierlo: se lavori con multimedia professionale e ti piace l’ecosistema Apple.

Linux (famiglie: Ubuntu, Fedora, Debian, Mint, ecc.)

  • Ambito: server, desktop, sviluppatori, appassionati.
  • Punti forti: open source, altamente personalizzabile, efficiente, grande comunità.
  • Quando sceglierlo: se vuoi controllo, sicurezza, uso server o imparare come funziona un OS.

Android (Google)

  • Ambito: smartphone, tablet, alcuni TV e dispositivi embedded.
  • Punti forti: ampia diffusione, app store, personalizzazione.
  • Quando sceglierlo: smartphone/tablet, ecosistema Google.

iOS (Apple)

  • Ambito: iPhone, iPad (iPadOS).
  • Punti forti: sicurezza, integrazione con hardware Apple, app di qualità.
  • Quando sceglierlo: se apprezzi l’esperienza utente Apple e app coerenti.

Nota: esistono anche sistemi specializzati (embedded OS, RTOS) e derivazioni come ChromeOS (basato su Linux con forte orientamento web).

4) Applicazioni comuni — categorie e esempi concreti

  • Suite da ufficio: Microsoft Office (Word, Excel, PowerPoint), LibreOffice (Writer, Calc, Impress).
    Esempio pratico: scrivere una relazione con Word o con LibreOffice Writer.
  • Browser web: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari.
    Esempio pratico: usare Chrome per accedere a Gmail, web app e fare il login sicuro.
  • Multimedia: VLC (lettore video), Spotify (musica), Photoshop / GIMP (grafica), Audacity (audio editing).
    Esempio pratico: tagliare il pezzo centrale di un file mp3 con Audacity.
  • Comunicazione: WhatsApp, Telegram, Zoom, Teams.
    Esempio pratico: schedulare una riunione Zoom e condividere lo schermo.
  • Sviluppo / tool: Visual Studio Code, Git, Node.js.
    Esempio pratico: aprire un progetto in VS Code e lanciare un’app locale.
  • Giochi: Steam su Windows, app store su mobile.
    Esempio pratico: configurare grafica su un gioco su PC.

5) Licenze software — concetti e cosa significano

Proprietaria

Software il cui codice non è accessibile. L’utente paga (o riceve gratis) una copia che usa sotto condizioni fissate dall’editore. Esempio: Microsoft Office (licenza d’uso), Adobe Photoshop.

Open source

Il codice sorgente è disponibile; chiunque può leggere, modificare e (a seconda della licenza) ridistribuire. Tipologie:

  • Copyleft (es. GPL): se ridistribuisci o modifichi, devi mantenere la stessa licenza (richiede condivisione).
  • Permissive (es. MIT, BSD, Apache): permettono di includere il codice in progetti proprietari; più “libere”.

Freeware vs Free (libertà)

  • Freeware = software gratuito ma proprietario (non puoi accedere al codice, es. alcuni giochi o utility gratuite).
  • Free software (libertà) = enfasi sulle libertà dell’utente: usare, studiare, modificare, ridistribuire (concetto FSF).

Esempio concreto

  • Firefox è open source (la comunità può vedere e contribuire).
  • Microsoft Office è proprietario (non puoi modificare il codice, devi rispettare licenza).

6) Modelli di distribuzione software moderni

  • Installazione tradizionale: scarichi un .exe o .dmg e installi.
  • App Store: Google Play, Apple App Store — app sotto controllo del provider, aggiornamenti centralizzati.
  • Software as a Service (SaaS): non installi nulla, usi tutto via web (Google Workspace, Office 365).
  • Container / Virtualizzazione: esegui ambienti isolati (Docker, VirtualBox) per testare o distribuire applicazioni. Utile in ambito sviluppo e server.

7) Sicurezza, aggiornamenti e manutenzione (best practices)

  • Aggiorna regolarmente: OS, browser e app. Le patch chiudono falle di sicurezza.
  • Usa software ufficiale: evita download da siti sospetti.
  • Backup: copia i dati importanti su cloud o hard disk esterno.
  • Antivirus & firewall: strumenti utili soprattutto su Windows.
  • Permessi app: su mobile (camera, posizione, rubrica) consenti solo ciò che serve.
  • Password & MFA: usa password robuste e autenticazione a due fattori.

8) Esercizi pratici (con soluzioni spiegate)

Esercizio 1 — Identifica e classifica

Compito: fai una lista di 10 software che usi e per ciascuno indica: tipo (sistema/app), licenza (proprietaria / open source / freeware), scopo (comunicazione / produttività / gioco). Soluzione (esempio):

  1. WhatsApp — applicazione mobile — freeware/proprietaria — comunicazione.
  2. Chrome — applicazione — freeware/proprietaria — browser.
  3. Firefox — applicazione — open source — browser.
  4. LibreOffice — applicazione — open source — produttività.
  5. VLC — applicazione — open source — riproduzione multimediale.
    (Spiegazione: si valuta il tipo in base a dove gira e cosa fa; la licenza si può verificare nella pagina ufficiale o nelle info dell’app.)

Esercizio 2 — Installazione sicura

Compito: scegli un’app open source (GIMP o Audacity). Elenca i 6 passaggi che esegui per una installazione sicura. Soluzione spiegata:

  1. Vai al sito ufficiale (es. gimp.org).
  2. Controlla la versione corretta per il tuo OS.
  3. Scarica il file; se disponibile, verifica checksum.
  4. Esegui l’installer come utente con permessi normali (non administrator se non richiesto).
  5. Durante installazione, rifiuta software aggiuntivo non desiderato.
  6. Avvia e prova le funzioni base.
    (Spiegazione: questi passaggi riducono rischio malware e assicurano che il software sia autentico.)

Esercizio 3 — Permissions & Privacy (smartphone)

Compito: scegli 5 app sul tuo telefono e scrivi quali permessi richiedono e se sono giustificati. Soluzione modello:

  • App fotocamera: accesso a fotocamera e microfono — giustificato.
  • Weather app: accesso a posizione — giustificato per meteo locale, attenzione a permessi in background.
  • Gioco semplice: accesso a contatti? — non giustificato, per cui revocare permesso.
    (Spiegazione: analizzare i permessi aiuta a proteggere dati sensibili.)

9) Risorse utili (strumenti e link raccomandati)

  • Per montaggio video/mobile: CapCut, InShot.
  • Per grafica: GIMP (open source), Canva (web).
  • Per audio: Audacity.
  • Per ufficio: LibreOffice (open source), Google Docs (SaaS), MS Office (proprietario).
  • Per sviluppatori: VS Code, Git.
  • Per sicurezza: Malwarebytes, Windows Defender (preinstallato su Windows).
  • Per VM: VirtualBox (gratuito).
    (Nota: cerca sempre i siti ufficiali dei progetti.)

venerdì 6 febbraio 2026

Corso Fondamenti di Informatica e Reti: 1 Hardware: componenti e funzionamento del computer

1 Hardware – Viaggio dentro al cuore del computer

Immagina di avere davanti a te un misterioso scrigno di metallo o plastica: un computer. Sembra solo un oggetto, ma dentro custodisce un mondo fatto di componenti, collegamenti e “piccoli operai” invisibili che lavorano in sincronia per trasformare i tuoi clic, le tue parole e le tue idee in azioni concrete.
In questa avventura scopriremo chi sono questi operai, come lavorano e perché ognuno è indispensabile.

🔹 1. Hardware e software – Il corpo e la mente

La prima distinzione fondamentale è tra hardware e software.

  • Hardware: tutto ciò che puoi toccare, pesare e spostare. La tastiera sotto le dita, lo schermo davanti agli occhi, il mouse, le casse, il disco rigido, la stampante… persino i cavi.
  • Software: ciò che non puoi vedere o toccare, ma che fa muovere tutto. Sono i programmi, le app, il sistema operativo. Senza software, l’hardware è come un corpo immobile.

🧠 Metafora utile: pensa al computer come a una persona.

  • L’hardware è il corpo: muscoli, ossa, organi.
  • Il software è la mente: pensieri, logica, decisioni.
    Uno senza l’altro non può funzionare.

🔹 2. Gli organi vitali del computer

Ogni parte del computer ha un ruolo preciso, proprio come in un organismo vivente.

CPU (Processore) – Il cervello

È il direttore d’orchestra. Riceve le istruzioni, fa calcoli velocissimi e coordina ogni attività. Più è potente, più il computer “pensa” in fretta.

RAM (Memoria volatile) – La memoria a breve termine

Qui il computer mette i dati su cui sta lavorando in questo momento. È rapidissima ma temporanea: spegni il PC, e puff! Tutto sparisce.

Hard Disk / SSD – La memoria a lungo termine

È l’archivio del computer. Qui restano custoditi i tuoi documenti, le foto, i video, i programmi… anche dopo aver spento il PC.

  • HDD: più lento, ma con grande capacità.
  • SSD: molto più veloce, meno rumoroso.

Scheda madre – La spina dorsale

Un grande circuito stampato che collega tutti i componenti. È la “piazza centrale” dove passano tutte le informazioni.

Periferiche di input/output (I/O)

  • Input: ciò che serve per inviare comandi e dati al computer (tastiera, mouse, microfono, scanner).
  • Output: ciò che serve per ricevere informazioni dal computer (monitor, stampante, casse).

🔹 3. Tipi di memoria

  • Volatile: si svuota quando spegni (RAM).
  • Non volatile: rimane anche senza corrente (Hard Disk, SSD, chiavetta USB).

📦 Pensa alla RAM come al tavolo dove stai preparando un puzzle (solo i pezzi in uso sono lì) e all’SSD come alla scatola in cui tieni tutti i pezzi quando hai finito.

🔹 4. L’evoluzione del computer

Un tempo c’erano solo i desktop: grandi scatoloni fissi sulla scrivania. Poi sono arrivati i laptop portatili, seguiti da tablet e smartphone che stanno in tasca.
Oggi i computer sono ovunque: negli orologi smart, nelle auto, nelle lavatrici.
Questi si chiamano computer embedded: piccole unità di calcolo nascoste dentro oggetti comuni, pronte a svolgere compiti specifici senza farsi notare.

🔹 5. Dispositivi digitali nel quotidiano

Allenare l’occhio a riconoscere la tecnologia è utile.

  • Il telecomando: dentro ha una memoria ROM che conserva il “programma” dei tasti.
  • Lo smartphone: ha CPU, RAM, memoria flash e una miriade di sensori.
  • Il navigatore auto: un computer embedded con mappe e GPS.

Ogni oggetto ha la sua piccola architettura nascosta.

🧪 Attività pratiche per imparare divertendosi

  1. Smontaggio virtuale: usare simulatori online (es. PC Building Simulator) per esplorare le parti interne di un PC senza rischi.
  2. Costruisci il tuo PC: in aula, assemblare un computer con cartoncini che rappresentano i componenti e i loro nomi.
  3. Visita guidata: osservare un PC reale aperto, riconoscendo RAM, ventole, schede e connettori.

📝 Mini quiz di autovalutazione

  1. Qual è la differenza principale tra hardware e software?
    A. L’hardware è un tipo di programma speciale
    B. L’hardware è fisico, il software è digitale
    C. L’hardware è la tastiera, il software è la sedia
    D. Non c’è alcuna differenza

  2. A cosa serve la RAM?
    A. Salvare i dati in modo permanente
    B. Eseguire i programmi in corso
    C. Collegare il computer a Internet
    D. Stampare i documenti

  3. La memoria del disco rigido è:
    A. Volatile
    B. Temporanea
    C. Non volatile
    D. Solo per videogiochi

  4. Quale tra questi è un dispositivo di output?
    A. Microfono
    B. Tastiera
    C. Stampante
    D. Mouse

  5. Un esempio di computer “embedded” è:
    A. Un tablet
    B. Una console da gioco
    C. Un navigatore GPS in auto
    D. Un telecomando


(Le risposte corrette sono in grassetto)

  1. Differenza tra hardware e software:
    B. L’hardware è fisico, il software è digitale
  2. A cosa serve la RAM?
    B. Eseguire i programmi in corso
  3. La memoria del disco rigido è:
    C. Non volatile
  4. Quale tra questi è un dispositivo di output?
    C. Stampante
  5. Esempio di computer “embedded”:
    C. Un navigatore GPS in auto

giovedì 5 febbraio 2026

Corso Pensiero Computazionale e Coding per Tutti: 5 Logica e giochi: il coding come sfida


5 Logica e giochi: il coding come sfida

📘 Introduzione

Il coding è molto più che scrivere codice: è un esercizio di logica, creatività e pensiero computazionale. Alla base di ogni algoritmo c’è una sequenza ordinata di ragionamenti e deduzioni che rispecchiano le strutture mentali del ragionamento umano.

Prima di affrontare i linguaggi di programmazione, è fondamentale costruire una solida base logica. Un modo efficace è farlo attraverso il gioco, che trasforma la logica formale in un’esperienza pratica e divertente.

Giochi come Scacchi, Sudoku, Tangram e Torri di Hanoi sono vere e proprie “palestre mentali” dove si allenano il pensiero sequenziale, la strategia, la ricorsione e la capacità di risolvere problemi complessi.

🧩 Contenuti principali

1. Introduzione alla logica formale

La logica studia le regole del ragionamento corretto. Alcuni concetti fondamentali:

  • Proposizioni: frasi che possono essere vere o false. Esempio: “Oggi piove” è una proposizione.
  • Connettivi logici: strumenti per combinare proposizioni:
    • AND (e) — entrambe vere
    • OR (o) — almeno una vera
    • NOT (non) — negazione
    • IMPLIES (se... allora)
  • Implicazione: “Se A, allora B” significa che ogni volta che A è vera, B è vera.

Esempio: Siano A = “Oggi è lunedì”, B = “Domani è martedì”. L’implicazione si scrive \( A \Rightarrow B \).

2. Logica e programmazione

La programmazione si basa su decisioni logiche e flussi condizionali. In ogni linguaggio di coding, si usano operatori booleani per gestire il flusso del programma.

Un esempio in pseudocodice:

if (piove == true) {
    prendo_ombrello();
} else {
    esco_senza_ombrello();
}

Qui il programma decide cosa fare in base a una condizione vera o falsa, che è il cuore del ragionamento logico applicato al coding.

3. Il valore educativo del gioco

Il gioco è uno strumento potentissimo per allenare la mente:

  • Stimola il ragionamento sequenziale.
  • Insegna a riconoscere schemi e vincoli.
  • Favorisce il pensiero critico e la capacità di risolvere problemi complessi.

4. Giochi classici come strumenti formativi

Tangram

Si compone di 7 tessere geometriche da combinare per formare figure: stimola la logica spaziale e la capacità di riconoscere forme.

Sudoku

Gioco di numeri che richiede di riempire una griglia rispettando vincoli rigidi, stimola il ragionamento logico e sequenziale.

Torri di Hanoi

Gioco di ricorsione e ottimizzazione: spostare dischi da un palo all’altro seguendo regole precise, introduce al concetto di ricorsione.

Scacchi

Gioco strategico che sviluppa la capacità di pianificazione, di prevedere mosse avversarie e di prendere decisioni sequenziali.

🛠️ Attività pratiche

Attività 1: Tabelle di verità e proposizioni

Dati i seguenti enunciati:

  • A: “Oggi è venerdì”
  • B: “Domani c’è scuola”

Costruiamo la tabella di verità per l’implicazione \( A \Rightarrow B \):

AB\( A \Rightarrow B \)
VVV
VFF
FVV
FFV

Spiegazione: l’implicazione è falsa solo se A è vera e B è falsa; negli altri casi è vera.

Attività 2: Algoritmo base per Sudoku

Descrizione in linguaggio naturale per risolvere una cella vuota:

  1. Trova una cella vuota nella griglia.
  2. Prova ad inserire un numero da 1 a 9 che non violi le regole (nessuna ripetizione in riga, colonna, regione).
  3. Se il numero è valido, passa alla cella successiva.
  4. Se nessun numero è valido, torna indietro e cambia il numero della cella precedente (backtracking).
  5. Ripeti finché la griglia è completa.

Attività 3: Torri di Hanoi (3 dischi)

Obiettivo: spostare tutti i dischi dal palo A al palo C rispettando le regole.

Algoritmo ricorsivo:

spostaDischi(n, daPalo, aPalo, paloAppoggio):
  se n == 1:
    sposta disco da "daPalo" a "aPalo"
  altrimenti:
    spostaDischi(n-1, daPalo, paloAppoggio, aPalo)
    sposta disco da "daPalo" a "aPalo"
    spostaDischi(n-1, paloAppoggio, aPalo, daPalo)

Passi concreti per 3 dischi:

  • Sposta i primi 2 dischi da A a B (usando C come appoggio)
  • Sposta il disco più grande da A a C
  • Sposta i 2 dischi da B a C (usando A come appoggio)

🎓 Test interattivo: "Quanto sei logico?"

1. Che cos’è una proposizione logica?
a) Un enunciato privo di significato
b) Un'istruzione informatica
c) Un’affermazione che può essere vera o falsa
d) Un'opinione personale

2. A cosa serve un algoritmo?
a) Per decorare un sito web
b) Per risolvere problemi attraverso una sequenza di istruzioni
c) Per scegliere un colore
d) Per fare grafica

3. Quale gioco aiuta a sviluppare il pensiero ricorsivo?
a) Memory
b) Cruciverba
c) Torri di Hanoi
d) Risiko

4. In logica booleana, cosa rappresenta il valore 0?
a) Falso
b) Vero
c) Ignoto
d) Parziale

🔄 Esercizio finale: Algoritmo per il Tangram

Descrivi in linguaggio naturale come costruire un quadrato usando le sette tessere del Tangram. Un esempio:

1. Posiziona il grande triangolo 1 in basso a sinistra.
2. Posiziona il grande triangolo 2 in basso a destra, unendolo al primo.
3. Metti il quadrato piccolo sopra il triangolo 1.
4. Aggiungi il parallelogramma accanto al quadrato piccolo.
5. Completa la figura con i triangoli piccoli e medi, riempiendo gli spazi rimasti.

Questo esercizio aiuta a tradurre un problema spaziale in passi logici e sequenziali, una capacità essenziale per il coding.

Conclusione

Attraverso la logica e il gioco, sviluppiamo la capacità di pensare per passi, anticipare conseguenze, tornare indietro e correggere — tutte abilità fondamentali per programmare. La sfida del coding diventa così accessibile e appassionante per chiunque, a partire da semplici attività ludiche.



Logica e giochi: il coding come sfida

📘 Introduzione

Il coding, prima ancora che un’attività tecnica, è un esercizio di logica e creatività. Alla base di ogni algoritmo si nasconde una sequenza di deduzioni, strutture mentali ordinate e una capacità di ragionamento astratto. Per questo motivo, prima ancora di passare a veri e propri linguaggi di programmazione, è fondamentale costruire una solida base logica. Come? Attraverso i giochi.

La logica formale, spesso considerata astrusa o troppo teorica, può diventare un’avventura appassionante se tradotta in esperienze pratiche e ludiche. Scacchi, Sudoku, Tangram e Torri di Hanoi non sono solo passatempi, ma vere e proprie “palestre mentali” dove il pensiero computazionale prende forma.

🧩 Contenuti principali

  • Introduzione alla logica formale: proposizioni, deduzioni, implicazioni. Cosa vuol dire “se... allora...”? E perché è così importante per i computer?
  • Logica e programmazione: il legame profondo tra l’organizzazione del pensiero logico e la costruzione degli algoritmi. Dalle proposizioni booleane alle strutture condizionali nei linguaggi di coding.
  • Il valore educativo del gioco: come allenare le capacità logiche e computazionali attraverso attività ludiche mirate.
  • Giochi classici come strumenti formativi: introduzione e uso educativo di:
    • Tangram: logica spaziale e forme geometriche
    • Sudoku: sequenze e vincoli logici
    • Torri di Hanoi: ricorsione e ottimizzazione
    • Scacchi: pensiero strategico e sequenzialità

🛠️ Attività

  • Puzzle logici collaborativi: risolvere problemi in gruppo stimolando il confronto tra strategie diverse
  • Scrittura di algoritmi per risolvere giochi: trasformare una soluzione in linguaggio naturale in una sequenza di istruzioni codificate
  • Sfide a squadre: “Programma il tuo robot mentale”, ovvero guidare un compagno attraverso un percorso solo usando istruzioni logiche

🎓 Output didattici attesi

  • Capacità di identificare proposizioni logiche e deduzioni semplici
  • Abilità di costruire e seguire un algoritmo lineare
  • Familiarità con i concetti base di logica binaria e operatori booleani
  • Acquisizione di un approccio computazionale ai problemi
  • Primi strumenti per accedere a linguaggi di programmazione con consapevolezza

🧠 Test interattivo: "Quanto sei logico?"

Prova a rispondere alle domande. Ogni risposta giusta ti fa guadagnare 1 punto!

1. Che cos’è una proposizione logica?

2. A cosa serve un algoritmo?

3. Quale gioco aiuta a sviluppare il pensiero ricorsivo?

4. In logica booleana, cosa rappresenta il valore 0?

Corso Fondamenti di Informatica e Reti: 6 Reti di computer e Internet

6 Reti di computer e Internet Introduzione Prova a pensare alla vita quotidiana senza reti informatiche: niente messaggi WhatsApp, niente...