Prima di scrivere un programma, bisogna capire che cosa significa programmare una macchina. Un computer può eseguire compiti diversi perché memorizza istruzioni e dati; modificando il programma, cambia il comportamento senza ricostruire la macchina. Questa è la prima unità del percorso Fondamenti di programmazione 1 per la classe terza.
Programmi, sistemi esperti e machine learning
Nella programmazione tradizionale il programmatore definisce le istruzioni per risolvere il problema. In un sistema esperto si applicano fatti e regole fornite da specialisti mediante un motore di inferenza. Nel machine learning un algoritmo apprende regolarità dai dati durante l’addestramento: rimane comunque necessario programmare, preparare i dati e verificare il sistema.
| Approccio | Chi definisce il comportamento | Esempio |
|---|---|---|
| Programma tradizionale | Algoritmo esplicito | Calcolare la media |
| Sistema esperto | Regole e fatti codificati | Diagnosi guidata di guasti |
| Machine learning | Parametri appresi dagli esempi | Classificazione di immagini |
Il modello di Von Neumann
La memoria conserva istruzioni e dati; la CPU esegue istruzioni grazie all’unità di controllo e all’unità aritmetico-logica (ALU). Dispositivi di input e output consentono lo scambio di informazioni con l’esterno. I registri sono memorie interne molto veloci della CPU.
Il ciclo macchina: fetch, decode, execute
- Fetch: la CPU preleva dalla memoria l’istruzione da eseguire.
- Decode: l’unità di controllo interpreta l’istruzione e prepara le operazioni.
- Execute: la CPU esegue l’operazione, aggiorna se necessario registri e memoria e prosegue.
Dal problema al linguaggio di programmazione
Un algoritmo è una strategia risolutiva descritta in passi finiti e non ambigui. Per eseguirlo su un computer, lo traduciamo in un linguaggio di programmazione. I linguaggi ad alto livello, come C# o C++, sono più vicini all’espressione umana del procedimento rispetto al linguaggio macchina. Un compilatore traduce il codice sorgente; altri ambienti utilizzano un interprete o un’esecuzione ibrida.
Primo esempio in C#
Console.WriteLine("Il computer esegue istruzioni.");
Console.WriteLine("Il risultato è visibile sullo schermo.");La prima istruzione produce una riga di testo; la seconda produce una nuova riga. L’esecutore le segue nell’ordine definito dal programma.
Esercizi di comprensione
- Disegna un blocco per memoria, CPU, input e output. Aggiungi frecce che rappresentino il movimento di dati e istruzioni.
- Spiega con un esempio la differenza fra un algoritmo a regole e un modello addestrato sui dati.
- Indica quali sono le tre fasi del ciclo macchina e descrivi che cosa accade in ciascuna.
Errore da evitare: non confondere la memoria centrale con l’archiviazione permanente: i programmi sono conservati su supporti di memorizzazione e caricati in memoria per l’esecuzione.
Nel percorso: Indice del corso · Variabili →


