Skip to main content

Vyhodnoťte a vysvětlete

Ikona panelu nástrojů pro učitele Sada nástrojů pro učitele - představení efektivity kódu

Nyní, když studenti mají praxi psaní sekvencí kódu pro splnění konkrétního úkolu, budou požádáni, aby tyto dovednosti aplikovali na čtení sekvencí kódu a jejich vyhodnocování. V této aktivitě dostanou studenti mapu podobnou té v sekci Play a budou požádáni, aby se podívali na 3 sekvence kódu a vybrali si preferované řešení. Pro každou sekvenci studenti zodpoví 3 otázky:

  • Splňuje tento kód úkol?

  • Pokud to funguje, jaké jsou výhody tohoto kódu oproti ostatním?

  • Jaké jsou nevýhody tohoto kódu oproti ostatním?

Poté, při pohledu na všechny sekvence, budou studenti seznámeni s myšlenkou efektivity kódu a zeptají se, jaké je jejich preferované řešení založené na efektivitě a vlastních preferencích - a vysvětlit proč. To může být odrazový můstek pro celou třídní diskusi o efektivitě a přesnosti kódování.

Čtení sekvencí kódu pro výběr preferovaného řešení

Když vaše třída pracovala na sekci Play, pravděpodobně jste si všimli, že existuje mnoho různých řešení stejného problému, který byl prezentován. To se ve světě programování stává často. I když mohou existovat různé způsoby, jak něco udělat, každý bude mít preferovanou metodu nebo řešení, a to by mohlo být založeno na řadě faktorů. V této aktivitě se vaše skupina podívá na 3 možná řešení bloku kódu problému, zjistí, zda fungují zamýšleným způsobem, pak si vybere preferované řešení ze skupiny a vysvětlí, proč jste si ho vybrali.

Problém: Vytvořte sekvenci, která, když robot začne na začátku, bude cestovat do a ze všech 3 učeben (v libovolném pořadí) a vrátí se do koncového bodu. Robot se musí pohybovat po schodech a může projít dveřmi označenými malými obdélníky na obrázku mapy.

Načrtnuté rozvržení zobrazující začátek v levém dolním rohu a konec v pravém dolním rohu. Nad startem je místnost A s dveřmi obrácenými ke startu a jedním doprava, obrácenými ke schodům uprostřed. Přímo napravo od schodů jsou místnost B a místnost C naskládané nad koncem. K dispozici jsou dveře do místností B a C směřující ke schodům a jeden spojující tyto dvě místnosti.

  • Pro každé níže uvedené řešení odpovězte na tyto 3 otázky ve svém technickém notebooku:
    • Splňuje tento kód úkol? Proč nebo proč ne?
    • Pokud to funguje, jaké jsou výhody tohoto kódu oproti ostatním?
    • Jaké jsou nevýhody tohoto kódu oproti ostatním?
  • Programování je většinou hodnoceno na základě jeho efektivity a preferované řešení je takové, které dosáhne cíle co nejefektivnějším způsobem.

Kliknutím na níže uvedená řešení zobrazíte větší obrázek.

Příklad řešení pro výzvu sestávající z bloků 19 Drive to a Turn pro bloky připojené k bloku When Started. V pořadí, bloky způsobí, že robot otočí doprava o 90 stupňů, pojede dopředu o 10 palců, otočí doleva o 90 stupňů, pojede dopředu o 3 palce, pak zpět o 6 palců, pak otočí doleva o 90 stupňů, pojede dopředu o 10 palců. Pak otočte doprava o 90 stupňů, jeďte dopředu o 8 palců a dozadu o 4 palce, otočte doprava o 90 stupňů, jeďte dopředu o 10 palců. Pak otočte doleva o 90 stupňů, jeďte dopředu o 1 palec, otočte doprava o 90 stupňů, jeďte dopředu o 3 palce a dozadu o 4, pak otočte doprava o 90 stupňů a jeďte dopředu o 5 palců.
Roztok A (palce)

