Lezione 4: Debugging con Scrat

Bug (errore) | Debugging (correzione degli errori) | Scrat | L'Era Glaciale

Panoramica

L'attività di ricerca e correzione degli errori (debugging) è un elemento essenziale nell'apprendimento della programmazione. In questa lezione gli alunni incontreranno esercizi che sono stati risolti in modo errato. Dovranno quindi esaminare il codice esistente per identificare gli errori, come cicli errati, blocchi mancanti, blocchi in eccesso e blocchi fuori posto.

Traguardo di apprendimento

Gli alunni della tua classe potrebbero sentirsi frustrati da questa lezione a causa della natura stessa del debugging. Il debugging è un'attività molto importante per la programmazione informatica. Gli informatici devono diventare molto bravi a gestire gli errori nei programmi. Il debugging costringe gli alunni a riconoscere le anomalie e a correggerle. Questo processo mentale sviluppa molto il pensiero critico e le capacità di risoluzione dei problemi.

Pianificazione

Introduzione (15 min)

Attività principale (30 min)

Conclusione (5 - 10 min)

Approfondimenti

Visualizza in Code Studio

Obiettivi

Gli alunni saranno in grado di:

  • prevedere dove un programma sbaglierà
  • modificare un programma esistente per correggere degli errori
  • riflettere sul processo di debugging in modo appropriato alla propria età

Preparazione

Collegamenti

Attenzione! Fai una copia di tutti i documenti che intendi condividere con gli alunni.

Per gli insegnanti

Per gli alunni

Glossario

  • Bug (errore) - Parte di un programma che non funziona correttamente.
  • Debugging (correzione degli errori) - Individuazione e risoluzione di problemi in un algoritmo o in un programma.

Guida didattica

Introduzione (15 min)

Presentazione

Chiedi agli alunni di pensare ai problemi che devono risolvere nella vita di tutti i giorni.

  • Come aggiusti qualcosa che non funziona?
  • Segui una serie di passaggi specifici?
  • Gli esercizi di questa unità sono già stati risolti per te (sì!), ma non sembra che funzionino (buu!)
  • Nei programmi gli errori li chiamiamo "bug" e sarà tuo compito fare il "debugging".

Glossario

In questa lezione introduciamo tre nuovi ed importanti termini.

  • Bug - Ripetiamo insieme: Bag. Qualcosa che non funziona. Un errore.

  • Debugging - Ripetiamo insieme: De-bag-ghin. Trovare e correggere gli errori (i bug).

  • Perseveranza - Ripetiamo insieme: Per-se-ve-ran-za. Non arrendersi. Continuare ad insistere in ciò che si sta facendo, fino a raggiungere il risultato voluto. Si hanno maggiori probabilità di successo se si fanno molti tentativi, in molti modi diversi.

Spiegazione

Il debugging è un processo. Innanzitutto, devi riconoscere la presenza di un errore nel tuo programma. Quindi devi analizzarlo passo dopo passo per trovare l'errore. Prova il primo passo, ha funziona? Quindi il secondo, che ne dici adesso? Se procedi controllando che tutto funzioni riga per riga, quando arrivi al punto in cui il tuo codice non fa quello che dovrebbe, sai di aver trovato un bug. Una volta scoperto dove si trova il bug, puoi lavorare per eliminarlo, completando quindi il "debuging"!

Se pensi che possa piacere alla tua classe, inizia ad introdurre il personaggio dell'esercizio di oggi: Scrat dell'Era Glaciale. Se gli alunni non hanno familiarità con Scrat, cerca alcuni video dell'eccentrico scoiattolo che si mette sempre nei guai.

Attività principale (30 min)

Corso F - Esercizi online - Sito web

Prima di consentire agli alunni di iniziare ad utilizzare il computer, ricorda loro i vantaggi della Programmazione in coppia - Video per gli alunni e di chiedere aiuto ai loro coetanei. Fai sedere gli alunni suddivisi a coppie e consigliagli di chiedere aiuto ad almeno due di loro prima di rivolgersi ad un insegnante.

Come indicato nell'obiettivo di questa lezione, assicurati che gli alunni siano consapevoli che dovranno affrontare esercizi frustranti. Di' loro che è normale sentirsi frustrati, ma è importante risolvere i problemi che si incontrano e chiedere aiuto se necessario. Mentre gli alunni risolvono gli esercizi, gira tra i banchi per assicurarti che nessun alunno si blocchi e non sia disposto a continuare.

