Programování I
Datum následující přednášky prozatím nebylo stanoveno
Blíží se odevzdání úkolů #U23
Informace o předmětu
Během roku budou průběžně zadávány domácí úkoly, každý z nich ohodnocený nějakým počtem bodů. Za obě pololetí bude vypsáno tolik domácích úkolů, aby za ně celkem bylo možno získat alespoň 150 bodů.
Aby mohl být žák hodnocen, musí v obou pololetích získat za domácí úkoly alespoň 100 bodů. Každý žák navíc bude minimálně jednou v každém pololetí prezentovat své řešení domácího úkolu před třídou. Rozhodujícím faktorem při hodnocení žáka bude závěrečná zkouška skládající se z ústní a písemné části.
Obě části závěrečné zkoušky jsou hodnoceny zvlášť, písemná s váhou 7 a ústní s váhou 10. Prezentace jsou hodnoceny s váhou 5. Žáci mohou navíc dostávat známky za práci v hodině.
Podoba zkoušky
Zkouška se skládá z písemné a ústní části. Na začátku písemné části je zadána jedna úloha, na jejíž naprogramování studenti mají 90 minut. Ústní část se skládá z diskuze o studentově řešení písemné části a z několika otázek na teorii probranou v hodinách.
Co dělat, když něčemu nerozumím?
Co dělat, pokud máte pocit, že si tak docela nejste jistí tím, co děláte?
Především pamatujte na to, že programování je iterativní a proces plný experimentování. Napsat program, který bude funkční už napoprvé, je malý zázrak — hlavní je dělat malé krůčky, které zhruba směřují ke správnému řešení. Dělat chyby je vlastně skoro dobře, protože těmi se toho nejví naučíte.
Koho se zeptat?
Nejjednodušší je zeptat se některého ze svých spolužáků — buďto vám poradí, nebo alespoň zjistíte, že nejste jediní, kdo se ztrácí. Obojí každopádně je fajn.
Taková základní záložní možnost je zeptat se mě. Oceňuji všechny otázky, a nikomu žádnou otázku nevyčítám — i kdybyste se až teď osmělili zeptat na něco, co se dělalo pět přednášek zpátky.
Zdroje na internetu
S obecnějšími otázkami vám pomohou lidé z r/learnprogramming nebo na Stack Overflow. Zvláště druhá zmíněná stránka je takový zlatý grál programátorů, a to i těch profesionálních.
Pokud vám ani na jednom z míst nebudou schopni pomoci, doporučuji napsat na Pyret-Discuss mailing list. Na otázky a nápady tam mimo jiné často reagují také přímo autoři Pyretu, takže je to asi nejlepší Pyretovské místo na internetu.
Zadání úkolů
Všechny úkoly prosím posílejte nejpozději o půlnoci, a to přes messenger nebo přes mail. Nebude-li řečeno jinak, posílejte úkoly v souboru s názvemidUkolu_prijmeni.arr
, například u1_wybitul.arr
. Pokud je v rámci jednoho úkolů několik podůkolů, uložte je všechny do jednoho souboru a oddělte je prázdným řádkem.
Seznam použitých knihoven můžete nalézt zde.
Zápisky z přednášek
V ústní části zkoušky budou vyžadovány pouze znalosti, které jsou zaznamenány v těchto zápiscích. Přednášky jsou inspirovány knihou Programming and Programming Languages (PAPL), pokud vám tedy něco z přednášek nebude jasné, můžete se zkusit podívat i do ní.
#P13 ze dne 11. 5.
Seznam užitečných funkcí v Purescriptu
Kromě funkcí též typové třídy a nejběžnější balíčky
#P0 ze dne 24. 11.
Seznam in-house knihoven
V průběhu přenášek a úkolů jsem dal dohromady několik pomocných knihoven, zde je jejich úplný seznam
#P5 ze dne 6. 10.
(Spojové) seznamy
Ukázali jsme si, že můžeme jakékoli typy zabalit do seznamů, což jsou sbírky nula a více věcí
Naučili jsme se v rámci algoritmů pomocí if/else rozhodovat, jaký kousek kódu spustit, na základě hodnoty nějaké proměnné. Objevili jsme datový typ "boolean", který vyjadřuje pravdu a nepravdu. A v neposlední řadě jsme si ukázali, že funkce mohou volat samy sebe a naučili jsme se pomocí toho řešit nové sloužité problémy.