Zhodnocení čtvrtého semestru na FIT VUT

Oproti třetímu semestru, který byl poměrně pohodový, byl ten čtvrtý celkově mnohem náročnější. V podstatě žádný předmět se nedá jen tak „odchodit“ a jenom z povinných předmětů je 6 projektů. Já měl třeba ještě navíc dva volitelné předměty, kde jeden projekt zabral cca týden času a ve druhém byly další dva. No nebyla to procházka růžovým sadem 😀 Nicméně vše jsem bez problémů zvládnul a tak se s vámi podělím o své zkušenosti.

Varování: článek není ve skutečnosti tak dlouhý, jak se může na první pohled zdát, rychle se začtete 🙂

IDS – Databázové systémy

Poměrně pohodový předmět. Probírají se, překvapivě, databáze. Tzn. konceptuální návrh (ER diagram), převod na relační model (tabulky) a práce s SQL. Předmět tak lehce navazuje na IUS z prvního semestru.

Jednu přednáškovou skupinu má pan děkan Zendulka, druhou pan doktor Bartík. Bohužel, jedny přednášky jsou nudnější než druhé. I tak jsem se ale snažil na většině objevit. No klasicky jsem to vzdal někdy po půlsemestrálce… Jsou záznamy, takže není co řešit.

Projekt je jenom jeden, zato trochu větší. Cílem je vytvořit jakýsi náznak informačního systému. Pokračovat můžete buď se zadáním z IUSu nebo si zvolit některé nové. Pokud si dobře pamatuji, tak má projekt tři fáze. V té první je potřeba vytvořit ER diagram (příp. vzít z IUSu pokud si téma necháváte) a ukázat ho k obodování. Potom vytvořit v SQL skript, který vytvoří potřebné tabulky v databázi a naplní je ukázkovými daty. Nakonec je potřeba pomocí aplikace Oracle Forms (což je asi nejdebilnější program, jaký jsem byl kdy nucen používat) vytvořit javovský „informační systém“, kde se dají zadávat věci do databáze a editovat uživatelsky lehce příjemnějším způsobem. Celkově nic složitého. Jenom u Formsů musí člověk neustále nadávat a přeje si, aby někdo těm lidem co ten hnus vytvořili, zpřelámal všechny prsty, aby už v životě nemohli vytvořit takový debilní program, kde jednou něco funguje a podruhé už ne. Když tak nad tím přemýšlím, jde vlastně asi o jediný program s nedeterministickým chováním, který znám 😀

Na půlsemestrálce ani zkoušce nečekejte žádné podrazy, je tam přesně to, co garant slíbí, že tam může být. Jenom pozor na druhý a třetí termín, prý se na nich hodně přiostřuje a řada lidí měla problém to zvládnout. Co jsem slyšel otázky, které tam byly, tak žádná sranda.

Jak mě probíraná látka zaujala: 4/10.

IPK – Počítačové sítě a komunikace

Taktéž celkem pohodový předmět. Probírají se základy sítí, přenosové protokoly, routování apod. Přednášky s doktorem Rýšavým jsou extrémní nuda, u které usnete. Naopak ty s Veselým a Grégrem mají šťávu a patří mezi to nejlepší nejen během tohoto semestru (a to mě sítě vůbec nebaví, protože to osobně považuji za žabařinu :D).

Cvičení jsou pouze dvě a mám pocit, že se tam dělalo směrování a možná nějaké hrátky s Wiresharkem, už si to moc nepamatuji. Projekty jsou taktéž dva, prvním je velmi jednoduchý FTP klient, druhým server pro přenos souborů, který umožňuje obsloužit více klientů najednou a dokáže omezit přenosovou rychlost. Oba jsou celkem zajímavé, byť k tomu patří nudné procházení RFC. Z hlediska implementace jsou na výběr jazyky C nebo C++. Líbilo se mi, že jsou projekty poměrně neformálně zadány. Jednak to připravuje lidi na reálný, mimoškolní, svět a jednak se nebazíruje na hovadinkách.

Jak mě probíraná látka zaujala: 6/10.

IPP – Principy programovacích jazyků a OOP

IPP bylo pro mě osobně největším zklamáním za celé bakalářské studium. Čekal jsem, že nám konečně někdo ukáže objektový návrh, návrhové vzory atd., prostě nás konečně naučí OOP. Jenomže to jsem se šeredně spletl. V tomto předmětu se totiž probírá… no já vlastně ani nevím co. Řekl bych něco na způsob přehledu programovacích jazyků + sem tam se odbočí k tomu, jak se některé vlastnosti jazyků (např. dědičnost) implementuje. Zkrátka jde o teoretický bullshit, který si načtu za jedno odpoledne, a vůbec k tomu není potřeba studovat nějaký předmět.

