Lezione 3: Correzione di errori nel labirinto

Debugging (correzione degli errori) | Bug (errore) | Labirinto

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 C - Esercizi online 2018 - Sito web

Prima di consentire agli alunni di iniziare l'attività sul computer, ricorda loro i vantaggi della Programmazione in coppia - Video per gli alunni e quelli di chiedere aiuto tra compagni. Fai sedere gli alunni in coppia e consiglia loro di chiedere aiuto ad almeno due compagni prima di consultare un insegnante.

Come indicato nel traguardo di apprendimento di questa lezione, assicurati che gli alunni siano consapevoli di dover affrontare esercizi potenzialmente frustranti. Ricordagli che è normale sentirsi frustrati, ma è importante risolvere il problema e chiedere aiuto. Mentre gli alunni svolgono gli esercizi, gira tra i banchi per assicurarti che nessuno si senta così bloccato da non essere più 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
  • 1A-AP-09 - Modella il modo in cui i programmi memorizzano e manipolano i dati utilizzando numeri o altri simboli per rappresentare le informazioni.
  • 1A-AP-11 - Individua (scompone) i passaggi necessari per risolvere un problema in una sequenza precisa di istruzioni.

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
  • 2.L.6 - Utilizzare parole e frasi acquisite attraverso conversazioni, letture e in risposta ai testi, incluso l'uso di aggettivi e avverbi per descrivere (ad esempio, quando gli altri bambini sono felici, la cosa mi rende felice).
SL - Parlare e ascoltare
  • 2.SL.1 - Partecipare a conversazioni collaborative con diversi compagni su argomenti e testi di seconda elementare con compagni e adulti in gruppi piccoli e più grandi.

Competenze matematiche

G - Geometria
  • 2.G.1 - Riconoscere e disegnare forme con attributi specifici, come un dato numero di angoli o un dato numero di facce uguali.5 Identifica triangoli, quadrilateri, pentagoni, esagoni e cubi.
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.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.
OA - Operazioni e pensiero algebrico
  • 2.OA.1 - Usa l'addizione e la sottrazione entro il numero 100 per risolvere problemi formulati a parole in una o due fasi che implicano situazioni in cui bisogna aggiungere, sottrarre, mettere insieme, smontare e confrontare, con incognite in tutte le posizioni, ad esempio usando disegni ed equazioni con un sistema

Competenze scientifiche

ETS - Engineering in the Sciences
ETS1 - Progettazione
  • K-2-ETS1-1 - Porre domande, fare osservazioni e raccogliere informazioni su una situazione che le persone vogliono cambiare per definire un semplice problema che può essere risolto attraverso lo sviluppo di un oggetto o strumento nuovo o migliorato.
  • K-2-ETS1-2 - Sviluppare un semplice schizzo, disegno o modello fisico per illustrare come la forma di un oggetto lo aiuti a funzionare come necessario per risolvere un dato problema.
  • K-2-ETS1-3 - Analizzare i dati dai test di due oggetti progettati per risolvere lo stesso problema per confrontare i punti di forza e di debolezza di come ciascuno si comporta.