Dispense delle lezioni di Fondamenti di Programmazione

Introduzione al linguaggio C

Autore/Autrice

Matteo Fraschini

Data di Pubblicazione

23/06/2026

Prefazione

Questa versione web open access delle dispense delle lezioni di Fondamenti di Programmazione: Introduzione al linguaggio C è e rimarrà sempre gratuita per gli studenti.

Trattandosi di un progetto in continua evoluzione, se durante lo studio dovessi riscontrare refusi, errori nel codice o inesattezze, ti invito a collaborare segnalandoli tramite l’apertura di una Issue.

Tutto il materiale presente in queste dispense è distribuito sotto licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo (CC BY-NC-SA 4.0). Siete incoraggiati a utilizzare, condividere e adattare questi contenuti, a patto di citarne la fonte originaria, non farne un uso commerciale e rilasciare le eventuali modifiche adottando questa medesima licenza.

Caro studente, questo documento è per te. So bene che seguire le lezioni a volte può essere faticoso e che, anche quando l’interesse è alto, ci sono mille motivi che rendono difficile tornare a casa e mettersi subito a studiare. Qui troverai i concetti fondamentali che abbiamo trattato in aula, sintetizzati per offrirti una guida chiara su ciò che ritengo davvero essenziale.

Oggi, nell’era del “vibe coding” in cui basta descrivere un programma in linguaggio naturale perché un LLM lo generi, studiare la programmazione può sembrare un esercizio inutile. Non è così. L’IA ha reso invisibile il livello più basso dell’informatica, ma quel livello esiste ancora (ci sono ancora la memoria da gestire, i puntatori, i compilatori e le sequenze di bit). Se non capisci cosa succede sotto l’astrazione, non avrai mai gli strumenti per accorgerti quando l’IA produce un codice errato o inefficiente. Il ruolo del programmatore si sta spostando verso l’alto, verso la progettazione e la supervisione critica. Per questo serve ancora una comprensione profonda.

Questo testo è un “lavoro in corso”. Ovviamente non sostituisce i libri di testo e, soprattutto, non sarà sufficiente se non dedicherai del tempo a sperimentare direttamente. Imparare a programmare non significa semplicemente memorizzare la sintassi di un linguaggio, richiede creatività, pensiero logico e una buona dose di determinazione.

Una caratteristica inevitabile di queste dispense, e della programmazione in generale, è che alcuni argomenti non possono essere introdotti in ordine sequenziale. Accadrà di usare uno strumento prima di averne compreso appieno il funzionamento, o di ricevere una spiegazione parziale che si completerà solo più avanti, quando avrai le conoscenze necessarie per affrontarla in modo rigoroso. Quando ti troverai in questa situazione, non preoccuparti. Prendi nota del dubbio e vai avanti.

Per ogni altra informazione in merito al corso, alla sua organizzazione e alla modalità di verifica dell’apprendimento fai riferimento alla mia pagina personale.