Většinu přednášek má profesor Kolář, pár z nich (asi 4) pak doktor Křivka. Osobně proti prof. Kolářovi nic nemám a možná je v soukromí i v pohodě, ale od pohledu je to jeden z nejnepříjemnějších lidí na fakultě 😀 a často se tak i veřejně projevuje. Prostě má potřebu ukazovat, jak je chytrý a my studenti jsme hňupi 😀 Spolu s tím, že má nudný přednes a probíraná „látka“ (je to jako mlátit prázdnou slámu) je nezajímavá, mě to odradilo od toho, abych se objevil na jakékoliv jiné než první přednášce. Což byla potom trochu škoda, když přednášel doktor Křivka, protože to byly právě ty přednášky, kde se člověk skutečně i něco dozvěděl o tom, jak se některé věci v interpretech/překladačích implementují (bohužel ale stále nic o tvorbě OO kódu).

Projekty byly dva a osobně je považuji za jediný přínos tohoto předmětu. Jeden se dělal v PHP, druhý v Pythonu 3. Na výběr bylo z kombinace témat dle obtížnosti. Buď jednodušší + těžší nebo střední + střední. Někdo tak měl třeba extrémně jednoduchý projekt v PHP a podstatně těžší v Pythonu a někdo se nadřel zhruba stejně u obou. Napsat jste si to mohli, jak jste chtěli, tedy procedurálně nebo objektově. Bohužel jak už to bývá, zpětná vazba nulová, takže člověk se pouze naučil dva nové jazyky. Z hlediska obtížnosti bych řekl, že oba projekty byly v pohodě. Jenom mi vadilo, že se člověk ani pořádně nedozvěděl, co se vlastně hodnotí a jak. Ale to je obecně problém, když se opravuje vše automaticky a body určují skripty.

Zkouška byla dle většiny lidí náročná, obzvláště zřejmě pro ty co s OOP nikdy nepřišli do styku. Takoví totiž neměli ani základní přehled k tomu, aby chápali, co se po nich vlastně chce. Pak to dopadalo tak, že někdo dělal zkoušku už na pošesté a říkali, jak je to těžké. No, já jsem kvůli nedostatku času dal učení jenom jedno odpoledne a neměl jsem problém. Pouze bych řekl, že se po studentech u některých otázek chtějí vyloženě „hovna“.

Celkově tak korunuji tento předmět titulem nejzbytečnější kurz bakalářského studia. Jak mě probíraná látka zaujala: -1538272/10.

IZG – Základy počítačové grafiky

To základy počítačové grafiky jsou úplně jiné kafe. Zajímavý obsah a dobrý přednášející doktor Španěl. Probere se vše od úplných základů, jako jsou barevné prostory, přes rastrování úseček, kružnic až po 3D vykreslování, osvětlování, stínování a jedna přednáška je dokonce věnována OpenGL.

Super jsou počítačová cvičení, která jsou každý týden a člověk si má možnost ihned prakticky vyzkoušet to, co se ukazovalo na přednášce. Sice se to někdy po dobrém začátku zvrhne na hledání chyby v algoritmu, kterému třeba ani pořádně nerozumíte, ale dost vás to naučí a myslím, že jsem se snad ani jednou nenudil.

Otázky v půlsemestrálce i semestrálce jsou kombinací testových a fulltextových. Nic složitého, žádné podrazy. Projekt je pouze jeden, zadání se každý rok lehce mění, ale vesměs myslím, že jde o to samé. My měli vykreslit texturu šachovnice na povrch králíka včetně stínování atd. Projekt v podstatě shrnuje to, co se učilo v celém semestru, dostanete kostru a je víceméně pouze potřeba použít nějaké ty rovnice ze slajdů na správném místě. I pro počítačovou grafikou nedotčené, jako jsem byl já, žádný větší problém. Dá se to stihnout za jedno odpoledne a zároveň je to celkem sranda.

Jak mě předmět zaujal: 10/10.

IZU – Základy umělé inteligence

A zase úplný opak. Některé základy mohou být zábavné (IZG) a jinde (ano, IZU) naopak naprosto nudné. Bohužel kdo by čekal něco zajímavého ohledně umělé inteligence, tak ho zklamu. Tento předmět je opravdu ultimátní nuda. Na přednáškách jsem byl snad dvakrát, více jsem opravdu nevydržel, slajdy si můžu předčítat i doma. Docent Zbořil se sice snažil sem tam věci i vysvětlovat, jenomže to jsou takové blbosti, že se na to stejně musí člověk potom podívat doma v klidu.

