coursera.org – programování

Někdo se během mateřské naučí šít na stroji, jiný třeba … “programovat”. Mateřskou mám sice ještě před sebou, ale již od začátku roku, nebo spíš od té doby, co jsem přestala sportovat a získala tak nějaký volný čas navíc, jsem se snažila vyplnit volný čas nějak “aktivně”. Na skládání našeho velkého puzzle se ani nedostalo. Samozřejmě TV nějaký čas také zabrala, ale co mi nejvíce “kradlo” čas, byly online kurzy na https://www.coursera.org/. Můžete se tady přihlásit na kde co – neurovědy, sportovní výživa, historie, programování, … No a právě u posledně zmíněného jsem si říkala, že to by se mi někdy mohlo hodit a něco málo k tomu by mě stejně zajímalo. Původně jsem se přihlásila na “An introduction to interactive programming in Python”. Jak se ale ukázalo, bylo velmi prozíravé, absolvovat před tím ještě dva jiné, více základní (i když toto také měl být “úvod do programování”) kurzy na Torontské Universitě (Learn to program: the fundamentals, Learn to Program: Crafting quality code). Ten aktuální běží na Rice University a je to super. Celkem se v online přednáškách střídají tři profesoři, kteří to vše podávají v odlehčené formě a vypichují věci, se kterými mají studenti nejčastěji problémy. Přednášky samy o sobě zas tolik času nezaberou. Řekla bych tak 1-2 h. “Horší” to pak je s “domácími” úkoly, kdy člověk opravdu musí pochopit, co si v přednáškách vyslechl a aplikovat to. Úkoly jsou automaticky zhodnoceny, takže hned víte, jak na tom jste. Většinou máte pět pokusů, takže, kdo není líný, měl by se dostat v pohodě přes 90%. No a potom tu jsou mini projekty. Každý týden “programujeme” nějakou jednoduchou (tedy teď po pěti týdnech už jde do tuhého, jak sami uvidíte dále) hru. Ale nemyslete si, že nás jen tak hodí do rybníka a plavte. Vše je důkladně probráno v přednášce a na internetu je krok za krokem, jak máme při sestavování hry postupovat. Pak už jen napsat vše na správnou řádku a hrát stále dokola a hledat chyby a vymýšlet vylepšení. Součástí hodnocení mini projektů je i to, jestli jste sami ohodnotili něčí hru. Systém je velmi pěkně vymyšlen. Nahrajete si kód spolužáka (kterého samozřejmě neznáte, do těchto kurzů se většinou zapsalo něco kolem 50 tis. účastníků) a podle “grading rubric” ho oznámkujete. Prostě a jednoduše vyzkoušíte, jestli to či ono funguje. A je to. Když pracujete pořádně a dosáhnete požadovaných bodů, dostanete (většinou) potvrzení o absolvování kurzu (což ve výsledku nic neznamená, protože vlastně nikdo nemůže na 100% určit vaší identitu, ale je to pěkný pocit to mít a hlavně vědět, že jste se něco nového a snad i užitečného naučili).
Na rozdíl od těch dvou předchozích kurzů, kdy jsme pracovali v klasickém pythnovském prostředí, pro tento kurz byla vyvinuta speciální internetová aplikace, která tak umožňuje rychle a jednoduše sdílet kód. Takže kdo je zvědavý, může níže uvedené odkazy prostě nakopírovat do svého prohlížeče (“bohužel” to funguje jen pro firefox a chrome) a vlevo nahoře zmáčknout “play”. A hrajete.
Jedna z prvních her, kterou jsme měli za úkol bylo “uhodni číslo” (Guess the number): http://www.codeskulptor.org/#user11_EPlVLJp8EkvYMDo.py. Černého pole si nevšímejte, to jsme ho ještě neuměli ovládat. Jde o to, uhodnout, na které číslo počítač “myslí”. Do pole “Enter a guess” vložíte svůj tip a vpravo vedle kódu si přečtete jestli tajné číslo je vyšší než to vaše (“Higher!”) nebo nižší (“Lower!”) nebo jestli jste číslo uhádli (“Correct!”). Zároveň, aby to nebylo tak lehké, máte omezený počet pokusů. Pro hádání čísla mezi 0 a 100 máte 7 pokusů, pro hádání mezi 0 a 1000 máte 10 (je matematicky dokázané, že to na tento počet pokusů jde uhodnout).
V další hře (Stop watch: http://www.codeskulptor.org/#user12_8qrYC2VCpWgHi04.py) jde o to zastavit hodiny na celých sekundách. “Start” spouští stopky, “Stop” je zastavuje. V pravo nahoře můžete vidět vaši úspěšnost. Pro novou hru, zmáčkněte “Reset”.
Další hra byla Pong: http://www.codeskulptor.org/#user13_NRDRaVa0NldP5Lm.py. Zde jde o to “nedostat gól”. Jednoduše posouváte “posuvníky” (vlevo a vpravo, hra je pro dva hráče, ale můžete hrát sami proti sobě) buď šipkami (nahoru a dolu) nebo písmeny (w, s). S každým odrazem se rychlost balónku zrychluje.
Následovalo jednoduché Pexeso (http://www.codeskulptor.org/#user14_uBeXPaGoyNfYjHK_1.py). Všichni známe. Najděte všechny páry (zde čísel). Počítá se vám počet tahů. Velmi dobré skóre je 12 tahů.
A dnešní týden byl docela zlomový. Předešlé hry byly spíš o tom pochopit základ, a pak už s to nějak udělalo. Tentokrát mi to přišlo opravdu komplexní. Ale výsledek je super: Blackjack! Jedná se tedy o jednodušší verzi, než se hraje v Las Vegas, ale i tak to bylo zajímavé. O co jde? Musíte získat na kartách součet co nejbližší, ale nepřesahující, 21. Král, královna a spodek jsou za 10. Eso může být za 1 nebo 11 (nebojte, počítač rozhodne za vás, co je lepší). A jak se hraje? Na začátku je třeba rozdat karty (tlačítko “Deal”). Vy dostanete dvě, které vidíte, krupiér (Dealer) dostane také dvě, ale jen jednu vidíte. Sečtete si hodnoty a řeknete, jestli chcete ještě jednu kartu (tlačítko “Hit”), nebo vám to stačí a přenecháte pokračování krupiérovi (tlačítko “Stand”). Jakmile zmáčknete “Stand”, tak už na vás nic nezáleží. Krupiér si dolíže, jak to má naprogramováno, a hra se vyhodnotí. Vy pak buď vyhrajete, nebo prohrajete a to se promítne do vašeho skóre vpravo nahoře. Nutno podotknout, že remíza znamená výhru pro krupiéra. Také vám prozradím, že krupiér má naprogramováno hrát tak, aby jeho karty měly hodnotu 17 a více. A pak se zase můžou rozdat karty. Případně začněte znovu (zresetuje se skóre) pomocí tlačítka “Start new game”.
A závěrečný dvoutýdenní projekt stál opravdu za to – Asteroidy (správná funkčnost je zaručena pouze v prohlížeči Chrome).
Kurz byl naprosto supr. Kdyby všechno, co se ve škole musíte naučit, bylo podáno takovouto formou, to bych do školy opravdu chodila ráda. Tak uvidíme, co můj další kurz.

1 komentář

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *