domenica 7 dicembre 2025

Corso Fondamenti di Informatica e Reti: 4 Architettura del computer

 

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.


Esercizi pratici

Per capire meglio questi concetti, puoi fare alcuni esperimenti: simulare la cache con post-it numerati, creare una pipeline umana con tre persone che leggono, decodificano ed eseguono istruzioni, oppure tracciare ogni passaggio dall’apertura di un file a video e tastiera, mappando CPU, memoria, cache, kernel e periferiche. Anche analogie in cucina o nel traffico stradale aiutano a capire perché non tutto si può parallelizzare.


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.

Test di comprensione – Architettura del computer

1. Quale parte del computer decodifica le istruzioni?

a) CPU
b) Hard Disk
c) RAM

Risposta: a) CPU
Spiegazione: La CPU è responsabile di prendere le istruzioni dalla memoria, decodificarle per capire quale operazione eseguire e infine eseguirle. Hard disk e RAM servono solo a immagazzinare dati, non a interpretarli.


2. Cos’è la memoria cache?

a) Una memoria permanente
b) Una memoria veloce per dati recenti
c) Una parte del monitor

Risposta: b) Una memoria veloce per dati recenti
Spiegazione: La cache è un tipo di memoria molto più veloce della RAM, che contiene i dati usati di recente o istruzioni frequenti, riducendo i tempi di accesso della CPU. Non è permanente e non fa parte dello schermo.


3. Cosa rappresenta il “fetch” nel ciclo macchina?

a) Il prelievo dell’istruzione dalla memoria
b) La stampa del risultato
c) L’esecuzione finale del programma

Risposta: a) Il prelievo dell’istruzione dalla memoria
Spiegazione: Il fetch è il primo passaggio del ciclo fetch-decode-execute: la CPU legge l’istruzione dalla memoria prima di decodificarla e eseguirla.


4. A cosa serve la pipeline in una CPU?

a) A far eseguire più istruzioni contemporaneamente in stadi diversi
b) A raffreddare il processore
c) A memorizzare i dati su disco

Risposta: a) A far eseguire più istruzioni contemporaneamente in stadi diversi
Spiegazione: La pipeline divide il ciclo macchina in fasi: fetch, decode, execute, write-back. Così la CPU può iniziare a processare una nuova istruzione prima che la precedente sia completata, aumentando la velocità.


5. Per cosa è particolarmente adatta la GPU?

a) Per eseguire calcoli seriali complessi
b) Per calcoli paralleli su grandi quantità di dati
c) Per leggere dati da disco

Risposta: b) Per calcoli paralleli su grandi quantità di dati
Spiegazione: La GPU contiene migliaia di unità di calcolo in parallelo, ottime per grafica, intelligenza artificiale o calcoli massivi. La CPU invece gestisce meglio calcoli complessi ma seriali.


6. Cos’è la memoria virtuale e a cosa serve?

Risposta aperta:
La memoria virtuale è un sistema che permette a ogni programma di avere un proprio spazio ordinato di indirizzi, indipendente dalla memoria fisica reale. La MMU traduce gli indirizzi virtuali in indirizzi fisici nella RAM. Questo permette di far girare programmi più grandi della memoria disponibile e di isolare i processi tra loro.


7. Quando si verifica un page fault?

a) Quando la CPU sbaglia a eseguire un’istruzione
b) Quando un dato richiesto non è in RAM e deve essere caricato dal disco
c) Quando la cache è piena

Risposta: b) Quando un dato richiesto non è in RAM e deve essere caricato dal disco
Spiegazione: Un page fault indica che la CPU ha richiesto un indirizzo virtuale che non è presente in memoria principale. Il sistema operativo recupera la pagina necessaria dal disco, causando un leggero ritardo.


8. A cosa serve il DMA (Direct Memory Access)?

a) A trasferire dati in memoria senza usare la CPU
b) A gestire le interruzioni della tastiera
c) A decodificare le istruzioni della CPU

