Skip to main content

Valutare e spiegare

Icona della cassetta degli attrezzi del docente Teacher Toolbox - Introduzione all'efficienza del codice

Ora che gli studenti si sono esercitati a scrivere sequenze di codice per svolgere un compito specifico, gli verrà chiesto di applicare tali abilità alla lettura delle sequenze di codice e alla loro valutazione. In questa attività, agli studenti verrà consegnata una mappa simile a quella nella sezione Play e verrà chiesto di esaminare 3 sequenze di codice per scegliere la soluzione preferita. Per ogni sequenza gli studenti risponderanno a 3 domande:

  • Questo codice porta a termine l'attività?

  • Se funziona, quali sono i vantaggi di questo codice rispetto agli altri?

  • Quali sono gli svantaggi di questo codice rispetto agli altri?

Quindi, esaminando tutte le sequenze, gli studenti saranno introdotti all'idea di efficienza del codice e verrà chiesto loro quale sia la soluzione preferita in base all'efficienza e alle proprie preferenze, e perché. Questo può essere un trampolino di lancio per un'intera discussione di classe sull'efficienza e l'accuratezza nella codifica.

Lettura delle sequenze di codice per scegliere una soluzione preferita

Mentre la tua classe lavorava sulla sezione Play, probabilmente hai notato che c'erano molte soluzioni diverse allo stesso problema che è stato presentato. Questo è qualcosa che accade spesso nel mondo della programmazione. Sebbene ci possano essere diversi modi per fare qualcosa, ognuno avrà un metodo o una soluzione preferiti e ciò potrebbe basarsi su una serie di fattori. In questa attività, il tuo gruppo esaminerà 3 possibili soluzioni a blocchi di codice a un problema, capirà se funzionano nel modo previsto, quindi sceglierà una soluzione preferita dal gruppo e spiegherà perché l'hai scelta.

Il problema: crea una sequenza che, quando il robot inizia all'inizio, entrerà e uscirà da tutte e 3 le aule (in qualsiasi ordine) e tornerà al punto finale. Il robot deve navigare intorno alle scale e può attraversare le porte contrassegnate dai piccoli rettangoli sull'immagine della mappa.

Layout abbozzato che mostra l'inizio nell'angolo in basso a sinistra e la fine nell'angolo in basso a destra. Sopra la Partenza si trova la Sala A con una porta rivolta verso la partenza e una a destra, rivolta verso le scale al centro. Direttamente a destra delle scale si trovano la sala B e la sala C impilate sopra l'estremità. Ci sono porte per le stanze B e C che si affacciano sulle scale e una che collega le due.

  • Per ogni soluzione di seguito, rispondi a queste 3 domande nel tuo quaderno di ingegneria:
    • Questo codice porta a termine l'attività? Perché sì o perché no?
    • Se funziona, quali sono i vantaggi di questo codice rispetto agli altri?
    • Quali sono gli svantaggi di questo codice rispetto agli altri?
  • La maggior parte delle volte, la programmazione viene valutata in base alla sua efficienza e la soluzione preferita è quella che raggiunge l'obiettivo nel modo più efficiente possibile.

Clicca sulle soluzioni qui sotto per vedere un'immagine più grande.

Esempio di soluzione per la sfida costituita da 19 Drive to e Turn per blocchi collegati al blocco When Started. In ordine, i blocchi faranno sì che il robot giri a destra di 90 gradi, guidi in avanti di 10 pollici, giri a sinistra di 90 gradi spinga in avanti di 3 pollici, quindi inverta di 6 pollici, quindi giri a sinistra di 90 gradi, guidi in avanti di 10 pollici. Poi gira a destra di 90 gradi, guida in avanti di 8 pollici e inverti di 4 pollici, gira a destra di 90 gradi, guida in avanti di 10 pollici. Quindi gira a sinistra di 90 gradi, guida in avanti di 1 pollice, gira a destra di 90 gradi, guida in avanti di 3 pollici e inverti 4, quindi gira a destra di 90 gradi e guida in avanti di 5 pollici.
Soluzione A (pollici)

