Unplugged aktivity ve výuce informatiky
3. Jak binární čísla fungují
3.5. Souvislosti s informatickým myšlením
V průběhu lekce jsou použity postupy a myšlenky, které souvisí s informatickým myšlením. Níže jsou shrnuty do jednotlivých oblastí informatického myšlení.
Učit studenty myslet informaticky pomocí aktivit z CS Unplugged jim pomáhá naučit se popsat problém, najít v něm co je důležité a rozdělit ho na menší části a do logických kroků. Po té z těchto jednotlivých kroků sestrojit celistvý postup, který problém vyřeší. Tyhle dovednosti je možné uplatnit i v jiných vzdělávacích oblastech. Jsou ale důležité pro pochopení digitálních systémů a řešení problémů pomocí počítačů.
Všechny následující aspekty informatického myšlení jsou navzájem propojené a doplňují se. Je dobré zmínit, že nejsou v každé lekci použity všechny najednou. Pro více informací o definici informatického myšlení se podívejte např. na stránku imysleni.cz, případně také na anglickou definici přímo na webu CS Unplugged.
Algoritmické myšlení
V této lekci jsme použili algoritmus na převod čísla z desítkové soustavy do dvojkové. Je to jasný postup krok za krokem. Když se podle něj postupuje správně, bude mít vždy správný výsledek pro jakékoliv vstupní číslo.
Zde je tento algoritmus zapsaný v bodech:
- Zjistěte číslo (počet puntíků), které se má znázornit. Budeme tento počet označovat jako počet zbývajících puntíků. To je na začátku zadaný počet puntíků.
- Projděte binární kartičky postupně zleva doprava (tzn. 16, 8, 4, 2, 1):
- V opačném případě:
- Pokud je počet puntíků na binární kartičce větší než počet zbývajících puntíků:
- Skrýt (vypnout) kartu.
- Ukázat (zapnout) kartu.
- Odečtěte počet puntíků na kartě od počtu zbývajících puntíků.
Všimněte si, že tento algoritmus probíhající zleva doprava funguje dobře, ale pokud byste se koukli na některé počítačové programy, tak ty mohou pracovat i obráceně. Obvykle existuje více algoritmů na vyřešení stejného úkolu.
Čeho si ještě můžete všimnout
Kdo ze studentů postupuje správně popořadě při převádění čísla z desítkové soustavy do dvojkové? Kdo začíná binární kartičkou nejvíce vlevo a jde postupně po jedné kartě doprava, než aby si náhodně vybíral karty, ty obracel a čekal, až dostane správný výsledek?
Abstrakce
Reprezentace čísel ve dvojkové soustavě je abstrakce, která ukazuje složitost elektroniky a hardwaru uvnitř počítače, kam se ukládají data. Abstrakce nám pomáhá věci zjednodušit, protože můžeme ignorovat detaily, které zrovna nepotřebujeme znát.
V tomto případě můžeme ignorovat podrobnosti o tom, jak počítače používají k ukládání a přesunu dat fyzické součástky, obvody, napětí v obvodech a s tím spojených mnoho složitých fyzikálních jevů a matematických teorií, díky nimž to funguje.
Nepotřebujeme přesně vědět, jak logické obvody v počítači fungují a jak pracují s dvojkovou soustavou. Používání čísel ve dvojkové soustavě je abstrakce logických obvodů. Ta nám ukazuje, jak převádět čísla z desítkové soustavy do dvojkové (do bitů), abychom pochopili jednotku informace. Nemusíme se zabývat zbytečně tím, co se děje uvnitř počítače a v jeho obvodech.
Další použití abstrakce v této lekci je například zamyšlení se nad tím, čím vším může být znázorněno binární číslo (číslo ve dvojkové soustavě). Odpověď je, že cokoliv, co má dvě hodnoty. Dvě barvy, dvě různá zvířata, dva různé symboly atd. Pokud jsou tyto hodnoty dvě a jsou odlišné, mohou být použity k reprezentaci libovolného čísla pomocí binárního kódu (dvojkového zápisu toho čísla) stejně tak, jako počítač reprezentuje data elektrickým napětím.
Čísla ve dvojkové soustavě můžeme použít pro znázornění a uložení jakéhokoliv typu dat v počítači. Pokud jimi znázorňujeme například písmena, obrázky nebo zvuk, tak také používáme abstrakci. Nekoukáme se na detail všech binárních čísel. Koukáme se na to jako na celek, balík dat. Všechny formy dat jsou nakonec reprezentovány jako čísla (takže různé kombinace bitu – 0 a 1). Pro text máme číslo pro každé písmeno, pro obrázek máme číslo pro každou barvu, ze které se obrázek skládá a tak dále. Používáme různé úrovně abstrakce. Například všeobecně používaná abstrakce je ta, že měsícům v roce jsme přiřadili čísla. Takže třeba říjen může být reprezentován číslem deset, což je ve dvojkové soustavě 01010. Pokud je to uložené v paměti počítače, jsou bity znázorněny „nízkým, vysokým, nízkým, vysokým, nízkým“ napětím.
Čeho si ještě můžete všimnout
Koho ze studentů napadlo znázornit binární čísla ještě jinak než 1 a 0, černou a bílou, zapnuto a vypnuto, symboly smajlíků 12 a 1, stojícími a sedícími lidmi? Pokud chápou černou a bílou jako 1 a 0, procvičují abstrakci.
Rozklad
Příkladem rozkladu v této lekci může být převádění čísla z desítkové do dvojkové soustavy po jednom bitu. Otázka „Měl by být tento bit zapnutý“ pro každou binární kartičku zvlášť, je rozklad problematiky převodu čísla do dílčích otázek.
Čeho si ještě můžete všimnout
Kdo ze studentů přišel na to, že je důležitě začít s binární kartičkou úplně vlevo a procházet kartičky postupně jednu po druhé? Kdo se zaměřoval na kartičky postupně než aby chtěl otočit všechny najednou?
Zobecnění a vzorce
Rozpoznávat vzory ve způsobu fungování dvojkové soustavy nám pomáhá lépe porozumět používaným mechanismům. Pomáhá nám to také zobecňovat tyto mechanismy do vzorů (předpisů) tak, abychom je mohli použít i na jiné podobné úkoly.
Jednoduchý vzor na začátku, kteří studenti objeví, začíná u čísel 1, 2 a 4. Studenti si uvědomí, že se předchozí hodnota vždy zdvojnásobí. Ve cvičení se používá jen pět binárních kartiček, ale studenti by měli být schopni vymyslet počty puntíků třeba až na 8 kartiček.
Algoritmus pro převod čísla z desítkové do dvojkové soustavy je založen na vzorci, který může být zobecněn třeba pro použití vrácení hotovosti při placení. Ve dvojkové soustavě začínáme s kartičkou s nejvyšší hodnotou a ptáme se, jestli jí potřebujeme nebo nikoliv. Stejně tak když nám paní prodavačka v obchodě vrací peníze, začíná nejdříve od těch s nejvyšší hodnotou a následně dopočítává mince, pokud jsou potřeba. Poznámka ze žargonu: Tomu se v angličtině říká „chamtivý algoritmus“ – pokaždé si vezme přesně tolik, kolik může.
Matematické okénko
Zeptejte se studentů, co je podle nich zajímavé na převodu čísla z desítkové do dvojkové soustavy vzhledem k nějakému obecnému algoritmu. Ať se zamyslí nad tím, že v reálném životě je potřeba více mincí stejné hodnoty, zatímco ve dvojkové soustavě stačí jedna (nebo žádná) od každé hodnoty.
Algoritmus otáčení
Při postupném přepočítávání čísel do dvojkové soustavy od nejnižších po nejvyšší jsme si mohli všimnout vzoru, jak často se konkrétní karty otáčí. Binární kartička s jedním puntíkem se otočí na každé druhé číslo. Druhý bit (kartička se dvěma puntíky) se otočí po každých dvou číslech. Třetí bit (kartička se čtyřmi puntíky) se otočí po čtyřech sestavených číslech. Existuje snad tomuto podobný vzorec, když počítáme v desítkové soustavě?
Pokud máte pět binárních kartiček, které jsou zapnuté, dají dohromady číslo 31, což je o jedna menší hodnota, než má následující karta (32). Je toto pravidlo platné pokaždé?
Množství čísel, která můžeme reprezentovat určitým počtem bitů (kartiček) je stejný jako hodnota následujícího bitu. Například pokud máme 4 binární kartičky (1, 2, 4, 8), můžeme s jejich pomocí prezentovat 16 různých čísel (0-15) a hodnota další binární kartičky je 16. Pokaždé, když přidáme další kartičku, zdvojnásobíme množství čísel, která můžeme reprezentovat.
Práce s těmito vzory je důležitá pro pochopení vztahu mezi počtem použitých bitů a tím, co všechno mohou prezentovat.
Vysvětlete jeden nebo více z následujících vzorců:
- Že konkrétní počet binárních kartiček může znázornit stejný počet čísel, jako by byla hodnota následující kartičky přidané vlevo (nezapomeňte, že 0 je taky číslo, které se dá pomocí binárních kartiček zobrazit).
- Pokud převádíme čísla vzestupně do dvojkové soustavy, první kartička s jedním puntíkem se otočí po každém čísle, druhá kartička se dvěma puntíky se přetáčí po každých dvou číslech, třetí kartička se čtyřmi puntíky se otáčí po každých čtyřech číslech a kartička s osmi puntíky po každých osmi převedených číslech…
- Pokud máme všechny binární kartičky viditelně otočené, hodnota následující kartičky bude rovna součtu puntíků na všech současných kartičkách plus 1.
Čeho si ještě můžete všimnout
Kteří studenti rychle přijdou na to, že každá kartička má dvojnásobný počet puntíků než ta předchozí? Najdou studenti podobnosti mezi tímto a dvojnásobným zvyšováním hodnoty a násobením čísla 10 v desítkové soustavě?
Kteří studenti lehce pochopí vzor otáčení binárních kartiček při přepočítávání čísel z desítkové do dvojkové soustavy?
Logika
Logické myšlení znamená umět odvodit nové principy a informace z těch, které již známe. Pokud víme, jak se číslo znázorňuje pomocí binárních kartiček, můžeme z toho odvodit, jak reprezentovat další čísla. Pokud vymyslíte, jaká čísla se dají znázornit pomocí pěti binárních kartiček, znamená to automaticky, že umíte znázornit jakékoliv jiné číslo určitým počtem bitů? Ne úplně přesně. Budete ale vědět jak na to, když pochopíte logiku, jakou jsou čísla pomocí těch pěti karet znázorněna.
Příkladem logického myšlení v systému binárních čísel může být například vysvětlení, proč každý bit musí mít konkrétní hodnotu (buď 0 nebo 1), aby dohromady reprezentovaly zadané číslo. Z toho můžeme vyvodit, že každé číslo z desítkové soustavy může být znázorněno jen jednou správnou posloupností bitů.
Čeho si ještě můžete všimnout
Dokážou studenti vysvětlit, proč poslední bit úplně vpravo prezentuje zrovna číslo 1? To protože je to jediné liché číslo a proto ho potřebujeme. Abychom mohli ve dvojkové soustavě prezentovat i lichá čísla. Bez něj bychom dokázali prezentovat jen ta sudá.
Dokážou studenti vysvětlit, proč musí být každá karta otočená viditelně, pokud se z ní požadované číslo skládá? Například kartička se 16 puntíky je potřeba pro složení čísla 19, protože bez téhle kartičky dokážeme dát dohromady jen 15 puntíků a to nestačí. Naopak kartička se 16 puntíky není potřeba pro skládání čísla 9, protože by bylo puntíků moc.
Výstup
Příkladem výstupu může být zjištění, kolik různých hodnot dokážeme reprezentovat daným počtem bitů. Například že z 5 bitů můžeme prezentovat 32 různých čísel a naopak, že pro prezentaci 1000 různých čísel potřebujeme alespoň 10 bitů.
Čeho si ještě můžete všimnout
Dokážou studenti pracovat i s více než čtyřmi bity? (16)
6 bity? (64)
8 bity? (256)
Pokud přidáme další bit, jak se zvětší množství čísel, které můžeme reprezentovat? (Zdvojnásobí se)
Pokud přidáme další dva bity, jak se zvětší množství čísel, které můžeme reprezentovat? (Je to čtyřikrát tolik)
Kolik potřebujeme bitů na reprezentování 1000 různých čísel?