Risposta: a) A trasferire dati in memoria senza usare la CPU
Spiegazione: Il DMA permette ai dispositivi di scrivere o leggere dati direttamente dalla RAM, liberando la CPU da operazioni di copia e velocizzando il sistema.


9. Cosa ci ricorda la legge di Amdahl?

Risposta aperta:
La legge di Amdahl spiega che il miglioramento delle prestazioni tramite il parallelismo è limitato dalla parte del programma che deve rimanere seriale. Anche se un’operazione è accelerata da più core, il segmento di lavoro che non può essere parallelizzato rallenta comunque l’esecuzione totale.


10. Come funziona il modello di Von Neumann?

Risposta aperta:
Nel modello di Von Neumann, programmi e dati condividono la stessa memoria. La CPU preleva istruzioni e dati, le decodifica e le esegue seguendo il ciclo fetch-decode-execute. Tutto ciò avviene attraverso bus che trasportano informazioni tra CPU, memoria e periferiche.


11. Qual è la differenza principale tra CPU e GPU?

a) La CPU è più grande della GPU
b) La CPU è ottimizzata per operazioni complesse e seriali, la GPU per calcoli paralleli massivi
c) La CPU ha più memoria della GPU

Risposta: b) La CPU è ottimizzata per operazioni complesse e seriali, la GPU per calcoli paralleli massivi
Spiegazione: La CPU è flessibile e gestisce una grande varietà di compiti, mentre la GPU eccelle in operazioni ripetitive e parallele come il rendering grafico o l’elaborazione di array di dati.


12. Cosa sono i registri e perché sono importanti?

Risposta aperta:
I registri sono piccole memorie all’interno della CPU, estremamente veloci, dove vengono conservati temporaneamente i dati durante i calcoli. Servono a ridurre i tempi di accesso, permettendo alla CPU di lavorare molto più rapidamente rispetto all’uso diretto della RAM.


13. Cos’è la cache L1, L2 e L3?

Risposta aperta:
La cache è una memoria veloce tra CPU e RAM. L1 è piccola ma rapidissima, integrata nel core; L2 è più grande e leggermente più lenta; L3 è condivisa tra i core e più capiente. Tutte hanno lo scopo di fornire dati e istruzioni alla CPU riducendo i tempi di accesso alla RAM.


14. Perché il clock è importante?

a) Determina quante istruzioni la CPU può eseguire al secondo
b) Mantiene la CPU fresca
c) Carica i programmi dal disco

Risposta: a) Determina quante istruzioni la CPU può eseguire al secondo
Spiegazione: Il clock scandisce il ritmo delle operazioni, simile a un metronomo. Più alta è la frequenza, più rapidamente la CPU può processare istruzioni, sempre entro i limiti di temperatura e consumo energetico.


15. Cosa significa RISC e CISC?

Risposta aperta:
RISC (Reduced Instruction Set Computer) utilizza istruzioni semplici e uniformi, ottimizzando la velocità e la pipeline. CISC (Complex Instruction Set Computer) ha istruzioni più complesse che possono svolgere più operazioni in un singolo comando. Oggi molte CPU CISC tradurranno internamente le istruzioni in micro-istruzioni più semplici, combinando i vantaggi dei due approcci.



sabato 6 dicembre 2025

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

💾 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


venerdì 5 dicembre 2025

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

💻 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) Attività didattiche approfondite (per scuola, gruppo o autodidatta)

Questa sezione espande le attività proposte: ogni attività include obiettivi, istruzioni passo-passo e criteri di valutazione.

A — Mappa concettuale estesa (attività individuale o a gruppi)

