lunedì 23 febbraio 2026

Corso di Programmazione Strutturata e OOP: 4 Debugging trovare e correggere errori

 


🔧 4 DEBUGGING: TROVARE E CORREGGERE ERRORI

Questa guida è strutturata per trasformare il debugging da momento di frustrazione a processo metodico di indagine scientifica. Debuggare non significa solo "aggiustare il codice", ma comprendere profondamente il flusso d'esecuzione del software.

1. Tassonomia degli Errori: Identificare il Nemico

In Python, non tutti gli errori si manifestano allo stesso modo. Saperli distinguere è il primo passo per risolverli.

  • Errori Sintattici (Syntax Errors): Sono violazioni delle regole grammaticali del linguaggio. Il codice non viene nemmeno avviato.

    • Esempio: if x = 5: (manca il doppio uguale) o una parentesi non chiusa.

  • Errori di Runtime (Exceptions): Il codice è scritto bene, ma accade qualcosa di imprevisto durante l'esecuzione che il computer non sa gestire.

    • Esempio: 10 / 0 (ZeroDivisionError) o cercare di aprire un file che non esiste.

  • Errori Logici (Semantic Errors): I più insidiosi. Il programma gira senza errori, ma il risultato è sbagliato.

    • Esempio: Calcolare la media dividendo per un numero errato o usare > al posto di <.

2. Strategie di Debugging: L'Approccio Metodico

Invece di cambiare il codice a caso sperando che funzioni, segui queste tecniche:

  1. Isolamento (Divide et Impera): Se hai un programma di 100 righe, commentane una parte o sposta le funzioni sospette in un file separato per testarle singolarmente.

  2. Stampe di Controllo (Print Debugging): Inserire print(f"Valore di x: {x}") prima e dopo un'operazione critica per verificare se i dati sono quelli attesi.

  3. Rubber Duck Debugging: Spiegare il codice riga per riga a un oggetto inanimato (o a un collega). Spesso l'errore balza all'occhio nell'atto di verbalizzare la logica.

3. Strumenti Avanzati: Usare l'IDE come un Chirurgo

I moderni ambienti di sviluppo (IDE) offrono strumenti molto più potenti della semplice stampa a video.

Breakpoints e Step Execution

  • Breakpoint: Un "posto di blocco" che metti su una riga di codice. L'esecuzione si fermerà esattamente lì.

  • Step Over: Esegue la riga corrente e passa alla successiva.

  • Step Into: Entra dentro una funzione per vedere cosa succede al suo interno.

  • Variable Watch: Una finestra che mostra il valore di tutte le variabili attive. Se vedi un None dove ti aspetti un numero, hai trovato il colpevole.

Consiglio didattico: Su Thonny, l'icona della "fogliolina" (Debug current script) permette di vedere Python che valuta ogni singola sotto-espressione, ideale per i principianti.

4. Decifrare il Traceback (Il Messaggio di Errore)

Il Traceback è la "scatola nera" del tuo crash. Va letto dal basso verso l'alto:

  1. L'ultima riga ti dice cosa è successo (es. NameError: name 'y' is not defined).

  2. Le righe precedenti ti dicono dove è successo (file e numero di riga).

5. Attività Didattiche Proposte

AttivitàDescrizioneObiettivo
Caccia al BugFornire un codice che calcola l'area del cerchio ma usa + invece di *.Distinguere tra errore logico e sintattico.
Diario del DebugChiedere allo studente di scrivere: "Cosa pensavo facesse il codice" vs "Cosa faceva davvero".Sviluppare metacognizione.
Analisi del FlussoUsare il debugger di VS Code per monitorare un ciclo for che non termina mai.Capire il controllo di flusso e le condizioni di uscita.

Corso di Programmazione Strutturata e OOP: 4 Debugging trovare e correggere errori

  🔧 4  DEBUGGING: TROVARE E CORREGGERE ERRORI Questa guida è strutturata per trasformare il debugging da momento di frustrazione a proc...