Jde o opravdu prehistorické základy, většinu semestru se řeší metody prohledávání stavového prostoru, potom je tam něco málo o strojovém učení a nakonec jednoduché metody hraní her (and/or grafy, alfa-beta). Největším problémem je, že člověk se vůbec nedozví, proč se to tak vlastně dělá. Příklady jsou většinou dost hloupé a prostě si to na nich nelze představit.

Myslím, že se dále na přednáškách ukazují i jazyky Prolog a LISP. Čímž se dostávám k těmto dvěma „skvělým“ programovacím jazykům, které už dnes dávno nikdo nepoužívá. Jejich znalost je potřebná na počítačových cvičeních. LISP ještě ujde, byť je to závorkové peklo, ale Prolog, to je opravdu zhovadilost. Ne, že by se to nedalo naučit, ale člověk má k tomu nechuť už jenom kvůli tomu, že ten jazyk je prakticky k ničemu a má úplně ulítlou syntaxi. Jinak hodně záleží, koho máte na cvičení. Většinou mladí doktorandi zadávali rozumné úkoly a bodovali taktéž rozumně. Na druhou stranu, někteří starší zadávali těžší úkoly a měli poněkud vysoké nároky, kde si člověk musel každý bod opravdu vydřít.

Půlsemestrálka i semestrálka jsou formou básniček = učení se mechanicky nazpaměť. Prostě tam napíšete slovo od slova to, co je na slajdech nebo ve skriptech a hotovo. Známkování je poněkud zvláštní, stačí v podstatě jedno slovo špatně a máte z příkladu max. 2 body. Což vzhledem k tomu, že příkladů je na semestrálce pouze 6 a každý po 10 bodech, je celkem dost velká srážka. Navíc někdy bývá příklad zadán stylem „strčím prst do slajdů nebo do skript a na to se zeptám“. Jeden příklad byl např. napsat nějakou rovnici, o které jsem v životě neslyšel, a byla v nějaké prezentaci vložena úplně nenápadně na boku slajdu. Prostě wtf… Za celé bakalářské studium je to jediná zkouška, kde jsem musel jít na opravný termín, takže opravdu pozor na to a řádně se připravte. Učil jsem se myslím tři dny v kuse, přičemž poslední den až někdy do čtyř ráno a stejně to bylo málo 😀 Na druhém termínu už jsem věděl, co zhruba čekat a bylo to v pohodě.

Jak mě předmět zaujal: 2/10.

ICP – Seminář C++

Během studia je potřeba absolvovat alespoň jeden předmět ze skupiny PVT. Na výběr je tuším pouze VHDL v prváku, nebo C++ či Java ve druháku. Já jsem sice již VHDL měl, takže bych si nic dávat nemusel, ale chtěl jsem se zase něco naučit, takže jsem si dal C++. Jinak v podstatě všichni vybírali mezi C++/Java. Těch, co neměli ani jedno (pouze VHDL), bylo minimum.

Přednášky jsou celkem v pohodě, jde se od novinek v C++ oproti C až po různé specialitky a doktor Peringer přednáší, řekl bych, kvalitně. Ke konci probírá i návrhové vzory. Praktické ukázky nicméně, jako téměř všude jinde, chybí. Na přednášky jsem se snažil chodit, jenomže postupem semestru bylo času docela málo, takže jsem se na to nakonec vybodnul. Říkal jsem si, že se hlavně naučím hodně na projektu. Je to totiž zároveň to jediné, co je potřeba udělat pro absolvování tohoto předmětu.

Projekt je poměrně velký a troufnul bych si říci, že asi to nejtěžší, co se na bakalářském stupni dělá. Cílem bylo vytvořit hru bludiště, hratelnou po síti, kde na mapě pobíhají hráči a honí je hlídači s náhodně generovaným pohybem. Hráči přitom musí používat sebrané klíče k otevření bran, aby mohli postupovat dále a cílem je se dostat na určené místo. Vymyšlené to bylo opravdu pěkně a o to větší zábava byla to celé navrhnout a implementovat. Grafické prostředí bylo nutné postavit na QT tak, aby byla hra multiplatformní a zároveň musel být projekt vytvořen tak, aby byla logika oddělená od rozhraní. V ideálním případě měl projekt obsahovat i konzolové rozhraní.

No, byla to opravdu fuška, téměř dva týdny čisté práce, ale vše se zvládlo a pěkně to fungovalo. Jenom je škoda, že ke QT nám nikdo nic neřeknul, přitom na této technologii vše stálo a padalo. Navíc pořádný tutoriál ke QT snad nikde k dispozici není. Bodovalo se však, myslím, celkem sportovně. U projektu bylo potřeba pouze předvést základní funkčnost v laboratoři, jelikož je z předmětu pouze obyčejný zápočet.