Obiettivo: organizzare graficamente tutto il software della propria vita digitale. Materiali: carta grande o strumento digitale (MindMeister, Coggle). Istruzioni:

  1. Al centro scrivi “Il mio ecosistema digitale”.
  2. Crea rami per “Sistema operativo”, “Comunicazione”, “Produttività”, “Multimedia”, “Sicurezza”, “Sviluppo”.
  3. Sotto ogni ramo elenca i software usati (es. WhatsApp → app mobile; Google Docs → suite web).
  4. Collega ogni software al relativo tipo di licenza (proprietaria / open source) ed eventuali store (Play Store, App Store). Valutazione: chiarezza (30%), completezza (40%), correttezza delle licenze (30%).

B — Classificazione familiare (laboratorio pratico)

Obiettivo: riconoscere e classificare software su dispositivi reali. Istruzioni:

  1. Raccogli i dispositivi della famiglia (telefono, tablet, laptop).
  2. Per ogni dispositivo segnala: sistema operativo, 3 app principali, 1 gioco, 1 app di produttività; indica se sono gratuiti o a pagamento.
  3. Presenta i risultati in una tabella. Valutazione: accuratezza e presentazione (50%), riflessione sulla scelta delle app (50%).

C — Installazione guidata (laboratorio)

Obiettivo: imparare a installare un’app in sicurezza e conoscerne impostazioni. Esempio 1 (Android): installare una calcolatrice scientifica da Google Play. Passaggi:

  • Apri Play Store → cerca “calcolatrice scientifica” → leggi descrizione e recensioni → controlla permessi → installa → apri e prova funzioni (memoria, trigonometria).
  • Disinstalla o conserva. Criteri di valutazione: ricerca app: 30%, controllo permessi: 30%, prova funzionale: 40%.

Esempio 2 (PC): provare GIMP (software open source per grafica).

  • Vai al sito ufficiale (gimp.org) → scarica la versione per il tuo OS → controlla checksum se presente → avvia installazione → prova a ridimensionare un’immagine e salvarla. Attenzione: scarica solo da siti ufficiali.

D — Esercitazione avanzata: macchina virtuale

Obiettivo: eseguire Linux in una VM su Windows/Mac. Strumenti: VirtualBox (gratuito), ISO di Ubuntu. Passaggi sintetici:

  1. Scarica e installa VirtualBox.
  2. Scarica immagine ISO di Ubuntu dal sito ufficiale.
  3. Crea nuova VM in VirtualBox, assegna RAM e spazio disco.
  4. Monta ISO e avvia VM; procedi con installazione. Risultato atteso: poter accendere Ubuntu in finestra e installare un’app (es. LibreOffice).

Valutazione: capacità di seguire procedure, gestione risorse, risoluzione problemi.


9) 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.)

10) Test di verifica (domande + risposte spiegate)

Test rapido (10 domande, mix di scelta multipla e risposta breve)

1. Domanda: Qual è la differenza principale tra sistema operativo e applicazione?
Risposta corretta: Il sistema operativo gestisce l’hardware e risorse di sistema; l’applicazione usa quello che l’OS mette a disposizione per svolgere compiti specifici.
Spiegazione: L’OS è intermediario fra hardware e applicazioni; senza OS le app non possono accedere a periferiche in modo standard.

2. Domanda: Indica tre esempi di software open source.
Risposta possibile: Firefox, LibreOffice, VLC.
Spiegazione: Questi progetti rendono pubblico il codice sorgente e permettono contributi esterni.

3. Domanda: Cosa significa “licenza d’uso”? Fai un esempio.
Risposta corretta: È il contratto che specifica come si può usare, modificare e ridistribuire un software. Esempio: l’EULA di Microsoft Office impedisce la modifica del codice.
Spiegazione: La licenza governa i diritti legali d’uso e distribuzione.

4. Domanda: Android è software di sistema o applicazione? Motiva.
Risposta corretta: Android è un sistema operativo per dispositivi mobili perché coordina hardware, processi, memoria e fornisce servizi alle app.
Spiegazione: I singoli giochi o app su Android sono applicazioni; Android è la piattaforma che le ospita.

