Do třetího semestru jsem šel s jedním velkým omylem. Domníval jsem se, že po překonání prvních dvou semestrů, lineární algebry a dalších obávaných předmětů už půjde FIT studovat tak nějak samospádem. Nemohl jsem se více mýlit. Jak praví můj kamarád na magistru: „Lehčí to nebude. Jen si člověk zvykne“. Bohužel. V tuhle chvíli bych řekl, že třetí semestr byl prozatím co se vytížeností studiem asi nejhorší. Jeden si řekne – progtestové úlohy za celý semestr jenom 3, jen pár předmětů, na první pohled jen jednu matiku. Vůbec netuší, co ho vlastně čeká.

V semestru mě zatěžoval nejvíc předmět HRY, který jsem si zapsal jako volitelný na FELu. Byl jsem team leader našeho 4členného gamedev týmu. Měl jsem pocit, že pořád nestíháme a byl jsem trochu ve stresu. Že by to ale bylo produktivní říct nemůžu. Za celý semestr v podstatě nenastal moment, kdy bych měl pocit, že mám všechny věci do školy splněné. Co se povinných předmětů týče, nejvíce času mi v semestru zabrala diskrétní matika, na kterou je potřeba se trochu připravovat. Ve zkouškovém pak přibyde takzvaná „velká trojka“ – vražedné trio třídílných hardcore zkoušek na předměty AAG, AG1 a ZDM.

Tenhle blog ohledně FITu píšu hlavně pro lidi, kteří na FIT přijdou v následujících letech. Ale také pro představu, jaké studium vlastně je. Proto jsem se rozhodl ke každému předmětu připsat i vlastní návod, jak předmět udělat. Pár hintů, které bych byl býval sám ocenil na začátku semestru. Sám takhle na začátku každého semestru čerpám od zkušenějších spolužáků, kteří FIT už absolvovali.
BI-AAG [Automaty A Gramatiky]
Na začátku semestru jsem vůbec neměl šajn, o co jde. Automaty a gramatiky? Pod tím jsem si představoval něco jako pračku co umí číst knížky. V předmětu se student naučí klasifikovat jednotlivé druhy formálních jazyků, navrhovat stavové automaty, vytvářet regulární výrazy, a mnoho víc (což si už teď moc nepamatuju). Na konci je navíc kapitola věnovaná problému P vs. NP a Turingovým strojům. V podstatě to znamená, že si celý semestr kreslíte do sešitu divné posloupnosti znaků, občas děláte kroužky a ty spojujete, a občas si kreslíte a vyplňujete tabulky. Moc jsem občas nechápal, k čemu mi to má být dobré.
Z popisu předmětu mi připadalo, že se není čeho bát. Opak je pravdou. K získání zápočtu je potřeba v průběhu podzimu získat alespoň nadpoloviční většinu bodů ze 6 malých písemek. Na každou z nich se dá naučit za předchozí večer, takže to není takový problém. Pak ovšem přijde zkouškové, a vy zjistíte, že vás čeká pekelná smršť zkoušek.

