Tag Archives: fakulta informačních technologií

Latest Posts

Třetí semestr na FIT ČVUT: Nebude to lehčí

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á.

Průchodnost „velké trojky“. Zapsaných / úspěšně ukončených.

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.

legit Google search

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.

Úryvek z ankety – zkouška z AAG připomíná triatlon.

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?
V semestru se píše 6 malých písemek. Je potřeba získat nadpoloviční většinu bodů, což není nesplnitelné. Šok nastává až při učení na zkoušku. Obzvlášť pokud se ti nechtělo chodit na kryptické přednášky pana profesora Holuba. Na ty ale nechodí skoro nikdo, takže si to není třeba vyčítat.

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?
Prvním krokem je nepodcenit zápočtový test v semestru. Měl jsem z něj respekt a důkladná příprava se vyplatila. Je nutné se naučit se úlohy typu AVL strom, binomiální/binární halda či hešování s otevřenou adresací, což jsou mechanické úlohy u kterých není potřeba moc přemýšlet. Pak už se jen modlit, že cvičící nebude tak krutý a nedá do písemky moc grafových důkazů které u některých cvičících tvoří přibližně polovinu písemky.

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?
V semestru je relativně velké množství způsobů, jak nasbírat dostatek bodů pro zápočet. Píšou se dva zápočtové testy v průběhu, a navíc každý cvičící zadává i úkoly za bonusové body. Pokud body chybí, je možné napsat si i opravný test. Ke konci semestru se píše taktéž Midterm. Jedná se o dvacet otázek ze systému Marast. Já osobně jsem si napočítal velké množství příkladů ze selftestu, a neměl jsem s laťkou pro průchod problém. Co se týče zkoušky, probíhá známým systémem rozstřel v marastu-písemná-věta. Opět, rozstřel si chce napočítat ze selftestu na Marastu. Zadané příklady jsou pak velice podobné právě těm z přípravy. Na písemku je potřeba dokonale umět hlavně poslední 3 cvičení. Pokud si člověk propočítá všechny příklady z posledních 3 cvičení, má z velké části vyhráno. Celkově vidím přípravu na zkoušku tak na 4 dny studia. Na ústní vetu jsem se připravoval v čase, než byla opravena písemná zkouška a příprava mi stačila.

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?
Na přednášky vůbec nechoď. Na tvorbu business plánu a prezentace to chce tak 2 dny. Písemka se píše kroužkovací na počítači s přístupem k internetu. Vůbec jsem se nepřipravoval a i tak jsem získal plný počet bodů. 4 kredity zadarmo.

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#?
Stačí přijít na poslední cvičení. Příprava není potřeba, pokud jsi někdy něco v C# dělal. Pokud se domluvíš se kamarádem ze stejného cvičení a do nějakého google docu si nasdílíte výsledky tak to fakt nejde neudělat. Nejsnazší 4 kredity ever.

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?
Chce to holt makat. I přesto, že jsme skoro všichni v týmu měli s Unity zkušenosti nehledě na to, že se jím jeden člen našeho týmu i živí, bylo to velmi náročné. Obzvlášť si udělat čas, když se na člověka kromě milestonů valí v semestru i zápočty a progtesty. Ale dá se to zvládnout. Předmět je spojený i s dávkou byrokracie. Je pořád potřeba vyplňovat reporty, dělat prezentace, a připravovat herní dema. Jinak by to ale nešlo. Chce to dělat na tom průběžně, k čemuž mě konec konců donutily i milestony. Zkouška už není vůbec pro člověka, který se pohybuje v herním vývoji či chodí na přednášky vůbec problém.

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.