5. Domanda: Qual è l’uso tipico di una VM (macchina virtuale)?
Risposta corretta: Eseguire un sistema operativo isolato per testare software senza impattare il sistema principale.
Spiegazione: Le VM isolano ambienti per sicurezza e sperimentazione.

6. Domanda: Vero o falso — “Freeware implica sempre che puoi modificare il codice sorgente.”
Risposta corretta: Falso.
Spiegazione: Freeware è solo gratis, ma spesso proprietario; non garantisce accesso al codice.

7. Domanda: Quale funzione svolge un driver?
Risposta corretta: Traduce le richieste dell’OS in comandi comprensibili dall’hardware (es. stampante, scheda video).
Spiegazione: Senza driver, l’OS non saprebbe comunicare con la periferica.

8. Domanda (breve): Nomina due vantaggi del software open source.
Risposta possibile: Trasparenza del codice, possibilità di modifica e adattamento, grande comunità, costi spesso ridotti.
Spiegazione: Open source favorisce controllo e adattabilità.

9. Domanda: Cos’è il SaaS? Fornisci un esempio.
Risposta corretta: Software as a Service: software accessibile via web senza installazione locale. Esempio: Google Workspace.
Spiegazione: Con SaaS si paga (o si usa gratis) un servizio online, il provider mantiene il software.

10. Domanda (pratica): Scegli tra le seguenti attività: aggiornare l’OS, installare un’app, fare backup — quale è più urgente se il tuo antivirus segnala una minaccia?
Risposta corretta: Fare backup dei dati prima di qualsiasi operazione rischiosa; aggiornare l’antivirus e pulire sistema.
Spiegazione: Il backup previene perdita dati; procedere comunque con cautela.


11) Esempi concreti di mini-progetti (per imparare “facendo”)

Progetto 1 — “Il mio PC è lento: diagnostica e soluzione”

Obiettivo: scoprire e risolvere rallentamenti su Windows o macOS. Passi:

  1. Controlla uso CPU/RAM (Task Manager / Monitor attività).
  2. Chiudi app che usano risorse inutili.
  3. Disinstalla software obsoleto.
  4. Verifica aggiornamenti OS e driver.
  5. Esegui scansione antivirus.
    Valutazione: miglioramento tempi di avvio e uso CPU.

Progetto 2 — “Costruisci un mini-lab open source”

Obiettivo: installare GIMP, Audacity, LibreOffice e creare materiale (poster, podcast, brochure).
Prodotto finale: un podcast di 3 minuti + poster in PDF realizzato con GIMP.
Valutazione: qualità audio, layout, uso corretto delle licenze per musica e immagini.


12) Errori comuni e come evitarli

  • Scaricare da siti non ufficiali → rischio malware. Sempre sito del progetto.
  • Ignorare aggiornamenti → vulnerabilità.
  • Permessi app eccessivi → rischio privacy. Controlla e revoca.
  • Confondere freeware e open source → non sono la stessa cosa.
  • Non fare backup → perdita dati irreversibile.

13) Domande frequenti (FAQ rapide)

D: Posso passare da Windows a Linux senza perdere dati?
R: Sì, con backup e pianificazione: salva i tuoi file, prepara USB di installazione, scegli se dual-bootare o sostituire.

D: Open source è meno professionale?
R: No. Molti servizi e aziende usano software open source in produzione (server, infrastrutture, sviluppo).

D: È sicuro usare app non presenti sugli store ufficiali?
R: È più rischioso: gli store forniscono controlli minimi. Se devi installare APK Android fuori dallo store, verifica firma e provenienza.


14) 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.)

