Lezione 4: Debugging con Scrat
Debugging (correzione degli errori) | 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
- Esercitati con questa lezione del Corso E - Esercizi online 2018 - Sito web per identificare i punti potenzialmente più critici per la tua classe.
- (Facoltativo) Scegli un paio di esercizi da fare in gruppo con tutta la classe.
- Ripassa i Suggerimenti per le principali attività dei corsi di Fondamenti di informatica - Suggerimenti.
- Assicurati che ogni alunno abbia un Diario di bordo - Le proprie riflessioni.
- Ripassa con la tua classe il documento Ricetta per il debugging - Dispensa per gli alunni.
Collegamenti
Attenzione! Fai una copia di tutti i documenti che intendi condividere con gli alunni.
Per gli insegnanti
- Corso E - Esercizi online - Sito web
- Suggerimenti per le principali attività dei corsi di Fondamenti di informatica - Suggerimenti
Per gli alunni
- Diario di bordo - Le proprie riflessioni
- Ricetta per il debugging - Dispensa 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.
Supporto
Segnala un errore
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 E - Esercizi online 2018 - 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
- 4.L.6 - Acquisire e utilizzare in modo accurato parole e frasi accademiche generali e frasi specifiche del settore, comprese quelle che segnalano azioni precise, emozioni o stati d'essere (ad esempio, interrogato, lamentato, balbettato) e che sono fondamentali per un particolare argomento (ad esempio
SL - Parlare e ascoltare
- 4.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.
- 4.SL.1.b - Seguire le regole concordate per le discussioni e svolgere i ruoli assegnati.
- 4.SL.6 - Distinguere tra contesti che richiedono un inglese formale (ad esempio, presentare idee) e situazioni in cui il discorso informale è appropriato (ad esempio, discussione in piccoli gruppi) usare l'inglese formale quando è appropriato per il compito e la 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.