Zkouška se skládá z počítačového rozstřelu, písemné části a je zakončena zkouškou ústní. Překrásná dávka stresu. Tedy alespoň pro mě.
Jak udělat AAG?Na zkoušku doporučuji učit se týden. Teoreticky to jde i za 4 dny, ale už je to dost na knap. První čtyři dny – propočítej celá skripta. Další den (nebo i půl stačí) se připravuj na rozstřel. Zbytek svého volného času (den) věnuj počítání příkladů a cílené přípravě z fit-wiki. Témata příkladů se věrně podobají loňským rokům, takže se stačí dobře naučit zadání, která se opakovala a je vyhráno. Při přípravě na ústní je opět nejlepší čerpat z fit-wiki, kde jsou vypsaná témata z let předcházejících. Na ústní jsem se připravoval až odpoledne po písemné části (ústní byla další den ráno) a přežil jsem.
BI-AG1 [Algoritmy a Grafy]
Mnou nejvíce obávaný předmět z „velké trojky“. Relativně mě baví vymýšlet algoritmy a látka mi přišla velmi zajímavá ba dokonce přínosná. Stejně byl ale předmět jedním z nejtěžších, které jsem na FITu zdolal. Semestr začíná úvodem do teorie grafů a základními důkazy na stromech. Následně se přehoupne do pokročilejších algoritmů jak pro hledání na grafu (DFS, BFS, Djiskra, Bellman-Ford), tak i na hledání minimálních koster (Jarník, Kruskal), řazení (QuickSort, MergeSort) či algoritmy jako TopSort, technika rozděl a panuj a nějaké to dynamické programování. Esenciální znalosti programátora.
V semestru se vypisují 3 progtestové úlohy, které není nutné všechny splnit. Prvním šokem je zápočtová písemka, která je současně v semestru i jediná. Není vůbec takový problém nezískat zápočet a následně selhat i u opravného termínu. Zkouška je jak jinak než triatlonový styl rozstřel-písemná-ústní část. Z každé části lze stejně jako u AAG (nebo ZDM) vyletět. Získané zářezy se ale z pažby nesmazávají. Je tedy potřeba opakovat pouze od první části, kterou student nezvládne.
Jak udělat AG1?Zkouška se skládá opět ze tří částí. Rozstřel se dělá v systému Marast a je potřeba získat alespoň 5/10 otázek správně. Pokud si člověk projede selftest (cca 1 den), neměl by s tím být problém. Písemný test je v tomto případě hlavní kámen úrazu. Je tvořen třemi otázkami. První téma je nějaký algoritmus z přednášky, dokázat korektnost, ukázat časovou a paměťovou složitost, případně ho aplikovat na zadaný problém. Druhá otázka je již více o přemýšlení. Je potřeba vybrat správný algoritmus který efektivně vyřeší problém ze zadání. Opět je potřeba popsat do detailu korektnost a dokázat všechny požadované vlastnosti. Ve třetí části se obvykle objevuje úloha na dynamické programování. Osobně doporučuji propočítat si všechny příklady ze všech předchozích let. U dynamického programování se hodí si třeba v pythonu zkusit problémy i naprogramovat. Nezabere to moc času a člověk se to tak dobře naučí a pochopí. Chce se to taktéž nebát do písemky napsat svoji úvahu a pokusit se o důkaz, i když si není student jistý. Lepší, než nenapsat nic. Ústí veta otázka už mi v AG1 připadá spíš jako formalita. Připravil jsem se na všechny témata ze seznamu otázek a prošel jsem bez problémů. Sečteno a podtrženo to vidím na 5-7 dní studia. U písemky záleží jaké má zrovna člověk štěstí na zadání. Hlavně u prvních termínů mi ale přišlo, že se přesně opakují zadání z minulých let.
BI-ZDM [Základy Diskrétní Matematiky]
Diskrétka byla první matikou, které jsem se nebál. Tedy hlavně poté, co jsem prošel lineární algebrou a matematickou analýzou. O diskrétce panuje pověst ne-tak-těžké matiky, s čímž konec konců musím souhlasit. Nebylo to tak strašné. O to víc ale časově náročné v semestru. Je potřeba se pravidelně připravovat, dělat domácí úkoly, učit se na písemky a dělat pořád minitesty na Marastu. Je toho hodně, ale odměnou za hodně práce je zkouška, která není ve srovnání AG1 a AAG tak náročná.
Líbí se mi, že se v diskrétce probere relativně velké množství rozličných témat. Ale současně je toto i prokletí, protože na každém cvičení se probírá něco úplně nového a je potřeba být pořád v obraze. Začíná se asymptotickou složitostí a přes relace a kombinatoriku se dojde až k rekurentním rovnicím a modulární arietmetice. Předmět mě ze začátku vůbec nebavil. Bylo to neustálíé dokazování relací a jejich vlastností. Zajímavý mi předmět přišel vlastně až ke konci a při učení na zkoušku. Probraly se zajímavá témata jako řešení rekurentních rovnic či Mistrovská metoda a Čínská věta o zbytcích.
Jak udělat ZDM?BI-EMP [Ekonomické a Manažerské Principy]
Za bakaléřeké studium je potřeba absolvovat jeden ekonomický předmět – EMP. Kdo by ovšem čekal kvalitní předmět, toho zklamu. Na první přednášce mi bylo řečeno, že účast není povinná, a že si přednášející nepřeje, abychom na přednáškách používali počítače. Z přednášky první se tak rázem stala i přednáška poslední. Na cvičení se probírá jak vytvořit správně business plán a cvičící se snaží vysvětlit základní mechaniky trhu. Právě business plán je třeba vytvořit jako závěrečnou práci a odprezentovat ho svým spolužákům. Celý předmět je zakončený extrémně lehkou zkouškou. Přišlo mi to jako kredity zdarma. Trochu pod úrovní ostatních předmětů na FITu, kde musí člověk bojovat o každý kredit.
Jak udělat EMP?BI-CS1 [C#]
CS1 jsem si primárně zapsal proto, že jsem se C# učil sám a neznám tudíž tolik pokročilých praktik a vychytávek jazyka. Bohužel je předmět ale koncipován pro naprosté začátečníky. Na začátku semestru, kdy jsem ještě chodil na cvičení (pozn. přednášky nejsou), jsem se nudil. Na konci semestru jsem na cvičení neměl moc čas. Předmět je vyhlášený jako skvělá farma na kredity, jelikož prezenci nikdo nekontroluje, a zkouška se píše na PC s připojením k internetu. Já osobně jsem přišel na předposlední cvičení (po dlouhé době) s tím, že se zeptám kdy bude zkouška. Zjistil jsem, že se zkouška píše právě teď, takže jsem naprosto nechtěně bez přípravy napsal zkoušku. Předmět mi kromě 4 kreditů dal pramálo.
Jak udělat C#?B4B39HRY [Počítačové hry]
Vývoj her mě dlouhodobě moc baví. Když jsem viděl dobře hodnocený předmět, který se vyučuje na FELu, bez váhání jsem si ho zapsal. Za jeden semestr se v tomhle předmětu naučíte spoustu užitečných věcí – od psaní pitche, přes design dokument až ke hratelnému produktu na konci. Hry se vyvíjejí v herním enginu Unity. To bude v pohodě, říkal jsem si. V Unity mám přece spoustu zkušeností. Časová vytíženost byla ale obrovská. Na začátku semestru si týmy o 4 členech vyberou zadání, sepíšou pitch a následně vytvoří design dokument. Náš tým byl nakonec ve složení 2 programátoři, zvukař, a 3D designér. Každý jsme si ale zkusili od každého něco. Každých pár týdnů je potřeba sepsat report o postupu ve vývoji a stanovit si cíle k dalšímu milestone. Vývoj her je těžkej. To je fakt o kterém se nedá polemizovat. Jakožto team leadera mě celý semestr pronásledovaly černé myšlenky, že musím makat. Nakonec jsem na vývoji strávil víc než 100 hodin čistého času. Vznikl tak z naší produkce epický survival shooter – Strahov Survival! Předmět mi opravdu hodně dal, považuji ho obecně za jeden z nejpřínosnějších za celé studium. Velmi doporučuji.
Jak udělat HRY?Závěr
Takže obecně vzato jak hodnotím třetí semestru na FITu? V předchozích semestrech byl vždy jeden těžký předmět, zatímco ve třetím jsou těžké předměty hned tři. V průběhu semestru jsem měl nad hlavu práce se zápočtovými testy a projektem na HRY, při zkouškovém jsem si kvůli třem těžkým zkouškám po třech částech vůbec neodpočal. Říkal jsem si, že možná budu mít i čas si najít při škole práci, nebo začnu zase po půlroční pauze naplno trénovat orientační běh. Na nic z toho nebyl vůbec čas. Studia na FITu nicméně nelituji. Je časově náročné a nutí mě často učit se věci, na které bych se sám od sebe nikdy nepřinutil podívat. A právě ty udělají člověka lepším. Po gymplu jsem si myslel, jak umím kdejak dobře programovat. Opak je pravdou. Neuměl jsem nic. A pořád toho hodně neumím.