Jak mě předmět zaujal: 7/10.

ITS – Testování a dynamická analýza

Nově otevřený předmět, jehož garantem je doktor Smrčka. Smrčka a testování? Říkal jsem si, to nezní špatně. „Sice to bude asi trochu hardcore, ale Smrčka má dobré přednášky“, takže co už, zapsal jsem si to. A své volby rozhodně nelituji.

Přednášky byly skutečně velmi dobré a myslím, že to byl jediný předmět, kde jsem během 4. semestru byl na všech přednáškách. Holt někdo umí přednášet a někdo se umí jenom vymlouvat. Látka samotná totiž zase až tak zajímavá není, jde spíše o teoretický základ, který by každý dobrý tester měl mít. Probírají se různé metody testování, dále způsoby, jakými hledat chyby v kódu „od pohledu“ nebo naopak ověřovat jeho správnost. Důležité je hlavně, že se člověk orientuje v názvosloví a získá přehled, takže potom už ví třeba co to je TDD nebo QA a nečumí jako puk když mu to někdo řekne 🙂

Součástí předmětu jsou dva projekty. U prvního je úkolem vytvořit unit testy pro vybraný modul SIMLIBu (simulační knihovna od doktora Peringera) nebo nad nějakým modulem knihovny pro tvorbu elektrických obvodů od doktora Smrčky. Zadání bylo dosti volné, v podstatě znělo „testujte“ 😀 Tím pádem si myslím, že se hodnotilo hlavně to, zda se na to člověk nevybodnul. Velkou škodou je, že jsme nedostali žádnou zpětnou vazbu.

Ve druhém projektu se provádí buďto sledování systémových volání, tedy dynamická analýza chování nějakého programu, nebo testování uživatelského rozhraní pomocí automatizovaného nástroje Selenium. U dynamické analýzy jsme dostali kostru odněkud ze stackoverflow 😀 a do toho jsme si měli doplnit potřebné věci a udělat výstup do XML tak, aby bylo možné z výpisu něco usoudit o chování programu. Ve výsledku jsem snad strávil delší čas snahou pochopit zadání než samotným programováním 😀 Asi se mi nechtělo uvěřit, že je to až tak jednoduché nebo co.

Zkouška byla hodně praktická, byl například zadán kus kódu, kritéria pokrytí a měli jsme napsat testy, které bychom použili. Nebo např. byla tehdy aktuální otázka „Jakým způsobem byste odhalili chybu Heartbleed?“. Teorie bylo úplné minimum, jenom nějaké základy.

Abych to celkově shrnul, předmět bych si určitě zapsal znovu a byť se na projektech toho člověk zase až tak moc nenaučí, získá díky přednáškám poměrně široký přehled. Pak už je na každém, zda se tomu chce více věnovat či ne. Těsně po absolvování jsem hodnotu předmětu příliš nedokázal ocenit, nicméně časem, v praxi, se ukázalo, že se získané znalosti opravdu dosti hodí.

Jak mě předmět zaujal: 8/10.

Shrnutí a zamyšlení

Čtvrtý semestr byl časově velmi náročný. Projektů bylo požehnaně, obzvláště pokud připočítám ty z (povinně) volitelných předmětů. K tomu půlsemestrálky, které klasicky rozhází celý plán. No prostě klasický FIT 😀 Volného času na nějaké společenské družení po večerech opravdu moc není. A když se nějaký čas najde, tak jste stejně tak unavení, že se vám už nikam nechce 😀

Z hlediska zajímavosti vychází tento semestr pozitivně. Přeci jen těch zajímavých předmětů je většina, a pokud to zkombinujete s vhodně vybranými volitelnými předměty, tak vás to bude snad i bavit. Nicméně nemůžu si pomoct, ale IPP je prostě blbost na ntou 🙂

Bohužel opět se potvrdilo to, co jsem si myslel už delší dobu. Studentům naprosto chybí zpětná vazba od opravujících projektů, poznatky z praxe taktéž nikde (ale to se ani nedá moc čekat – ti, co vás učí, většinou v životě nic pořádného nenaprogramovali) a učí se hovadiny, které člověk vůbec znát nepotřebuje. Zejména z těchto důvodů jsem si začal říkat, že VŠ je vlastně k ničemu. I taková prestižní jako je FIT. A docela se zamýšlím nad tím, zda to všechno má vůbec smysl. Já jsem se stejně nakonec všechno naučil sám tvorbou mobilních aplikací…

Náročnost semestrů: 4. > 3. > 1. > 2.

Zajímavost semestrů: 2. > 4. > 3. > 1.

Napsat komentář

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