15) Rubrica di valutazione per progetti e compiti (esempio scuola / corso)

  • Progettazione & chiarezza (25%): lo scopo è chiaro, i passaggi logici.
  • Esecuzione tecnica (30%): installazione, configurazione, prova.
  • Documentazione & riflessione (20%): spiegazione scelte, problemi risolti.
  • Sicurezza & licenze (15%): fonti ufficiali, permessi corretti, attenzione a copyright.
  • Creatività & presentazione (10%)

Conclusione

Il software è la lingua con cui parliamo ai dispositivi. Capirlo non è solo competenza tecnica: è una piccola cittadinanza digitale. Sapere che cosa gira sotto il cofano del tuo laptop o del tuo smartphone ti rende più libero, più sicuro e più creativo. Che tu scelga Windows per i giochi, Linux per sperimentare o iOS per la praticità, l’importante è capire i ruoli: il sistema operativo orchestra, le applicazioni eseguono: insieme ti consentono di lavorare, creare e divertirti.

giovedì 4 dicembre 2025

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

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

🎯 Obiettivi raggiunti

  • ✅ Saper distinguere hardware e software
  • ✅ Conoscere le componenti principali di un computer
  • ✅ Comprendere a cosa servono CPU, RAM e memoria permanente
  • ✅ Capire come il concetto di “computer” si è evoluto nel tempo
  • ✅ Riconoscere la tecnologia nascosta negli oggetti di tutti i giorni

mercoledì 3 dicembre 2025

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


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?

martedì 2 dicembre 2025

Corso Pensiero Computazionale e Coding per Tutti: 4 L’algebra booleana

 


L’algebra booleana: la lingua segreta dei computer

L’algebra booleana è un sistema logico basato su soli due valori: Vero (1) e Falso (0). È alla base di tutto ciò che fa funzionare il mondo digitale, dai circuiti elettrici ai programmi dei computer.

Variabili booleane

Le variabili booleane possono assumere solo due valori: 0 (Falso) o 1 (Vero). Immagina un interruttore acceso o spento: quello è il concetto base della logica booleana.

Operazioni principali

  • AND (E): vero solo se tutte le condizioni sono vere.
  • OR (O): vero se almeno una condizione è vera.
  • NOT (NON): inverte il valore, da vero a falso e viceversa.

Tabelle di verità

Le tabelle di verità sono strumenti visuali che mostrano come funzionano queste operazioni. Eccone alcune di base:

AND
ABA AND B
000
010
100
111
OR
ABA OR B
000
011
101
111
NOT
ANOT A
01
10

Proprietà utili

  • Commutativa: A AND B = B AND A, A OR B = B OR A
  • Associativa: (A AND B) AND C = A AND (B AND C)
  • Distributiva: A AND (B OR C) = (A AND B) OR (A AND C)
  • Leggi di De Morgan:
    NOT(A AND B) = NOT A OR NOT B
    NOT(A OR B) = NOT A AND NOT B

Attività pratiche per capire l’algebra booleana

🎮 Semaforo logico

Immagina un semaforo con tre segnali:

  • G = verde (1 = verde acceso, 0 = spento)
  • Y = giallo
  • C = macchina in arrivo (1 = sì, 0 = no)

Il personaggio può attraversare se:

  • Il semaforo è verde OR
  • Il semaforo è giallo AND non c’è macchina in arrivo.

Espressione booleana: CanPass = G OR (Y AND NOT C)

Tabella di verità: Semaforo
GYCY AND NOT CCanPass
00000
00100
01011
01100
10001
10101
11011
11101

🔍 Caccia agli oggetti

Hai una collezione di oggetti con queste caratteristiche:

  • R = rosso
  • T = tondo
  • S = leggero

Se vuoi trovare gli oggetti che sono rossi E tondi, usi l’espressione R AND T.

Se vuoi quelli che sono rossi O tondi ma leggeri, allora: (R OR T) AND S.

🧩 Mini circuiti logici

Con cartoncini o disegni, rappresenta le porte logiche:

  • AND: due interruttori in serie
  • OR: due interruttori in parallelo
  • NOT: un inverter che cambia il valore

