Hlavní stránka Multimédia Hry a zábava Blok sem, blok tam: Vrací kopenogramy úder?
Blok sem, blok tam: Vrací kopenogramy úder?
autor: Michal Rybka , publikováno 21.4.2017
Blok sem, blok tam: Vrací kopenogramy úder?

Spor o to, jak by měl vypadat srozumitelný zápis algoritmů vhodný pro začátečníky, nikdy neskončil. Na počátku 90. let nás děsily kopenogramy, blokovitý zápis algoritmů, který vyžadoval mnohem více místa a barev, než jakákoliv jeho reprezentace v kódu. S novou generací programovatelných robotů a Blockly od Google se tento koncept ve velkém vrací.


Většina dětí ale nejdřív objeví kouzlo jednoduchých obvodů – v Minecraftu si mohou snadno postavit svůj smart home, vytvořit inteligentní pasti, automatizovat sběr a likvidaci nepřátel tak, že si jenom přijdou posbírat to, co past nalovila. A právě tam pochopí kouzlo automatizace, sekvence instrukcí, pořadí zapojení, které jim ušetří obrovskou, obrovskou spoustu práce.

A přesně o tom automatizace je, ne? O tom, že objevíte, že je praktická.

Pořád mám pochybnosti o tom, že další generaci přivede k programování didakticky správný přístup.  Nevidím to tak. Pro mě je programování šém, který rabbi Lévi vsunul do Golema. Ten okamžik, kdy svým slovem oživíte neživou hmotu. Všichni moderní roboti nabízejí podobnou možnost – a dávají šanci děckám vychutnat si ten moment, kdy robot začne dělat to, co mu říkají.

Blok sem, blok tam: Vrací kopenogramy úder?

By Mikoláš Aleš - DNES, 11.2.2002, Public Domain, Link

Nepotřebují k tomu didakticky správný přístup. Tohle není o didaktice, to je o tom, že vnutíte nemyslící mase svoji vůli. A když ta masa má pár gramů, svítí a tancuje – jak to dělá Ozobot – budiž. To, co je přivede ke kybernetice, je kouzlo, to kouzlo, který každý zažije poprvé sám ve chvíli, kdy vloží svoji myšlenku do něčeho neživého – a ono se to hýbe, plní instrukce, splní úkol.

A jestli má být tímhle „prvním kontaktem“ právě Blockly – budiž. Točil jsem video s robotky, kdy jsem jim navkládal instrukce před lidmi, kteří nikdy neprogramovali. Když robot provedl, co jsem po něm chtěl, vypadali ohromeně.

O tomhle přesně výuka programování je: O tom ohromení, když oživíte neživé. A je jedno, jestli to je assembler, Altair Basic 1.0 anebo Blockly. Nezáleží na tom, jak ten plamen v nové generaci zažehneme, důležité je, aby hořel!



Tagy: programování  programy  kopenogramy.  karel  basic  


 
Komentáře k článku
RSS
Pouze registrovaní uživatelé mohou přidat komentář!
21.4.2017 21:28:00   95.105.132.xxx 103
Zaujimavy clanok, ako skoro vzdy.
Tema je ale asi na dlhsiu diskusiu. Na jednej strane dnes uz aj jednoduche zariadenia obsahuju logiku a obvody ktore svojou zlozitostou prekonavaju to co pred 20-30 rokmi boly skoro vychytane highend obvody. Dnes popularne RaspberryPi je z dnesneho pohladu primitivny a jednoduchy all in one pocitac ale v porovnani s 8bitmi je to ako superpocitac. A teraz je otazne ci ma zmysel alebo ci su na to moznosti ucit vsetko od uplneho zakladu alebo proste to postavit do roviny ze toto je CPU a vykonava to tieto instrukcie. Ano je to dvojsecna zbran, casom ani odbornici z oblasti vlastne nebudu vediet do detailu ako veci funguju, na druhu stranu je to vobec potrebne a hlavne mozne pri tej zlozitosti a komplexnosti ? Osobne si myslim ze to nieje stastna cesta, ale aj dnesna prax ukazuje ze javascript, python a html je viac sexy ako low level.
A ukazuje to este na dalsi paradox. Pri dnesnom trende digitalizacie sa casto zabuda aj na sice stare ale dobre riesenia. Potom sa zacne optimalizovat algoritmus, pouzije sa viac pameti, rychlejsie prevodniky a znizi spotreba aby potom niekto "objavil" ze vlastne ten low pass filter sa da vyrobit za par supov z par analogovych suciastok.
22.4.2017 07:27:46   78.102.211.xxx 54
Dnešní praxe se nijak neliší od dřívější praxe, dříve jsi strávil 3 roky v Basicu a zjistil jsi Basic pro vážnější práci vůbec není sexy. Dneska je to nemlich stejné, jenom místo Basicu je Javascript/Python.
23.4.2017 22:59:42   95.105.132.xxx 40
Nie uplne. Mnohe sw koncepty boli teoreticky zname a zalozene uz relativne davno, cize aj v tych 80tych, 90tych rokoch teoria bola len nebol vykon. A ten sa prave raketovo vyvyjal len ten SW zacal zaostavat. Este koncom 90tych to nebolo tak markantne ale kruto to ukazali prave roky potom. A dnesny stav je nepriamy dosledok tohto vyvoju. Dnes je vyvoj nakladny a narocny preto sa setri kde sa da - lepi sa jedno cez druhe, na optimalne riesenia sa nehladi lebo vykonu je relativne dost, respektive nejak kruto optimalizovat sa ani neoplati (bavime sa o beznej business sw praxi nie o specifickych pripadoch), scriptovacie jazyky su fasa lebo davaju "instantny" vysledok. No a zatial co c/c++ a podobne jazyky navrhovali akademici a tak to aj vypada, dnes je zasa opacny extrem kde mam niekedy pocit ze to tvoria opice hlav nehlava.
21.4.2017 23:53:29   94.113.123.xxx 03
Cože?
22.4.2017 07:22:17   78.102.211.xxx 152
Pokusy o grafické vyjádření programu se periodicky opakují více než 20 let a mimo hračky a výukové záležitosti nikdy neuspěly. Důvodem je očividný paradox, že grafická vyjádření místo aby situaci usnadňovaly, tak ji zesložiťují a vyjádřit graficky soudobé jazyky jako třeba C# je prakticky nemožné.

