Algoritmy (IAL) – zhodnocení
By Bumerang
Další z řady „populárních“ předmětů na „vysoko-brněnské“ informatice. Není to ovšem jeden z nejobávanějších, spíše naopak. Oproti mnoha předmětům, které projdete a pak jen horko těžko vzpomínáte, jestli jste předmět s podobným názvem vůbec absolvovali, tento vám z paměti jen tak nevypadne. Není to však kvůli znalostem, které si z něho odnesete.
Když jsem se kdysi probíral anotací předmětu, docela jsem se na předmět těšil. Slibuje totiž představení informatického minima z hlediska algoritmů. Ať už jde o řadící, vyhledávací algoritmy či nejrůznější datové struktury. I když z vás bude nakonec správce sítě, měli byste vědět, co je to binární strom či Quick sort. Ale z vyšších ročníků prosakovaly řeči, které naznačovaly opravdový zážitek v tomto předmětu. Bohužel v tom negativním smyslu. Ale co, tohle už jsem přece slyšel tolikrát a nakonec se z toho vyklubaly jenom povídky neúspěšných studentů. Jak to nakonec bylo v tomto případě?
Jediným přednášejícím je prof. Ing. Jan Maxmilián Honzík CSc. Nevím, co za sadistické rodiče dá svému synovi jméno Honza Honzík, ale asi to mělo nějaký hlubší smysl. Mnozí tvrdí, že tento profesor už je prakticky inventářem fakulty (kde působí od roku ’68) a tak je ze své pozice prakticky neodvolatelný. Jeho styl přednášení je „unikátní“. Absolvoval jsem pouze čtyři přednášky, které se naštěstí streamují, protože si nedokážu představit, kdo by pouze kvůli tomuto vážil cestu do školy. Jeho projev není nepodobný tč kandidátovi na prezidenta s fialovou krví – špatná artikulace, nesouvislý a často nesmyslný výklad. Celou hodinu se pak nepohne ani o píď ze své židle. Na přednášky nemá cenu chodit – nedočkáte se ničeho jiného než předčítání slidů úmorným tempem. Je tu však jedna výjimka a tou je poslední přednáška – na ní JanMax projede všechny přednášky a řekne, které otázky se mohou objevit u zkoušky.
Abomination
Co se týče samotných slidů, jsou to jenom vybrané části z opory. Slidy s oporou pak mají tu hlavní věc společnou – jsou příšerné. O to horší to bylo, že jsem minulý semestr absolvoval i Typografii a publikování (ITY), takže jsem si o to víc všímal nejrůznějších typografických zrůdností. Ale i člověku naprosto typografií nepolíbenému se při pohledu na slidy dělalo zle. Zdrojové kódy naprosto neodlišené od normálního textu, často přesahující hranice slidů, zarovnání připomínající topografii státu Illinois. K tomu se ještě musí přidat neodmyslitelné faktické chyby, často prapodivné formulace které spíše znepřehledňují než vysvětlují.
Dobře, řekl bych si, tak se ty věci naučím z jiných zdrojů. Ale ejhle! Obsah předmětu je často natolik unikátní, že na internetu najdete informace buď opačné nebo je tam nenajdete vůbec. V předmětu se neučí světem prověřené a uznávané struktury a principy, ale Honzíkovy modifikace – jinými slovy „Honzík-sorty“. Že by byl tak náš profesor napřed oproti světu? No uvidíte sami…
Během semestru budete řešit dva projekty, které spočívají v implementaci funkcí do předem připravených koster programů. Problém je ale ten, že samotné funkce jsou tupě přepsány z Pascalu (ve kterém se ještě před lety tyto projekty řešily), tudíž zapomeňte na to, že by funkce vracela nějakou hodnotu nebo nedejbože dávala smysl. Neříkám, že to neplní účel. Jenom říkám, že kdybych byl zavřený ve výtahu jezdícím nahoru a dolů, tak i s koštětem zaraženým v análu a skákajíce na trampolíně nadrápu nehty na stěnu lepší program. Zapřete tak proto svůj programátorský cit a jednoduše to tam bez přemýšlení přepište z opory (ale musíte to přepsat z Pascalu). Nad smyslem a případnou zbytečností daných operací vůbec nepřemýšlejte. Za večer máte každý projekt hotový a je velice pravděpodobné, že dostanete plný počet. Plusem je to, že k zadání dostanete i základní testy, které otestují „kvalitu“ vašeho řešení. To shledávám jako velice užitečné, neboť nemusíte se měsíc do ohodnocení klepat, jestli jste náhodou nepochopili zadání jinak. Není problém si pak sehnat i rozšířené testy z minulých let, které prověří váš program z hlediska schopnosti získání plného počtu bodů. Získáte tak 20 bodů prakticky zadarmo. Do bodového ohodnocení předmětu se započítává i dokumentace a obhajoba projektu z IFJ, ale to rozeberu v samostatném článku.
Testy
Půlsemestrální zkouška byla jednoduchá (i dle grafu hodnocení), bylo třeba se pouze naučit diagramy signatury a pár definic, vyhodnocení prefix/postfix kódu a poté doplnit jeden Pascal kód. Toto doplnění bylo navíc tak snadné, že stačilo prakticky přepsat řádek výše. Přestože jsem si naprosto jistý, že jsem měl test kompletně správně (definice jsem udržel v hlavě, stejně tak diagram signatury), byl mi stržen jeden bod. Asi Honzíkova konstanta. Na reklamaci jsem nešel, neboť dle zvěstí z minulých let (které se dle zkušeností spolužáků naplno potvrdily) velice často z reklamace odejdete s menším počtem bodů, než jste přicházeli. Pan profesor zřejmě nemá náladu cokoliv studentům vysvětlovat, i když by šlo o jejich chyby. Nevyplácí se pak ani prosté podívání se do testu. V emailu po půlsemestrálce si nám pak pan profesor pobrečel, následujícím způsobem:
Přípravu na semestrální zkoušku jsem pak pojal standardně, vypsal jsem si na papír důležité (z hlediska zkoušky, ne reálného života) definice, diagramy signatury na pár příkladech se naučil „příklady na datech“ (máte zadanou například tabulku s daty a máte určit, kam se vloží nový prvek při vkládání danou metodou), projel si zdrojáky Honzík-sortů a to bylo všechno. Většina příkladů v semestrálce pak byla očekávatelná až na jedinou otázku, která se týkala mnohacestného vyváženého setřiďování s 8 páskami. Popravdě, něco takového jsem viděl poprvé. Kolega v místnosti se pak zeptal dozoru, na kolik desetinných míst máme ten logaritmus vyčíslit. Když jsem tohle zbystřil, jal jsem se tam cpát logaritmus. A skoro jsem se trefil.
Reklamace
Nakonec jsem skončil jeden bod od lepší známky, tak jsem se vydal na reklamace. Můj test opravoval Dr. Masařík (za což jsem rád) a tak jsem mířil za ním do kanclu. Přišel jsem hodinu po zahájení reklamací, vyzbrojen novinami, abych se při čekání nenudil. Čekal jsem klasické fronty, jaké jsou u všech reklamací. Jaké však bylo moje překvapení, když jsem nikde nikoho neviděl. Nejprve mě napadlo, že jsem na špatném místě, ale to jsem následně zavrhl. Tak jsem vkročil dovnitř a tam potkal toho nejajťáčtějšího člověka co jsem kdy naživo spatřil. Zarostlá tvář, kšiltovka — na kšilt byly přilepené dva papírky, zřejmě aby zúžily zorné pole a omezily rozptylování. Na kšiltovce byla pak naražena zimní čepice a přes zimní čepici mohutná, celouzavřená sluchátka. Těžce jsem odolával pokušení si toto neustále se chvějící stvoření vyfotit. Dr. Masařík měl naštěstí kancelář vedle. Přivítal mě sympatický mladý doktor, což mě po předchozím výjevu poněkud uklidnilo. Prohlížel jsem si svůj test a musel uznat, že hodnotil mírně. Možná proto nebyla žádná fronta na reklamacích — většina lidí byla jednoduše překvapena vysokým počtem získaných bodů, tak nechtěli riskovat, že to byl jenom omyl.
U jednoho příkladu (šlo o TRP a Brentovu variantu na datech) jsem se pak pozastavil, neboť jsem věřil, že ho mám dobře (počítal jsem ho snad čtyřikrát). Ale oproti řešenému příkladu v opoře tady bylo pole číslované od nuly, což značně ovlivňuje hru, které se zúčastňuje operace modulo. Nevěděl jsem, zda přičítat jedničku nebo ne – nakonec jsem jí nepřičítal, neboť mi to tak dávalo nejlepší smysl. Jak jsem se následně dozvěděl, tohle byla chyba v zadání – milý pan profesor se přepsal a omylem pole čísloval od nuly. Slovy doktora Masaříka: „Honzík to spletl, tak to Křena potom nějak přepočítával, strávili na tom s ještě jedním kolegou asi hodinu, než jim to nějak vycházelo, tak prosím berte ta čísla v referenčním řešení jako správná.“ Na to jsem však kontroval, že moje řešení by taky dávalo smysl a vysvětlil mu ho. Souhlasil se mnou a zeptal se mě, kolik bodů potřebuji. Jeden. „Tak víte co, váš postup mi přijde logický, tak já vám dám čtyři.“ Příjemný člověk, se kterým se dalo normálně mluvit (moje první čistě kladná zkušenost z reklamací na FITu).
Q.E.D.
Tento předmět má obrovský potenciál a dokážu si představit, jak by tvořil nosnou osu bakalářského studia. Bohužel by musel mít kompletně jinou formu. Kdyby tento předmět vedl například profesor Vojnar, mlaskal bych si blahem. Ale není tomu tak. V této formě je tento předmět naprosto zbytečný, mně osobně přinesl jenom minimum nových informací — a to spíše v nepřímé formě, když jsem hledal nějaký Max-pojem a dostal se na nějaké zajímavé stránky. Takhle musíte snášet arogantní poznámky a opovržení od garanta předmětu, doplňovat kód v jeho variantě Pascalu (tzv. Maxskvil) a programovat projekty navzdory většině dobrých programátorských praktik. Naštěstí tento předmět není obtížný na zvládnutí, jen to chce zvolit ten „správný“ přístup. Užijte si tu svou Honzíkovu cestu…
Studentů prospělo: 84,75%