Una soluzione di esempio con 11 Drive for e Turn per blocchi collegati a un blocco When started. In modo che i blocchi facciano avanzare il robot di 10 pollici, girare a sinistra di 90 gradi, guidare in avanti di 1 pollice, girare a sinistra di 90 gradi, guidare in avanti di 1 pollice, girare a destra di 90 gradi, guidare in avanti di 10 pollici, girare a destra di 90 gradi, quindi guidare in retromarcia di 5 pollici, girare a destra di 90 gradi e guidare in avanti di 10 pollici.
Soluzione B (pollici)
Una soluzione di esempio con 10 Drive for e Turn per blocchi collegati al blocco When started. In ordine, i blocchi faranno avanzare il robot di 8 pollici e poi di 4 pollici, gireranno a destra di 90 gradi, guideranno in avanti di 13 pollici, gireranno a sinistra di 90 gradi, guideranno in avanti di 8 pollici, gireranno a sinistra di 90 gradi, guideranno in avanti di 4 pollici, gireranno a destra di 90 gradi e guideranno in retromarcia di 5 pollici.
Soluzione C (pollici)
Esempio di soluzione per la sfida costituita da 19 Drive to e Turn per blocchi collegati al blocco When Started. In ordine, i blocchi faranno sì che il robot giri a destra di 90 gradi, spinga in avanti di 254 mm, giri a sinistra di 90 gradi spinga in avanti di 76 mm, quindi inverta di 152 mm, quindi giri a sinistra di 90 gradi, spinga in avanti di 254 mm. Quindi girare a destra di 90 gradi, avanzare di 203 mm e invertire di 101 mm, girare a destra di 90 gradi, avanzare di 254 mm. Quindi gira a sinistra di 90 gradi, vai avanti di 25 mm, gira a destra di 90 gradi, vai avanti di 76 mm e inverti di 101 mm, poi gira a destra di 90 gradi e vai avanti di 127 mm.
Soluzione A (metrica)
Una soluzione di esempio con 11 Drive for e Turn per blocchi collegati a un blocco When started. In modo che i blocchi facciano avanzare il robot di 254 mm, girare a sinistra di 90 gradi, guidare in avanti di 25 mm, girare a sinistra di 90 gradi, guidare in avanti di 25 mm, girare a destra di 90 gradi, guidare in avanti di 254 mm, girare a destra di 90 gradi, quindi guidare in retromarcia di 127 mm, girare a destra di 90 gradi e guidare in avanti di 254 mm.
Soluzione B (metrica)
Una soluzione di esempio con 10 Drive for e Turn per blocchi collegati al blocco When started. In ordine, i blocchi faranno avanzare il robot di 203 mm poi di 101 mm, gireranno a destra di 90 gradi, guideranno in avanti di 330 mm, gireranno a sinistra di 90 gradi, guideranno in avanti di 203 mm, gireranno a sinistra di 90 gradi, guideranno in avanti di 10 mm, gireranno a destra di 90 gradi e guideranno in retromarcia di 127 mm.
Soluzione C (metrica)

Cos'è l'efficienza del codice?

Se avessi bisogno di prendere 3 cose dalla tua cucina, probabilmente andresti a prenderle tutte e 3 in un unico viaggio, invece di fare 3 viaggi separati. Perché? Perché sarebbe più efficiente. Efficiente significa "raggiungere la massima produttività con il minimo sforzo o spesa sprecati". Quindi, in che modo questo si collega alla programmazione? L'efficienza

del codice significa che un programma è scritto per funzionare bene e rapidamente, utilizzando la minor quantità di lavoro, o passaggi, correttamente, pur continuando a svolgere il proprio lavoro. È importante perché riduce il rischio che un programma non funzioni bene e, a sua volta, causi problemi ad altre parti di un programma che lo circondano. L'efficienza di un codice può essere una misura della qualità e quando scriviamo progetti nel blocco VEXcode IQ, spesso cerchiamo il progetto più "efficiente" come soluzione preferita.

Fondamentalmente, l'efficienza del codice è un principio che significa che vuoi scrivere un codice che raggiunga il tuo obiettivo utilizzando il minor numero possibile di comandi o blocchi.

Nel tuo quaderno di ingegneria, rispondi alle seguenti domande:

  • Tenendo presente l'efficienza del codice, qual è la tua soluzione preferita e perché?
  • Pensi che sia la soluzione migliore, perché o perché no?

Icona della cassetta degli attrezzi del docente Teacher Toolbox - Risposte

Le risposte possono variare poiché non sono state fornite dimensioni specifiche sopra per la creazione di una sequenza per navigare in tre stanze.
Clicca qui per una possibile soluzione di esempio.

Icona Motiva discussione Motiva la discussione

Mentre l'efficienza è utile, spesso abbiamo altre considerazioni su come o perché facciamo le cose in un certo modo. Chiedi agli studenti di condividere le loro risposte nel loro quaderno di ingegneria e/o usa questa domanda per inquadrare una discussione sull'equilibrio tra efficienza e azioni.
D: Nella programmazione, l'efficienza è di solito la metodologia preferita; riesci a pensare a un motivo per cui questo è il caso?
R: Le risposte possono variare, ma alcune includono:

  • La modifica dei progetti in modo che siano più efficienti aiuta coloro che in futuro potrebbero lavorare con lo stesso progetto. Ad esempio, se lavori a un progetto e poi pochi giorni dopo chiedi al tuo amico di aggiornare il progetto e aggiungere alcuni elementi per aumentare la funzionalità, sarà più facile per il tuo amico leggere e lavorare se il progetto è scritto in modo efficiente.

  • I progetti sono sempre soggetti a errori. Più efficiente è la scrittura di un progetto, meno è probabile che si verifichi un errore.

  • Gli individui che usano la programmazione per manovrare i robot industriali si affidano a quei progetti per essere efficienti al fine di risparmiare tempo, energia e risorse all'azienda.