Lesson 8: Debugging con la collezionista

Debugging (correzione degli errori) | Bug (errore) | Collezionista | Laura

Overview

In questa attività online, gli alunni si eserciteranno con il debugging nell'ambiente della collezionista. Potranno esercitarsi leggendo e modificando il codice per risolvere gli esercizi con semplici algoritmi, cicli e cicli annidati.

Purpose

Il traguardo di apprendimento di questa lezione è di insegnare agli alunni che, mentre si acquisisce una nuova abilità, il fallimento è normale. Agli alunni verranno forniti programmi già scritti che NON funzionano. Gli verrà quindi chiesto di correggere questi programmi. L'apprendimento di questo processo, chiamato "debugging", porta con sé le competenze basilari del problem solving e del pensiero critico. Queste competenze si trasferiscono man mano che gli alunni procedono verso progetti di programmazione sempre più difficili.

Agenda

Introduzione (15 min)

Attività ponte - Debugging (15 min)

Attività principale (30 min)

Conclusione (15 min)

View on Code Studio

Objectives

Students will be able to:

  • leggere e comprendere il codice fornito
  • individuare un bug ed i relativi problemi che causa in un programma
  • descrivere e mettere in atto un piano per eseguire il debugging di un programma

Preparation

Collegamenti

Heads Up! Please make a copy of any documents you plan to share with students.

For the Teachers

For the Students

Vocabulary

  • 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.

Support

Report a Bug

Teaching Guide

Introduzione (15 min)

Presentazione

Una delle parti più importanti dell'apprendimento della programmazione è imparare ad eseguire il debugging. Chiedi agli alunni se hanno già dovuto affrontare il fallimento mentre stavano imparando una nuova abilità.

Ad esempio:

  • cadere mentre imparavano ad andare in bicicletta,
  • bruciare del cibo mentre imparavano a cucinare,
  • perdere una partita quando stavano imparando uno nuovo sport.

È normale dover affrontare il fallimento quando si imparano cose nuove. Invita gli alunni a raccontare come hanno gestito i loro fallimenti passati.

Capita spesso agli informatici di imbattersi in "bug" nel loro codice.

  • Bug - Parte di un programma che non funziona correttamente.

Un bug può compromettere il funzionamento di un programma, è quindi importante imparare ad eseguire il "debugging" del codice.

  • Debugging - Individuazione e risoluzione di problemi in un algoritmo o in un programma.

Approfondisci la conversazione se pensi che la classe ne abbia bisogno, ma lascia del tempo per una delle attività ponte.

Attività ponte - Debugging (15 min)

Questa attività aiuterà a portare i concetti del debugging imparati nell'attività tradizionale "Programmazione a staffetta" nel mondo tecnologico in cui si stanno spostando gli alunni. Scegli una delle seguenti attività da svolgere con la tua classe.

Attività tradizione con l'uso di blocchi di carta

Suddividi la classe in squadre di 3-5 alunni in uno spazio sufficientemente ampio, come una palestra o un luogo all'aperto. Metti le squadre in fila come in "Programmazione a staffetta". Scegli uno schema di difficoltà intermedia da Programmazione a staffetta - Materiali dell'attività. Posiziona il disegno a lunga distanza di fronte ad ogni squadra. Insieme al disegno, fornisci ad ogni squadra parecchi blocchi di carta tratti da Blocchi Blockly tradizionali (Corsi C-F) - Scheda da ritagliare. Ogni squadra avrà bisogno di parecchi blocchi riempi 1 e vai ___. I blocchi vai ___ possono essere compilati in anticipo o durante l'esecuzione dell'attività. In ogni caso, controlla che questi blocchi siano compilati correttamente al termine dell'attività.

Una volta che tutte le squadre sono allineate, mostra o leggi le seguenti regole.

  • Il primo alunno di ogni fila deve correre all'immagine, esaminarla ed inserire il primo blocco di codice necessario per riprodurre quell'immagine.
  • Questo alunno quindi corre indietro, tocca l'alunno successivo della fila e poi si posiziona in fondo alla fila.
  • Il compagno toccato corre all'immagine, la osserva, analizza il programma che è già stato scritto, esegue il debugging del programma eliminando un blocco di codice errato o aggiungendone uno nuovo. Quindi si precipita indietro per toccare la persona successiva e il processo continua finché un gruppo non ha terminato il programma.

