Skip to main content
Skip to Main Content
Skip to main content
Navigazione

Incorporare le conversazioni nel debug

By Audra Selkowitz Oct 18, 2023

Ogni volta che gli studenti codificano un robot per completare una sfida, portare a termine il compito è solo una parte di ciò che stanno imparando. All'interno di questa sfida sono incorporati obiettivi di apprendimento più ampi sui concetti di codifica, sulla pianificazione del percorso o sulla collaborazione, ecc. Tuttavia, quando arriva il momento di aiutare gli studenti a eseguire il debug o la risoluzione dei problemi di un progetto, troppo spesso il nostro impulso è quello di "spegnere gli incendi", per così dire, e dare soluzioni o offrire comandi che "aggiusteranno" il progetto per i nostri studenti. Anche se questo potrebbe portare gli studenti a completare il compito, non li sta necessariamente aiutando a imparare gli obiettivi più grandi della sfida, né è sostenibile per noi come insegnanti. E quando arriva il momento di valutare l'apprendimento degli studenti, conoscere il risultato finale del progetto non fornisce necessariamente un quadro accurato della comprensione degli studenti. 

Uno dei modi migliori per sapere se uno studente ha afferrato un particolare concetto è chiederglielo. Ciò può valere anche per il processo di debug. Costruire conversazioni nel nostro processo di debug, può aiutare gli studenti a rallentare, riflettere sui loro progetti, impegnarsi in discussioni di codifica significative e imparare di più su come portare il robot dal punto A al punto B. Non solo questo ci dà un prezioso feedback formativo, ma rende anche il processo più centrato sullo studente, ponendo la spiegazione e l'agenzia dello studente al centro del debug. 

Identificare l'intenzione

Prima di poter iniziare qualsiasi tipo di debug, dobbiamo sapere una cosa importante: cosa dovrebbe fare questo progetto? Il debug, o risoluzione dei problemi, arriva quando il robot fa qualcosa di diverso da quello che era stato pianificato o previsto. Come insegnanti, spesso conosciamo il compito, tuttavia, la bellezza dell'informatica è che ci sono diversi modi per risolvere un problema. Quindi, in che modo questo particolare gruppo sta affrontando il compito? Chiedere agli studenti di articolare il loro piano offre preziose informazioni sulla loro comprensione della sfida nel suo complesso. Capiscono cosa dovrebbero fare ad alto livello e quindi hanno una strategia per risolvere la sfida che ha senso? 

Facilitare le conversazioni di programmazione

Queste domande e suggerimenti iniziali possono aiutare te e i tuoi studenti a rallentare e a riflettere davvero su ciò che stanno cercando di fare con il loro robot. A seconda degli obiettivi di apprendimento degli studenti, il tipo di conversazioni che hai varierà. Per i programmatori alle prime armi, potresti concentrarti maggiormente su cose come il sequenziamento e la decomposizione: gli studenti comprendono i passaggi necessari per completare l'attività e l'ordine in cui tali comportamenti devono essere eseguiti dal robot? Per gli studenti più avanti, potresti voler concentrarti maggiormente sulla risoluzione dei problemi o sull'iterazione: gli studenti sanno come capire se le loro iterazioni sono efficaci?

Esempi di suggerimenti dall'articolo Facilitating Coding Conversations

Esempi di suggerimenti dall'articolo Facilitating Coding Conversations

Durante tutto il processo di debug, questi tipi di conversazioni sono uno strumento importante per aiutarti a capire a che punto sono gli studenti nel loro processo di apprendimento, così come nel loro processo di codifica. Questo articolo (parte del quale è illustrato qui) contiene alcuni ottimi suggerimenti e domande che puoi utilizzare per facilitare le conversazioni di programmazione con i tuoi studenti, in base ai loro obiettivi di apprendimento. 

Potresti pubblicare i suggerimenti di quell' articolo nella tua classe, in modo che studenti e insegnanti possano fare riferimento a loro. Possiamo modellare queste conversazioni per stabilire le aspettative per gli studenti, ma è importante che gli studenti abbiano queste stesse conversazioni di codifica tra loro per aiutare a costruire le loro capacità di codifica collaborativa. Nel corso del tempo, la voce dell'insegnante come "leader" della conversazione rispetto agli studenti che li guidano da soli può cambiare, dando voce all'idea di apprendimento centrato sullo studente in modo udibile e genuino.

Continuare le conversazioni durante il debug

Queste conversazioni possono continuare mentre lavori al debug del progetto. Una volta stabilito che gli studenti comprendono l'obiettivo e qual è il loro piano per risolvere il problema, hai un punto di partenza, mentre confronti il codice con il comportamento osservato del robot per vedere dove e come sorgono i problemi. Questa è la parte che spesso attraversiamo di corsa, ma che possiamo davvero trarre beneficio dal rallentare e parlare con i nostri studenti.

