Skip to main content

Evalueren en uitleggen

Teacher Toolbox-pictogram Teacher Toolbox - Introductie van code-efficiëntie

Nu studenten hebben geoefend met het schrijven van code-sequenties om een specifieke taak uit te voeren, wordt hen gevraagd om die vaardigheden toe te passen op het lezen van code-sequenties en deze te evalueren. In deze activiteit krijgen studenten een kaart die vergelijkbaar is met die in het gedeelte Afspelen en wordt gevraagd om naar 3 codesequenties te kijken om de gewenste oplossing te kiezen. Voor elke reeks zullen studenten 3 vragen beantwoorden:

  • Bereikt deze code de taak?

  • Als het werkt, wat zijn dan de voordelen van deze code ten opzichte van de andere?

  • Wat zijn de nadelen van deze code ten opzichte van de andere?

Vervolgens zullen de studenten, kijkend naar alle sequenties, kennis maken met het idee van code-efficiëntie en gevraagd worden wat hun voorkeursoplossing is op basis van efficiëntie en hun eigen voorkeuren - en om uit te leggen waarom. Dit kan een springplank zijn voor een hele klasdiscussie over efficiëntie en nauwkeurigheid in codering.

Code-reeksen lezen om een voorkeursoplossing te kiezen

Terwijl je klas aan de Play-sectie werkte, merkte je waarschijnlijk dat er veel verschillende oplossingen waren voor hetzelfde probleem dat werd gepresenteerd. Dat gebeurt vaak in de wereld van programmeren. Hoewel er verschillende manieren kunnen zijn om iets te doen, zal iedereen een voorkeursmethode of -oplossing hebben, en dat kan op een aantal factoren gebaseerd zijn. In deze activiteit zal je groep 3 mogelijke codeblokoplossingen voor een probleem bekijken, uitzoeken of ze op de beoogde manier werken, vervolgens een voorkeursoplossing uit de groep kiezen en uitleggen waarom je ervoor hebt gekozen.

Het probleem: maak een reeks die, wanneer de robot bij de start begint, in en uit alle 3 de klaslokalen zal reizen (in willekeurige volgorde) en terug zal keren naar het eindpunt. De robot moet rond de trap navigeren en kan door de deuropeningen gaan die zijn gemarkeerd door de kleine rechthoeken op de kaartafbeelding.

Geschetste lay-out met de Start in de linkerbenedenhoek en de End in de rechterbenedenhoek. Boven de Start is kamer A met een deuropening naar de start en een naar rechts, met uitzicht op de trap in het midden. Direct rechts van de trap zijn kamer B en kamer C boven het einde gestapeld. Er zijn deuropeningen naar de kamers B en C met uitzicht op de trap, en een die de twee met elkaar verbindt.

  • Beantwoord voor elke onderstaande oplossing deze 3 vragen in je technische notitieblok:
    • Bereikt deze code de taak? Waarom wel of niet?
    • Als het werkt, wat zijn dan de voordelen van deze code ten opzichte van de andere?
    • Wat zijn de nadelen van deze code ten opzichte van de andere?
  • Meestal wordt programmeren geëvalueerd op efficiëntie en de voorkeursoplossing is er een die het doel op de meest efficiënte manier mogelijk bereikt.

Klik op de onderstaande oplossingen voor een grotere afbeelding.

Voorbeeldoplossing voor de uitdaging bestaande uit 19 Drive to en Turn voor blokken die zijn aangesloten op het When Started-blok. In volgorde zorgen de blokken ervoor dat de robot 90 graden naar rechts draait, 10 inch vooruit rijdt, 90 graden naar links draait, 3 inch vooruit rijdt, dan 6 inch achteruit rijdt, dan 90 graden naar links draait, 10 inch vooruit rijdt. Draai vervolgens 90 graden naar rechts, rijd 8 inch vooruit en 4 inch achteruit, draai 90 graden naar rechts, rijd 10 inch vooruit. Draai vervolgens 90 graden naar links, rijd 1 inch vooruit, draai 90 graden naar rechts, rijd 3 inch vooruit en achteruit 4, draai dan 90 graden naar rechts en rijd 5 inch vooruit.
Oplossing A (inch)