Prova a costruire il circuito che attiva l’uscita solo se A = 1 e B = 0, cioè A AND NOT B.

Esercizi svolti e quiz finale

Esercizio 1: Tabella di verità per F = NOT(A AND (B OR C))

Costruzione tabella
ABCB OR CA AND (B OR C)F = NOT(...)
000001
001101
010101
011101
100001
101110
110110
111110

Spiegazione: Se A è falso, F è vero. Altrimenti, F dipende da B e C secondo le regole di De Morgan.

Esercizio 2: Semplifica F = (A AND B) OR (A AND NOT B)

Soluzione:
Fattorizziamo A: F = A AND (B OR NOT B)
Sapendo che B OR NOT B = 1, otteniamo F = A AND 1 = A.
Quindi, F = A.

Esercizio 3: Costruisci l’XOR usando AND, OR e NOT

L’operazione XOR (Exclusive OR) è vera solo quando A e B sono diversi.
Si può esprimere così:
A XOR B = (A AND NOT B) OR (NOT A AND B)

Tabella di verità XOR
ABA AND NOT BNOT A AND BXOR
00000
01011
10101
11000

Quiz finale: metti alla prova la tua logica!

  1. Qual è il risultato di: VERO AND FALSO?
    Risposta: FALSO — perché AND richiede che entrambi siano veri.
  2. Qual è il risultato di: VERO OR FALSO?
    Risposta: VERO — perché OR richiede almeno uno vero.
  3. Qual è il risultato di: NOT VERO?
    Risposta: FALSO — NOT inverte il valore.
  4. Se A = VERO e B = VERO, quanto vale A AND B?
    Risposta: VERO (1).
  5. Se A = FALSO e B = FALSO, quanto vale A OR B?
    Risposta: FALSO (0).
  6. Cosa dice la legge di De Morgan su NOT (A AND B)?
    Risposta: NOT (A AND B) = NOT A OR NOT B.
  7. Simplifica l’espressione (A AND B) OR (A AND NOT B).
    Risposta: A.

Complimenti, hai imparato i fondamenti dell’algebra booleana! Ora puoi riconoscere come i computer prendono decisioni logiche passo dopo passo.


lunedì 1 dicembre 2025

Corso Pensiero Computazionale e Coding per Tutti: 3 Il linguaggio binario e i sistemi di numerazione

Il linguaggio binario e i sistemi di numerazione

Introduzione: perché il binario?

Immagina un corridoio pieno di lampadine. Ogni lampadina può essere accesa (1) o spenta (0). Con una sola lampadina puoi indicare due stati: acceso/spento. Con due lampadine hai quattro combinazioni (00, 01, 10, 11). Questo è il cuore del linguaggio digitale: segnali ON/OFF, sì/no, 1/0. I computer parlano così perché i componenti elettronici — transistor, porte logiche — funzionano scegliendo tra due stati.


Concetti teorici essenziali

  • Bit = binary digit = 0 o 1.
  • Posizione in un numero binario corrisponde a una potenza di 2. Da destra a sinistra: 2⁰, 2¹, 2², 2³, …
  • Byte = 8 bit. Nibble = 4 bit. Parole (word) dipendono dall’architettura (16, 32, 64 bit).
  • Range valori: con n bit si rappresentano 0 … (2ⁿ − 1) per numeri senza segno.
  • Due-complemento = convenzione per rappresentare numeri negativi (vedremo come funziona).

Tabella rapida potenze di 2 (utile come "tassello" in classe)

  • 2⁰ = 1
  • 2¹ = 2
  • 2² = 4
  • 2³ = 8
  • 2⁴ = 16
  • 2⁵ = 32
  • 2⁶ = 64
  • 2⁷ = 128
  • 2⁸ = 256

Conversioni — esempi passo-passo (eseguiti digit-by-digit)

A) Da binario a decimale — Esempio: 1011