Conclusione (5 - 10 min)

Diario di bordo

Far scrivere agli alunni ciò che hanno appreso, perché è utile e come si sentono al riguardo, può aiutare a consolidare le conoscenze acquisite oggi e a creare un riferimento da consultare in futuro.

Spunti per il diario di bordo

  • Di cosa trattava la lezione di oggi?
  • Come ti sei sentito durante la lezione di oggi?
  • Che tipo di errori (bug) hai trovato oggi?
  • Disegna un'immagine relativa ad un bug che hai incontrato in uno degli esercizi di oggi. Cosa hai fatto per "eseguire il debugging" del programma?

Approfondimenti

Sfrutta queste attività per migliorare l'apprendimento degli studenti. Possono essere anche utilizzate come attività extra-scolastiche.

Inserire errori

Proponi agli alunni di tornare agli esercizi della lezione precedente ed aggiungere intenzionalmente degli errori alle loro soluzioni. Dopo di che devono chiedere a dei compagni di eseguire il debugging del loro programma. Questo lavoro può essere realizzato anche programmando su carta.

Quando altri alunni eseguono il debugging, assicurati che le critiche siano costruttive. Se temi che questo possa essere un problema, anticipa l'attività mostrando come deve avvenire un debugging rispettoso eseguendolo con un alunno.

Mappatura delle competenze

Visualizza la mappatura completa del corso

CSTA K-12 Computer Science Standards (2017)

AP - Algoritmi e programmazione
  • 1B-AP-08 - Confronta e perfeziona più algoritmi per la stessa attività e determina quale è quello più adatto.
  • 1B-AP-11 - Scompone (suddivide) i problemi in sotto-problemi più piccoli e gestibili per facilitare il processo di sviluppo del programma.

Competenze interdisciplinari

Questo elenco riporta le competenze di altre materie sulle quali gli alunni hanno l'opportunità di esercitarsi in questa lezione.

Competenze linguistiche

L - Lingua
  • 5.L.6 - Acquisire e utilizzare parole e frasi accademiche generali e specifiche del dominio appropriate al livello scolare, comprese quelle che segnalano contrasto, addizione e altre relazioni logiche (ad esempio, tuttavia, sebbene, allo stesso modo, in aggiunta, in aggiunta).
SL - Parlare e ascoltare
  • 5.SL.1 - Impegnarsi efficacemente in una serie di discussioni collaborative (in coppia, in gruppo e guidate dall'insegnante) con diversi compagni su argomenti e testi della quinta classe, basandosi sulle idee altrui ed esprimendo chiaramente le proprie.
  • 5.SL.1.a - Presentarsi alle discussioni preparato, dopo aver letto o studiato il materiale richiesto; attingere esplicitamente a quella preparazione e ad altre informazioni note sull'argomento per esplorare le idee in discussione.
  • 5.SL.4 - Riferire su un argomento o testo o presentare un'opinione, sequenziando le idee in modo logico e utilizzando fatti appropriati e dettagli pertinenti e descrittivi a supporto delle idee o dei temi principali; parlare chiaramente a un ritmo comprensibile.
  • 5.SL.6 - Adattare il discorso a una varietà di contesti e compiti, utilizzando l'inglese formale quando appropriato al compito e alla situazione.

Competenze matematiche

MP - Esercizi di matematica
  • MP.1 - Comprende il significato dei problemi e persevera nella loro soluzione.
  • MP.2 - Ragiona in modo astratto e quantitativo.
  • MP.4 - Modellare con la matematica
  • MP.5 - Utilizza strategicamente strumenti appropriati.
  • MP.6 - Punta alla precisione.
  • MP.7 - Cerca e fa uso di strutture.
  • MP.8 - Cerca ed esprime delle regolarità nel ragionamento ciclico.

Competenze scientifiche

ETS - Engineering in the Sciences
ETS1 - Progettazione
  • 3-5-ETS1-1 - Definire un semplice problema di progettazione che rifletta un'esigenza o un desiderio che includa criteri specifici per il successo e vincoli su materiali, tempi o costi.
  • 3-5-ETS1-2 - Generare e confrontare più possibili soluzioni a un problema in base alla probabilità che ciascuna soddisfi i criteri e i vincoli del problema.
  • 3-5-ETS1-3 - Pianificare ed eseguire test equi in cui le variabili sono controllate e i punti di guasto sono considerati per identificare gli aspetti di un modello o prototipo che possono essere migliorati.