Een voorbeeldoplossing met 11 Drive for en Turn voor blokken die zijn aangesloten op een When started blok. Om ervoor te zorgen dat de blokken ervoor zorgen dat de robot 10 inch vooruit rijdt, 90 graden naar links draait, 1 inch vooruit rijdt, 90 graden naar links draait, 1 inch vooruit rijdt, 90 graden naar rechts draait, 10 inch vooruit rijdt, 90 graden naar rechts draait, dan 5 inch achteruit rijdt, 90 graden naar rechts draait en 10 inch vooruit rijdt.
Oplossing B (inch)
Een voorbeeldoplossing met 10 Drive for en Turn voor blokken die zijn aangesloten op het When started blok. In volgorde zullen de blokken ervoor zorgen dat de robot 8 inch dan 4 inch vooruit rijdt, 90 graden naar rechts draait, 13 inch vooruit rijdt, 90 graden naar links draait, 8 inch vooruit rijdt, 90 graden naar links draait, 4 inch vooruit rijdt, 90 graden naar rechts draait en 5 inch achteruit rijdt.
Oplossing C (inch)
Voorbeeldoplossing voor de uitdaging bestaande uit 19 Drive to en Turn voor blokken die zijn aangesloten op het When Started-blok. In volgorde zorgen de blokken ervoor dat de robot 90 graden naar rechts draait, 254 mm vooruit rijdt, 90 graden naar links draait, 76 mm vooruit rijdt, dan 152 mm achteruit rijdt, dan 90 graden naar links draait, 254 mm vooruit rijdt. Draai dan 90 graden naar rechts, rijd 203mm vooruit en 101mm achteruit, draai 90 graden naar rechts, rijd 254mm vooruit. Draai vervolgens 90 graden naar links, rijd 25 mm vooruit, draai 90 graden naar rechts, rijd 76 mm vooruit en 101 mm achteruit, draai vervolgens 90 graden naar rechts en rijd 127 mm vooruit.
Oplossing A (metrisch)
Een voorbeeldoplossing met 11 Drive for en Turn voor blokken die zijn aangesloten op een When started blok. Om de blokken ervoor te zorgen dat de robot 254 mm vooruit rijdt, 90 graden naar links draait, 25 mm vooruit rijdt, 90 graden naar links draait, 25 mm vooruit rijdt, 90 graden naar rechts draait, 254 mm vooruit rijdt, 90 graden naar rechts draait, vervolgens 127 mm achteruit rijdt, 90 graden naar rechts draait en 254 mm vooruit rijdt..
Oplossing B (metrisch)
Een voorbeeldoplossing met 10 Drive for en Turn voor blokken die zijn aangesloten op het When started blok. In volgorde zullen de blokken ervoor zorgen dat de robot 203 mm vooruit rijdt en vervolgens 101 mm, 90 graden naar rechts draait, 330 mm vooruit rijdt, 90 graden naar links draait, 203 mm vooruit rijdt, 90 graden naar links draait, 10 mm vooruit rijdt, 90 graden naar rechts draait en 127 mm achteruit rijdt.
Oplossing C (metrisch)

Wat is code-efficiëntie?

Als je 3 dingen uit je keuken moest halen, zou je waarschijnlijk alle 3 dingen in één reis halen, in plaats van 3 afzonderlijke reizen te maken. Waarom? Omdat het efficiënter zou zijn. Efficiënt betekent "maximale productiviteit bereiken met minimale verspilde moeite of kosten." Dus hoe sluit dat aan op programmeren?

Code-efficiëntie betekent dat een programma is geschreven om goed en snel te werken, met de minste hoeveelheid werk, of stappen, goed, terwijl het nog steeds zijn werk doet. Het is belangrijk omdat het de kans verkleint dat een programma niet goed functioneert en op zijn beurt problemen veroorzaakt voor andere delen van een programma die eromheen draaien. De efficiëntie van een code kan een maatstaf zijn voor kwaliteit, en wanneer we projecten in VEXcode IQ block schrijven, zijn we vaak op zoek naar het meest 'efficiënte' project als voorkeursoplossing.

Kortom, code-efficiëntie is een principe dat betekent dat je een code wilt schrijven die je doel bereikt met zo min mogelijk opdrachten of blokken. Beantwoord

in je Engineering Notebook de volgende vragen:

  • Met het oog op code-efficiëntie, wat is uw voorkeursoplossing en waarom?
  • Denk je dat dat de beste oplossing is, waarom of waarom niet?

Teacher Toolbox-pictogram Teacher Toolbox - Antwoorden

Antwoorden kunnen variëren, omdat de bovenstaande geen specifieke afmetingen zijn gegeven voor het maken van een reeks om door drie kamers te navigeren.
Klik hier voor een mogelijke voorbeeldoplossing.

Motiveer discussiepictogram Motiveer discussie

Hoewel efficiëntie nuttig is, hebben we vaak andere overwegingen over hoe of waarom we dingen op een bepaalde manier doen. Laat leerlingen hun antwoorden delen in hun Engineering Notebook en/of gebruik deze vraag om een discussie te kaderen over de balans tussen efficiëntie en acties.
Vraag: Bij het programmeren is efficiëntie meestal de voorkeursmethode; kunt u een reden bedenken waarom dit het geval is?
A: Antwoorden variëren, maar sommige zijn:

  • Het bewerken van projecten zodat ze efficiënter zijn, helpt degenen in de toekomst die mogelijk met hetzelfde project werken. Als je bijvoorbeeld aan een project werkt en een paar dagen later je vriend vraagt om het project bij te werken en nog een paar items toe te voegen om de functionaliteit te vergroten, zal het voor je vriend gemakkelijker zijn om te lezen en mee te werken als het project efficiënt wordt geschreven.

  • Projecten zijn altijd foutgevoelig. Hoe efficiënter een project wordt geschreven, hoe kleiner de kans op een fout.

  • Personen die programmeren gebruiken om industriële robots te manoeuvreren, vertrouwen erop dat die projecten efficiënt zijn om het bedrijf tijd, energie en middelen te besparen.