Příklad řešení s 11 jednotkami Drive for a Turn for blocks připojenými k bloku When started. Aby bloky přiměly robota jet dopředu o 10 palců, otočit doleva o 90 stupňů, jet dopředu o 1 palec, otočit doleva o 90 stupňů, jet dopředu o 1 palec, otočit doprava o 90 stupňů, jet dopředu o 10 palců, otočit doprava o 90 stupňů, pak jet dozadu o 5 palců, otočit doprava o 90 stupňů a jet dopředu o 10 palců.
Roztok B (palce)
Příklad řešení s bloky 10 Drive for a Turn for připojenými k bloku When started. Aby bloky poháněly robota dopředu o 8 palců, pak o 4 palce, otočte doprava o 90 stupňů, jeďte dopředu o 13 palců, otočte doleva o 90 stupňů, jeďte dopředu o 8 palců, otočte doleva o 90 stupňů, jeďte dopředu o 4 palce, otočte doprava o 90 stupňů a jeďte dozadu o 5 palců.
Roztok C (palce)
Příklad řešení pro výzvu sestávající z bloků 19 Drive to a Turn pro bloky připojené k bloku When Started. Aby bloky přiměly robota otočit doprava o 90 stupňů, jet dopředu o 254 mm, otočit doleva o 90 stupňů dopředu o 76 mm, pak couvat o 152 mm, pak otočit doleva o 90 stupňů, jet dopředu o 254 mm. Poté otočte doprava o 90 stupňů, posuňte dopředu o 203 mm a dozadu o 101 mm, otočte doprava o 90 stupňů, posuňte dopředu o 254 mm. Poté otočte doleva o 90 stupňů, jeďte dopředu o 25 mm, otočte doprava o 90 stupňů, jeďte dopředu o 76 mm a dozadu o 101 mm, pak otočte doprava o 90 stupňů a jeďte dopředu o 127 mm.
Roztok A (metrický)
Příklad řešení s 11 jednotkami Drive for a Turn for blocks připojenými k bloku When started. Aby bloky přiměly robota jet dopředu 254 mm, otočit doleva o 90 stupňů, jet dopředu 25 mm, otočit doleva o 90 stupňů, jet dopředu 25 mm, otočit doprava o 90 stupňů, jet dopředu 254 mm, otočit doprava o 90 stupňů, pak jet dozadu 127 mm, otočit doprava o 90 stupňů a jet dopředu 254 mm..
Roztok B (metrický)
Příklad řešení s bloky 10 Drive for a Turn for připojenými k bloku When started. Aby bloky poháněly robota dopředu o 203 mm, pak o 101 mm, otočte doprava o 90 stupňů, otočte dopředu o 330 mm, otočte doleva o 90 stupňů, otočte dopředu o 203 mm, otočte doleva o 90 stupňů, otočte dopředu o 10 mm, otočte doprava o 90 stupňů a otočte dozadu o 127 mm.
Roztok C (metrický)

Co je účinnost kódu?

Kdybys potřeboval/a vyzvednout 3 věci z kuchyně, nejspíš bys jel/a pro všechny 3 věci najednou, místo abys jel/a 3 samostatné jízdy. Proč? Protože by to bylo efektivnější. Efektivní znamená „dosažení maximální produktivity s minimálním plýtváním úsilím nebo náklady“. Jak to souvisí s programováním? Efektivita

kódu znamená, že program je napsán tak, aby fungoval dobře a rychle, s použitím co nejmenšího množství práce nebo kroků, správně, zatímco stále dělá svou práci. Je to důležité, protože to snižuje riziko, že program nebude fungovat dobře, a následně způsobí problémy jiným částem programu, které kolem něj běží. Efektivita kódu může být měřítkem kvality, a když píšeme projekty v bloku VEXcode IQ, často hledáme nejúčinnější projekt jako preferované řešení. Efektivita kódu je

princip, který znamená, že chcete napsat kód, který dosáhne vašeho cíle pomocí co nejmenšího počtu příkazů nebo bloků.

V technickém poznámkovém bloku odpovězte na následující otázky:

  • S ohledem na efektivitu kódu, jaké je vaše preferované řešení a proč?
  • Myslíte si, že je to nejlepší řešení, proč nebo proč ne?

Ikona panelu nástrojů pro učitele Sada nástrojů pro učitele - odpovědi

Odpovědi se mohou lišit, protože výše nebyly uvedeny žádné konkrétní rozměry pro vytvoření sekvence pro navigaci kolem tří místností.
Kliknutím  sem zobrazíte možné příkladné řešení.

Ikona Motivovat diskusi Motivovat diskusi

Zatímco efektivita je užitečná, často máme jiné úvahy o tom, jak nebo proč děláme věci určitým způsobem. Nechte studenty sdílet své odpovědi ve svém technickém poznámkovém bloku a/nebo použijte tuto otázku k tomu, abyste vytvořili diskusi o rovnováze efektivity a akcí.
Otázka: V programování je obvykle preferovanou metodikou efektivita; napadá vás důvod, proč tomu tak je?
Odpověď: Odpovědi se budou lišit, ale některé zahrnují:

  • Úprava projektů tak, aby byly efektivnější, pomáhá těm, kteří by v budoucnu mohli pracovat na stejném projektu. Pokud například pracujete na projektu a o několik dní později požádáte svého přítele, aby projekt aktualizoval a přidal několik dalších položek pro zvýšení funkčnosti, bude pro vašeho přítele snazší číst a pracovat s ním, pokud bude projekt napsán efektivně.

  • Projekty jsou vždy náchylné k chybám. Čím je projekt efektivnější, tím menší je pravděpodobnost chyby.

  • Jednotlivci, kteří používají programování k manévrování s průmyslovými roboty, se spoléhají na to, že tyto projekty budou efektivní, aby ušetřily čas, energii a zdroje společnosti.