Na hračky pro děti to ale může být skvělé.
23.4.2017 16:52:29   83.208.175.xxx 21
Mám takový pocit, že si pletete grafické jazyky a strukturované editory. Ty bloky jsou izomorfní s prvky textové syntaxe jazyka a strukturovaný editor pouze omezuje výběr editovacích akcí, které můžete provádět (s tím, že každá úprava zachová platnost programu, na rozdíl třeba od vložení náhodného znaku na náhodné místo ve zdrojovém souboru). Znázornění C# v *této* podobě jen stěží bude nemožné (což samozřejmě neznamená, že to bude praktické, ale to už je jiná otázka).
24.4.2017 06:13:24   78.102.211.xxx 01
... proto jsem uvedl "prakticky nemožné"
23.4.2017 16:56:00   83.208.175.xxx 00
Jinak samozřejmě grafické jazyky jako takové jsou docela problém. Poměrně často jsou nižšího řádu, takže např. reprezentace kódu jako vstupů jiného kódu je nesnadná, nebo dokonce nemožná. Nutno ovšem dodat, že takováto notace se často používá spíš na specializované problémy, kde může programujícím nespecialistům usnadnit nějakou hodně konkrétní doménu aplikací.
22.4.2017 07:43:53   85.239.64.xxx 101
Pan Pecinovský mě učil programování na VŠE. Od té doby nemůžu Javu ani vidět.
22.4.2017 14:38:54   46.166.148.xxx 22
Já myslím, že to bude podobně, jak uvádíš ve druhé kapitole - z pohledu laika. Návyky z ultramobilních, ryze konzumních, zařízení se nebudou přenášet na platformy považované za ryze pracovní - ne v takovém rozsahu, si myslím. Myslím, že Blockly apod. jsou spíš jen doplňkem na cesty, pro někoho, kdo už se v kódování víceméně orientuje.