Lo sapevi? 

Prima di immergerti nel progetto VEXcode, assicurati che il tuo robot fisico sia costruito e configurato correttamente.

Controllare sempre che i cavi siano collegati in modo sicuro e nelle porte giuste, che la configurazione del robot corrisponda alla build, che la batteria sia carica e che il firmware del Brain sia aggiornato.

Si tratta di soluzioni semplici che possono risolvere il problema e consentire agli studenti di tornare a concentrarsi sull'apprendimento dell'informatica e sulla sfida della codifica in generale.

Un modo per costruire queste conversazioni nel debug è rallentare fisicamente l'esecuzione del progetto, per dare a te e ai tuoi studenti il tempo di fare previsioni su ciò che il robot farà in ogni fase del progetto. Ci sono diversi modi per farlo: 

  • Usa i comandi di velocità per rallentare l'azionamento del robot e girare la velocità al 10 o al 20%, in modo che si muova più lentamente nel progetto e ti permetta di parlare di cosa succederà dopo e perché. 
  • Utilizza la funzione Step in 123, GO o VR per controllare l'esecuzione del progetto eseguendo un blocco alla volta. Prima di eseguire un blocco, puoi chiedere agli studenti di prevedere cosa farà il robot e perché, quindi passare attraverso quel blocco per vedere se il comportamento effettivo del robot corrisponde alla previsione. 
  • Esegui piccole sezioni di un progetto alla volta per identificare più chiaramente dove si trova la disconnessione. È possibile abilitare o disabilitare i comandi, o se si codifica con blocchi, separare i blocchi dallo stack, per eseguire solo quelli collegati al {When started} blocco. 

Mentre ti muovi nel progetto più lentamente, puoi porre domande per aiutare gli studenti ad applicare il loro apprendimento per fare previsioni sul comportamento del robot durante tutto il progetto. Come domande come: 

  • Cosa pensi che farà il robot quando verrà eseguito questo blocco/comando? Perché? 
  • Fino a che punto si muoverà il robot? Come fai a saperlo? 
  • Dove girerà il robot? Perché? 
  • Quale feedback del sensore viene utilizzato dal progetto qui? Come viene utilizzato?

Con questo processo di conversazione, tu e i tuoi studenti avete la possibilità di vedere dove si trova la disconnessione dal punto di vista dell'apprendimento. Questo ti aiuta non solo a modellare pratiche efficaci di risoluzione dei problemi, ma anche ad aiutare gli studenti a comprendere il loro codice a livello concettuale, preparandoli ad applicare tale apprendimento a progetti e sfide futuri. 

Costruire la comprensione con le conversazioni di debug

Un altro modo per raggiungere l'obiettivo della comprensione concettuale è utilizzare gli strumenti di debug come punto di partenza per le conversazioni che aiutano a rendere visibili e più facili da capire i concetti astratti. Ad esempio, la funzione Monitor in 123, GO e VR, o la stampa di valori sulla schermata Brain o sulla console di stampa per IQ, EXP o V5, offrono agli studenti un modo per vedere i dati dei sensori mentre un progetto è in esecuzione in tempo reale.

Nel progetto di cui sopra, l'incarico è quello di navigare attraverso il Color Disk Maze, utilizzando l'Eye Sensor. Il Monitor mostra i dati del sensore per ciascuno dei blocchi reporter booleani nel progetto. Come strumento di insegnamento conversazionale, questo progetto può essere eseguito per gli studenti, mentre si parla di quali dati del sensore vengono segnalati e del flusso del progetto basato su tali dati. 

Ci sono alcuni adattamenti apportati al progetto per aiutare a enfatizzare i dati del sensore mentre il progetto è in esecuzione. La velocità del robot viene rallentata e vengono aggiunti i blocchi [Stop driving] e [Wait] per consentire ai dati del Monitor di mostrare più a lungo, in modo che gli studenti abbiano il tempo di prevedere il comportamento del robot e/o i dati del sensore che verranno riportati durante l'esecuzione del progetto. 

Questo è un esempio di come i progetti possono essere costruiti per mostrare intenzionalmente un obiettivo di apprendimento più ampio, come comprendere il flusso del progetto con il feedback dei sensori, piuttosto che arrivare alla fine del labirinto il più velocemente possibile. 

In definitiva, il nostro obiettivo non è solo quello di far sì che tutti gli studenti navighino con successo nel labirinto, ma che capiscano come e perché un progetto ha avuto successo. Rallentare il nostro processo di debug, incorporare le conversazioni nella nostra pratica e costruire progetti per mostrare i concetti in modo intenzionale può aiutarci a gettare le basi affinché gli studenti comprendano i concetti dell'informatica e abbiano la motivazione per estendere e sviluppare tale apprendimento nel tempo. 

Dove andare da qui…