Leggiamo da sinistra (ma calcoliamo per posizione da destra a sinistra):

  • cifre (da sinistra a destra): 1 0 1 1
  • posizioni (da destra): 2³, 2², 2¹, 2⁰ = 8, 4, 2, 1
    Calcolo:
  • 1 × 2³ = 1 × 8 = 8
  • 0 × 2² = 0 × 4 = 0
  • 1 × 2¹ = 1 × 2 = 2
  • 1 × 2⁰ = 1 × 1 = 1
    Somma = 8 + 0 + 2 + 1 = 11 (decimale).

B) Da decimale a binario — Metodo divisione per 2 (resti)

Esempio: convertiamo 156 in binario (mostro ogni divisione: quoziente e resto).

  • 156 ÷ 2 = 78 resto 0
  • 78 ÷ 2 = 39 resto 0
  • 39 ÷ 2 = 19 resto 1
  • 19 ÷ 2 = 9 resto 1
  • 9 ÷ 2 = 4 resto 1
  • 4 ÷ 2 = 2 resto 0
  • 2 ÷ 2 = 1 resto 0
  • 1 ÷ 2 = 0 resto 1 (qui terminiamo)
    Ora leggiamo i resti dal basso verso l’alto: 1 0 0 1 1 1 0 010011100 (binario). Verifica: 128 + 0 + 0 + 16 + 8 + 4 + 0 + 0 = 156.

C) Da decimale a esadecimale (base 16) — esempio: 255

Divisione per 16:

  • 255 ÷ 16 = 15 resto 15 → 15 in esadecimale è F
  • 15 ÷ 16 = 0 resto 15F
    Quindi 255 decimale = FF (esadecimale).

Codifica di caratteri: ASCII (pratica)

I computer memorizzano lettere come numeri. ASCII standard associa ad esempio:

  • "A" → 65 → in binario 01000001 (8 bit).
    Esempio pratico: trasformiamo la parola Tom (passo-passo):
  • T = 84 → dividendo per 2 otteniamo binario: 01010100
  • o = 111 → binario: 01101111
  • m = 109 → binario: 01101101
    Nome in binario: 01010100 01101111 01101101.

(Se vuoi, puoi fornire la tabella ASCII da stampare; per la lezione basta mostrare qualche esempio e far convertire i padroni di casa.)


Operazioni binarie — esempi svolti

A) Addizione binaria — esempio: 1011 + 1101

Allineiamo a destra:

   1011   (11 decimale)
 + 1101   (13 decimale)
 ------

Sommiamo colonna per colonna da destra:

  • colonna 0 (2⁰): 1 + 1 = 2 → scrivo 0, porto 1 (carry).
  • colonna 1 (2¹): 1 + 0 + carry1 = 2 → scrivo 0, porto 1.
  • colonna 2 (2²): 0 + 1 + carry1 = 2 → scrivo 0, porto 1.
  • colonna 3 (2³): 1 + 1 + carry1 = 3 → 3 in binario è 1 con carry 1 (perché 3 = 1 + 2). Scrivo 1, porto 1.
  • carry finale = 1 → lo scrivo a sinistra.

Risultato: 11000.

Verifica in decimale: 11 + 13 = 24 → 11000 in binario = 16 + 8 = 24. Perfetto.

B) Sottrazione con due-complemento — esempio: 13 − 5 (usando 8 bit)

Rappresentazioni (8 bit):

  • 13 = 00001101
  • 5 = 00000101
    Passi per ottenere −5 in due-complemento:
  1. inverti tutti i bit di 5: 11111010
  2. aggiungi 1: 11111010 + 1 = 11111011 (questo è il −5 in due-complemento)
    Ora addiziona 13 + (−5):
  00001101
+ 11111011
= 00001000 (con carry che scarta)

Risultato 00001000 = 8. Corretto.

