Přejít k navigační liště

Zdroják » Různé » Detekce a korekce chyb (úloha z kroužku programování pro děti)

Detekce a korekce chyb (úloha z kroužku programování pro děti)

Články Různé

Na vysoké škole nás učili, jak počítač dokáže přečíst lehce škrábnuté CD a jak pozná, že je poškozené příliš. Dětem to lze to vysvětlit hravou formou. V dnešní době už asi skoro nebudou znát CD a DVD, ale stejný princip platí i pro jiné nosiče, jakými jsou například QR kódy.

Text vyšel původně na autorově blogu a vychází z díla Parity magic (csunplugged.org) pod licencí CC BY-SA 4.0.

Pro koho je úloha určená

Úlohu jsem dělal s dětmi od druhé do páté třídy.

Potřeby

  • 15 až 20 minut
  • kartičky reprezentující jednotlivé bity
    • ideálně černé a bílé
    • lze použít i žolíkové, a to dvěma způsoby: Buď mají různobarevný rub, nebo použijeme líc, a pak je jedna hodnota červená (srdcové a kárové bez rozlišení) a druhá černá (piky a trefy rovněž bez rozlišení).

Postup

Zeptáme se dětí, zda se někdy setkaly s problémem škrábnutého DVD nebo poškozeného QR kódu. Naznačíme, že malé chyby dokáže počítač opravit. Větší chyby už neopraví, data nepřečte, ale ví, že jsou špatně. To je taky důležitý aspekt, umět odmítnout vadná data a nesnažit se je chybně interpretovat.

Náhodně rozdáme karty (bity) do čtverce 5 x 5, nebo ještě lépe necháme děti, aby je náhodně rozdaly samy. Překontrolujte, že jde opravdu o náhodné rozdělení a že se mezi řádky neopakuje nějaký vzorec.

Nyní učitel přidá paritní bity (sloupce i řádky), a to následujícím způsobem. Pokud je v řádku lichý počet černých karet, přidáme na konec černou kartu. Je-li sudý (včetně situace, kdy neobsahuje žádnou černou kartu), přidáme na konec bílou kartu. Analogicky provedeme se sloupci. V pravém dolním rohu nám vznikne paritní bit paritních bitů jako kontrola, že jsme sloupce i řádky přidali správně (počet paritních bitů, černých karet, v paritním sloupci a paritním řádku nemusí přesně souhlasit, ale souhlasit musí jejich parita, tedy to, zda je obojí sudé či liché).

Chcete-li definici z wikipedie:

Lichá parita znamená lichý počet jedničkových bitů ve slově.

Požádáme děti, aby, až odejdete za dveře, zaměnily právě jednu kartu za jinou barvu. Následně překontrolujete všechny paritní bity. Průnik sloupce a řádku s chybným paritním bitem identifikuje chybnou kartu. Měli byste být schopní identifikovat záměnu i v samotných paritních bitech.

Role si prohoďte. Učitel připraví základní čtverec, děti přidají paritní bity. Pak se otočí a učitel vymění právě jednu kartu. Děti hledají, která karta byla vyměněná.

Nakonec všichni dohromady vyzkoušejte, co se stane, vyměníte-li dvě karty. Poznáte, že je v systému chyba, ale už nedokážete přesně říct, která karta je chybná (můžete přibližně hádat). Při otočení čtyřech karet se vám může stát, že všechny paritní bity budou sedět a chyba tedy zůstane neodhalená.

Didaktické poznámky

Pokud jste s dětmi doposud neprobírali binární čísla, bude potřeba tématu věnovat nějaký čas. Rovněž mladším dětem bude pravděpodobně potřeba vysvětlit koncept lichý/sudý.

V návodu je uvedeno, že máte kontrolovat, zda se mezi řádky neopakuje nějaký vzorec. Osobně jsem s tím problém neměl. Podle Parity Magic pro pokročilé může mít obrazec i jiné rozměry, například: 5 x 9 nebo 6 x 4, ale už ne 3 x 4. Počet řádku a sloupců musí být obojí sudé, anebo obojí liché.

Čistě didakticky je asi nejméně rušivé, když pracujete pouze s černými a bílými kartami (to vyzkouším příště). Vzal jsem zavděk žolíkovými kartami, jelikož jsem šetřil čas na přípravu. S žolíkovými kartami je nejspíš lepší pracovat s rubem, ale měl jsem dvě stejné sady. Na druhou stranu varianta s lícem vypadá jako lepší karetní trik. Odvedení pozornosti má i světlou stránku, a to, že se nepokoušíte hledat v tom kimovku. Tedy zapamatovat si rozložení i bez paritních bitů. (Pro jistotu jsem dětem vyměnil víc karet, myšleno hodnoty, ale barvu jsem změnil jen u jedné.)

Děti jsem nabádal, aby úlohu ukázaly doma rodičům právě jako karetní trik. Což ale nikdo neudělal. Domnívám se, že ty mladší tomu v hodině s dopomocí rozuměly, ale nebyly schopné samostatně úlohu zopakovat.

Komentáře

Odebírat
Upozornit na
guest
2 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
Robert

No, když jsem něco takového naposledy programoval (pro diskety) tak to spíš hlásilo „sektor nelze přečíst“. Což by spíš odpovídalo tomu, že nějakou kartičku odebereme a pak jí máme dopočítat. A zase tam je možno určovat kolik (a jak srovnaných chyb) jsme schopni dopočítat.

Martin Hassman

Odebrání jedné kartičky je vlastně taková jednodušší podoba úlohy z článku. Bez nutnosti lokalizace problému.

Cesta URL: co se děje, než se načte webová stránka

Když do adresního řádku prohlížeče napíšete webovou adresu a stisknete Enter, spustí se fascinující řetězec procesů, které propojují váš počítač s celým světem. Od překladu doménového jména na IP adresu, přes navázání šifrovaného spojení, až po vykreslení každého pixelu na obrazovce - to všechno se odehraje během zlomků sekundy. Pojďme se podívat, co se mezitím děje pod kapotou webu.

Stav SIMD v Rustu v roce 2025

Různé
Komentáře: 1
SIMD - neboli Single Instruction, Multiple Data - znamená, že procesor může jednou instrukcí zpracovat více datových prvků najednou. Typicky to znamená, že místo sčítání dvou čísel přičtete dvě sady čísel paralelně. To může přinést výrazné zrychlení například při zpracování obrazu, audia nebo numerických výpočtů. Pokud již SIMD znáte, tato tabulka je vše, co budete potřebovat. A pokud s SIMD teprve začínáte, tabulku pochopíte do konce tohoto článku