Jinak jako "z jara" - měl bych s kódováním někdy už konečně začít, jenže ono je tolik jiných věcí, co dělat.
22.4.2017 18:47:15   88.103.85.xxx 20
Nejsem profi programator - jsem spis tlacen nutností... ale jako pro laika je nejlepsí systém blueprintů který pouzívá unreal - delal sem v c# v unity a problem byl ze kdyz sem kod pul roku nevidel, tak mi trvalo dlouho se do nej dostat... v unrealu je mi vec jasna jen z tvaru struktury, coz je naprosto super - doporucuju smrknout
23.4.2017 10:36:58   84.242.66.xxx 43
U 8 bitů bylo nativních 8 bitů - např Z80, tzn jednobytové instrukce zabírala nejméně taktů. A to včetně skoků. Tzn se používal relativní skok. Který hopsal, 128 bajtů dopředu a 127 dozadu.
Z toho lze odvodit i délku kódu mezi skoky. Výhoda toho bylo, že takovej program běžel kdekoliv v paměti, tzn nepožeboval přesné umístění, ale díky relativním skokům fungoval bez úprav kdekoliv v RAM. Rozšíření o další RAM probíhal tak , že například mělo horních 32KB shadow banku, která se zapla poslání Out určité hodnot na určitej port. A pokud samotnej přepínací kus kódu běžel v jedné bance OUT vyvolal přepnutí na druhou banku a program pokračoval na další adrese v přepnuté bance. A zase naopak.
POKE: i když "BIOS" byl umístěn v ROM, tak měl svoji konfiguraci umístěnou v RAM, a dalo se to používat jako registry. Basic umožňoval některé hodnoty modifikovat přímo, ale na zbytek byl podle specifikace - adresa , kde to leží a jakou to má dýlku pravě POKE. Neleželo tam jen sada proměných systému, ale táky adresy s odkazy na různou funkčnost. Tzn je šlo pomocí POKE modifikovat a změnit například defaultní loader za jinej, nebo tiskocou rutinu atd. Nebo prostě v BASICU pomoci POKE nacpat někam binární data a spustit pak něco přímo v ASM.
K těm barevnem blokům. Jedna věc je samotnej algoritmus, kus funkčního kódu. to je asi jepší psát ručně, ale ty funkční algoritmy jsou uspořádány do fukčních celků a to už se ty rámečky celkem hodí, nebo na návrch datovejch objektů, nebo tvorbu celý logický architekrury atd.
Pak tu jsou tzv design patterns, což už je zase jiná pohádka a tam se to montování z obrázků vyloženě hodí.
Během vývoje se používalo například u WWW různý kontent systémy, kde se funkčnost dávala dohromady z pevnejch celků a jen se to konfigurovalo, tzn jedna kostička za druhou - inject toho a samého kusu kódu, jen se před něj nasypal nějakej parametr, který ovlivnil jeho chod.
Podobný to je jak proběhl nějakej článek o tom, jak se AI učí programovat, tak , že dáva dohromady podle funkčnosti sobě známé kusy kódu a snaží se dosáhnou požadovaného výsledku.
Osobně si myslím, že v době kdy na kapacitě v případě programů přestalo záležet,ale naopak frčí funkční programování, a je tu obrovská poptávka pro unikátni funkčnosti výsledného kódu, je to cesta do budoucna, kdy člověk nebo autobat bude na základě požadavku vhodně montovat dogromady přednaprogramovaný kostičky kódu propojené universálním designem do unikátní požadované funkčnosti s neomezenou dovedností paralelního provozu.
Jsou tu jazyky jako SCALA a další , který jdou tímto směrem.
A určitě budou vznikat čistě visualní nástroje, který laikům dovolí jen se znalostí jejich problematiky vytvořit vysoce efektivní program.
24.4.2017 08:46:29   194.228.212.xxx 01
Doplnění doplnění: Relativní skoky zajišťovaly tz. "relokovatelnost" (tedy tu nezávislost na umístění v paměti) programu. Dokonce se tenkrát vedly spory, jestli je relokovatelnost nuttná a užitečná...
POKE - ten příkaz byl přece vynalezen kvůli cheatování her na osmibitech
24.4.2017 12:53:18   78.157.167.xxx 00
Zkoušel jsem Colobot. Při prvním průchodu hrou jsem si vytvořil prográmky a při druhém hraní už jenom nechával programy vykonat.
Hloupé je, že bohužel nemám mozek, který by byl schopen zvládnout i něco složitějšího, už i u Colobot jsem se musel sakra snažit, abych se v tom vůbec vyznal, už jsem se pak v tom ztrácel.
Takže zkusil jsem, ale programátor ze mně fakt nebude. Kebule nestačí.
27.4.2017 15:15:18   82.202.7.xxx 21
Pokud máte pocit, že by vás programování bavilo, tak se hlavně nevzdávejte a zkuste si dle návodu vytvořit třeba HTML stránku, později doplnit o JavaScript atd. Ono ne vždycky člověk musí být bedna, aby se v tomto oboru uplatnil (z vlastní zkušenosti)
Někdy je to spíš o trpělivosti a nadšení pro věc, nesmí samozřejmě chybět nějaké základní logické uvažování (i když i to se dá myslím časem zlepšit) a schopnost dohledat si co neznám. A hlavně pořád hledat způsoby, jak další projekt zpracovat lépe.
Samozřejmě jiný případ je, pokud byste měl ambice na opravdu náročné pozice / projekty, kde je potřeba dlouholetých zkušeností, případně znalosti matematiky atd., ale to se mi nejeví, že by bylo vaším cílem

Redakce si vyhrazuje právo odstranit neslušné a nevhodné příspěvky. Případné vyhrady na diskuze(zavináč)pctuning.cz

61 čtenářů navrhlo autorovi prémii: 30.5Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.