Principy programovacích jazyků a OOP (IPP) – zhodnocení
By Bumerang
V každém semestru se nachází předmět, o kterém slyšíte už dopředu a ve varovném tónu. Strašákem v tomto bylo právě IPP. Bez nadsázky nejteoretičtější předmět na celém bakaláři. Leckdo by se mohl zaradovat, že se v tomto předmětu konečně naučí programovat či navrhovat objektově, ale jak je to ve skutečnosti? OOP bylo do názvu (a jeho osnov) předmětu vloženo až dodatečně, proti vůli garanta. Pověry? Kdepak, bylo nám to řečeno přímo na přednášce.
Přednášky
Přednáší doc. Dušan „DušanKo“ Kolář a Dr. Zbyněk Křivka, známý z IFJ. Zbyňa má na starost kapitoly o OOP, takže jsem jeho přednášky poctivě odchodil. Dušan pak přednáší teorii programovacích jazyků, včetně historie. Jako u každého teoretického předmětu, i tady je hromada nejrůznějších rozdělení, klasifikací a dalších vyfikundací. Přednášky Zbyňka byly celkem kvalitní, jak co se týče výkladu tak obsahu. Bohužel na praktické ukázky v tomto předmětu není místo (a/nebo ani zájem). K Dušanovi jsem zavítal pouze na jednu přednášku, pak jsem to zavrhl jako ztrátu času. Veškeré slidy kromě těch o OOP jsou v pseudo-angličtině, kdy jsem občas měl, z porůznu naházených slovíček, problém pochopit význam odrážky. Nicméně jsou k dispozici 3 opory k předmětu, které jsou napsány kvalitně (z hlediska vědeckého). Tyto opory čtěte pouze na vlastní nebezpečí, neboť je to opravdu hutný matroš — já při čtení jedné z opor třikrát usnul.
Projekty
Během semestru se řeší dva projekty — na jaké asi tak mohou být téma, když se bere jenom teorie? Jaké to překvapení — zpracování a parsování textu. Bylo nám řečeno, ať v zadání projektů nehledáme nějakou spojitost s předmětem, že to jsou projekty pro projekty. První projekt se řeší v Perlu (v5) a druhý v Pythonu3. Oba jazyky jsem si oblíbil a jsem rád, že jsem dostal „příležitost“ si je osahat. Projekty ani nezabraly moc času (měl jsem obě zadání na analýzu zdrojových a hlavičkových C souborů) — dokonce jsme dostali k dispozici základní sadu testů, což jsem velice uvítal. Můžete si totiž ověřit, jestli získáte alespoň nějaké body a nepůjdete domů s čistým nulákem. Až po odevzdání a ohodnocení prvního projektu (v Perlu) jsem zjistil, že při analýze obřích souborů je můj skript dost pomalý. Asi tak stejně rychlý jako mrtvý kůň. Nebylo divu, všechny parametry jsem do funkcí předával hodnotou plus navíc jsem se vyžíval v postupném aplikování nejrůznějších regulárních výrazů. Takže skript většinu času jenom kopíroval. Naštěstí pro mě, na rychlost při hodnocení nebyl vůbec brán zřetel.
V průběhu semestru se píše půlsemestrální zkouška, na kterou se vyplatí připravit. A pokud si řeknete, že nějaké debilní počítání s ukazateli tam být nemůže, tak se pletete. Já jsem si naštěstí potřebný vzorec pamatoval — díky tomu, že mi nedával moc smysl.
Zkouška
Na zkoušku samotnou (i na půlsemku) jsem zvolil klasický brute-force přístup pro strašáky semestru. Projít si všechny slidy a z nich si vypsat ručně na papír všechno důležité. Poté vzít barvičky (nejlepší pasáž) a celé to barevně vyzdobit. Když jsem tento proces dokončil, tradičně mi chyběl jeden den pro opakování a učení se. Při odpovídání na otázky si dejte obzvlášť pozor na použitou terminologii, slovosled a celkový význam věty. Jinak totiž můžete na svém opraveném testu najít zkratku NVZ — Nepřesné, Vágní a Zavádějící. Při závěrečné písemce pak všem automaticky přidali dva body, protože při tom sčítání se mohli splést (jejich slova). To je sympatické gesto. Dalším zjevem na opravené písemce je množství plusů a mínusů, za částečně správné či částečně nadstandardní odpovědi. Tyto symboly se pak různě anihilují, posilují, kopulují a kdo ví co ještě. Na reklamacích na mě Dušan, navzdory pověsti, působil celkem vysmátě a v pohodě. Z mých zkušeností (díky mojí absenci na přednáškách byla vlastně jediná) tak o něm nemohu říci cokoliv negativního.
Prepare your weapons
Předmětu se nemá cenu extrémně obávat, stačí ho nepodcenit (jako ostatně vždy). Věnujte čas projektům a přípravě na písemky. Bohužel teorie je opravdu dost, takže nějaké memorování musí proběhnout. Co se týče přínosu předmětu, jsem na rozpacích. Člověk by sice měl mít představu o tom, co je to například staticky typovaný jazyk, ale většina látky jde až zbytečně do detailu. Přínos pak vidím v projektech, kdy si vyzkoušíte opět dva nové (a používané) programovací jazyky. Trošku zamrzí absence praktických příkladů na OOP, ve stylu: „Tady jsou požadavky na systém a my ho teď OOP-košer navrhneme s využitím návrhových vzorů.“ Paradoxně jsem v IPP dopadl nejlépe ze všech mých předmětů, ale to je způsobeno tím, že jsem se mu jako jedinému opravdu věnoval.
Studentů prospělo: 71,22%