Controlla che gli alunni utilizzino solo i blocchi riempi 1 o vai ___, e ne piazzino solo uno per turno. Vince la prima squadra che scrive correttamente tutto il codice che realizza l'immagine.

Anteprima degli esercizi online con tutta la classe

Suddividi la classe in squadre di 3 alunni. Scegli un esercizio di questa lezione del Corso D - Esercizi online 2018 - Sito web. Ti consigliamo l'esercizio 3. Chiedi agli alunni di ogni squadra di sedersi a un computer e visualizzare l'esercizio. Ogni squadra riceve un solo computer e solo un alunno può guardare lo schermo. Mostra o leggi le seguenti regole.

  • Un solo un alunno di ogni squadra può guardare lo schermo.
  • Questo alunno può eliminare o aggiungere solo un blocco. Una volta che ha aggiunto o rimosso un blocco, tocca la spalla dell'alunno successivo.
  • Quest'ultimo procede con il suo turno.
  • Non si può ripetere o saltare alcun turno, tutti devono giocare lo stesso numero di volte.

Vince la prima squadra che termina correttamente l'esercizio!

Attività principale (30 min)

Corso D - Esercizi online 2018 - Sito web

Potrebbe essere utile che gli alunni si dispongano con le stesse squadre delle attività ponte. Anche se ogni alunno dovrebbe lavorare su questi esercizi individualmente o in coppia, avere un gruppo affiatato per porre e rispondere alle domande può aiutarli a sviluppare sicurezza e comprensione dell'argomento.

Conclusione (15 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?
  • Cos'è un bug? Come fai a sapere che c'è un bug nel tuo programma?
  • Cosa significa eseguire il debugging del codice? Come si esegue il debugging di un programma?
View on Code Studio

Student Instructions

"These blocks are really bugging me!"

Fix the error(s) to collect all of the nectar.

View on Code Studio

Student Instructions

"Ooh, this one stings!"

Fix the error(s) to collect all of the nectar.

View on Code Studio

Student Instructions

"These blocks are really bugging me."

Fix the error(s) to collect all of the nectar and make all of the honey.

View on Code Studio

Student Instructions

"This could be sweet!"

Fix the error(s) to make all of the honey.

View on Code Studio

Student Instructions

Challenge: "This puzzle is making me loopy!"

All of the commands that you need are already here...now use your debugging skills to figure out how to solve this puzzle.

View on Code Studio

Student Instructions

Challenge: Fix the errors to collect all of the nectar and make all of the honey.

View on Code Studio

Student Instructions

"Such a sticky situation!"

Help the bee find his mistakes.

View on Code Studio

Student Instructions

"So many lovely flowers!"

Help the bee fix the code to get all the nectar.

View on Code Studio

Student Instructions

"It's nectar-topia!"

Help the bee fix the code to get all the nectar.

View on Code Studio

Student Instructions

Look closely at the code below. Why won't the bee collect all of the nectar when you click "Run"? Warning: This is a tricky question, make sure you read all of the options before answering!

The bee will turn the wrong way when making a square.

The loop does not run long enough for the bee to get to all flower bunches.

The bee turns the wrong way and the loop doesn't run long enough to get all of the flowers.

I don't know.

Standards Alignment

View full course alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algoritmi e programmazione
  • 1B-AP-11 - Scompone (suddivide) i problemi in sotto-problemi più piccoli e gestibili per facilitare il processo di sviluppo del programma.

Cross-curricular Opportunities

This list represents opportunities in this lesson to support standards in other content areas.

Competenze linguistiche

L - Lingua
  • 3.L.6 - Acquisire e utilizzare parole e frasi colloquiali, accademiche generali e specifiche del dominio appropriate al livello scolare, comprese quelle che segnalano le relazioni spaziali e temporali (ad esempio, dopo cena quella sera siamo andati a cercarli).
SL - Parlare e ascoltare
  • 3.SL.1 - Impegnarsi efficacemente in una serie di discussioni collaborative (a tu per tu, 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.

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.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
  • 3.OA.3 - Usare la moltiplicazione e la divisione entro 100 per risolvere problemi di parole in situazioni che coinvolgono gruppi uguali, matrici e quantità di misura, ad esempio utilizzando disegni ed equazioni con un simbolo per il numero sconosciuto per rappresentare il problema.1

Competenze scientifiche

ETS - Engineering in the Sciences
ETS1 - Progettazione
  • 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.