C) Esempio di overflow (8 bit): 130 + 140

  • 130 = 10000010
  • 140 = 10001100
    Addizione:
  • Somma aritmetica: 130 + 140 = 270
  • In 8 bit il massimo è 255 → abbiamo overflow. Se consideriamo solo gli 8 bit di basso peso otteniamo 00001110 = 14.
    Spiegazione: la somma genera un carry oltre l’ottavo bit, perso se si lavora su 8 bit senza segnalazione → valore risultante = 270 mod 256 = 14.

Esercizi svolti

Esercizio 1 — Converti 19 in binario (passi)

Divisioni:

  • 19 ÷ 2 = 9 r 1
  • 9 ÷ 2 = 4 r 1
  • 4 ÷ 2 = 2 r 0
  • 2 ÷ 2 = 1 r 0
  • 1 ÷ 2 = 0 r 1
    Rivolgi i resti: 10011. Verifica: 16 + 0 + 0 + 2 + 1 = 19.

Esercizio 2 — Usa ASCII: quale è il binario di "C"?

"C" = 67 decimale. Convertiamo:

  • 67 ÷ 2 = 33 r 1
  • 33 ÷ 2 = 16 r 1
  • 16 ÷ 2 = 8 r 0
  • 8 ÷ 2 = 4 r 0
  • 4 ÷ 2 = 2 r 0
  • 2 ÷ 2 = 1 r 0
  • 1 ÷ 2 = 0 r 1
    Resta: 1000011. Con 8 bit (prefisso aggiunto): 01000011.

Esercizio 3 — Addizione: 0110 + 0011

  • 0110 (6) + 0011 (3) = 1001 (9). Passaggi: colonna per colonna, portando eventuali carry (qui nessuno tranne al limite).

Test finale (autovalutazione)

1. Converti in binario:
a) 6 →
b) 13 →
c) 31 →

2. Qual è il valore decimale di 10110?
a) 22 b) 23 c) 21 d) 24

3. Qual è il codice ASCII della lettera C?
a) 65 b) 67 c) 66 d) 68

4. In esadecimale, qual è il simbolo per il valore decimale 15?
a) E b) D c) F d) G

5. Quale rappresentazione binaria è corretta per il numero 9?
a) 1001 b) 1011 c) 0110 d) 1111


10) Soluzioni del test — con spiegazioni passo-passo

1. Converti in binario
a) 6 → divisioni: 6 ÷ 2 = 3 r0; 3 ÷ 2 = 1 r1; 1 ÷ 2 = 0 r1 → leggendo i resti: 110.
b) 13 → 13 ÷ 2 = 6 r1; 6 ÷ 2 = 3 r0; 3 ÷ 2 = 1 r1; 1 ÷ 2 = 0 r1 → resti: 1101.
c) 31 → 31 ÷ 2 = 15 r1; 15 ÷ 2 = 7 r1; 7 ÷ 2 = 3 r1; 3 ÷ 2 = 1 r1; 1 ÷ 2 = 0 r1 → 11111.

2. 10110 → valore decimale
Calcolo posizioni: da destra 2⁰=1, 2¹=2, 2²=4, 2³=8, 2⁴=16
Cifre: 1·16 + 0·8 + 1·4 + 1·2 + 0·1 = 16 + 0 + 4 + 2 + 0 = 22 → risposta a).

3. ASCII di C
A è 65, B 66, C 67 → risposta b). (In binario C = 01000011.)

4. Valore decimale 15 in esadecimale
In esadecimale i simboli 10–15 corrispondono a A–F; quindi 15 → F → risposta c).

5. Rappresentazione binaria del 9
9 = 8 + 1 = 2³ + 2⁰ → cifre 1001 → risposta a).


Corso Fondamenti di Informatica e Reti: 4 Architettura del computer

  ARCHITETTURA DEL COMPUTER come funziona davvero una macchina Capire un computer non significa solo saperlo accendere o aprire file: die...