Tag Archives: ČVUT FIT

Latest Posts

Čtvrtý semestr na FIT ČVUT: Nějak to letí

Tenhle příspěvek jsem zanedbal a píšu ho až s půlročním zpožděním. Na konci minulého semestru jsem se k tomu nepřinutil, a na začátku zimního jsem pak měl práce nad hlavou s naší instalací na SIGNAL festival (o tom možná napíšu jindy). Asi budou v tomhle případě chybět horké emoce jako v případě předchozích semestrů a už si toho moc nepamatuju, tak vynechám oblíbenou sekci „jak udělat předmět“.

Když se tak koukám na moje předchozí blog posty, tak tam FIT popisuju jako hardcore školu a studium jako no-life. Za těch pár let jsem ale vystřízlivěl z pocitu, že absolventi FITu jsou nějak, co se vzdělání týče, na výši. Pravda je taková, že znám spoustu lidí, kteří studují ≥ 4 roky, mnoho předmětů na víc pokusů a ono to nakonec nějak dopadne. Ale i tak hodnotím svoje rozhodnutí jít na FIT jako pozitivní a neměnil bych.

V retrospektivě byl 4. semestr relativní pohoda. Vůbec první semestr bez matematiky. Vybral jsem si obor Znalostní inženýrství (ZI) a s tímto vědomím jsem si začal zapisovat i oborové předměty. Z pohledu volby oboru jsem se rozhodnul dobře. Nelituji, že nejsem například na softwarovém inženýrství nebo teoretické informatice. ZI přešlo nově pod katedru aplikované matematiky a s tímto přechodem došlo ke zlepšení většiny předmětů. K mnoha mám pořád připomínky, ale jen tak dál!

BI-BEZ [Bezpečnost]

Úvod do informatické bezpečnosti. Relativně zajímavý a přínosný předmět který studenta provede základy kryptografie. Cvičení mě bavila, zápočty ani zkouška nebyly po přípravě nějak zásadní problém. Příkladem z probírané látky je výměna klíčů v asymetrických šifrách nebo funkce a slabiny hashovacích algoritmů.

choose encryption modes wisely

BI-OSY [Operační systémy]

Poslední 2 progtestové úlohy na bakalářském FITu. Obě mají za cíl naučit studenta multithreadingu. První úloha za pomocí C++11 threadů, druhá pak za pomocí POSIX threadů. Stačí naštěstí udělat jen jednu úlohu a já jsem se tak spokojil radši s horší známkou než s představou, že strávím dalších několik desítek hodin debugováním POSIX threadů. Zkouška která následuje bohužel vůbec neodpovídá obsahu přednášek. Namísto zkouší studenty ze životnosti HDD a počtu zapisování i-node při přesunu souboru. A to jsou znalosti, které jsem od zkoušky stejně už dávno zapomněl a nemám pocit, že bych je k něčemu potřeboval.

harsh reality

BI-PRP [Právo a podnikání]

Za průchod studiem je třeba absolvovat alespoň 2 ekonomicko-manažerské předměty. Vybral jsem si právo a podnikání s vidinou, že mě bude bavit stejně jako předchozí verze tohoto předmětu, kterou jsem absolvoval v prváku. Přednášky byly ale bohužel o něco slabší a zkouška nebyla opět koncipovaná moc s ohledem na probraná témata. Pro někoho může být zajímavá přednáška zaměřená na vyplnění daňového přiznání, na kterou asi letos na jaře zajdu.

BI-PSI [Počítačové sítě]

Actually super a přínosný předmět. Skoro každý se v dnešní době setká se síťovou komunikací. A já jsem svoje znalosti například zužitkoval už v našem projektu na SIGNAL. Znám nyní vrstvy OSI modelu a vím, alespoň zhruba, jak ta síť vlastně funguje. Na cvičeních si člověk zkouší konfigurovat sítě, zapojovat UTP kabely a jako semestrálku pak napsat vlastního TCP klienta.

BI-SI1.2 [Softwarové inženýrství]

Předmět ke kterému mám velké výhrady. Jeho cílem je naučit studenty spolupracovat ve skupině, přinutit je psát dokumentaci, verzovat kód a využívat systém pro správu ticketů (TRAC). Můj zážitek byl ale následující: Na prvním cvičení prohlásí, že si mají studenti udělat skupiny a vymyslet zadání pro projekt. Už toto je problém, protože se dost možná stane, že nemáte na paralelce žádné kamarády a musíte tedy s cizinci vymýšlet zadání na projekt. pro který ještě pořádně neznáte požadavky. Stal jsem se tak team-leaderem 5 členného týmu, a začali jsme vyvíjet systém pro správu sportovního klubu. Nejsmutnější je, že v podstatě nejde vymyslet zajímavý projekt, protože například ke hře bude člověk těžko kreslit diagramy a řešit usecasy. Průběh předmětu je založený na iteracích, ve kterých je potřeba splnit různé části projektu a odevzdat různé části dokumentace. Největší pain je nutnost psát dokumentaci v Enterprise Architectu, což je naprosto odporný nástroj který navíc podporuje jen Windows. Takže si buď nainstalujete Windows, nebo si užijete odpornou grafiku a rozjede to ve Wine.

Alternativou k tomuto předmětu je zapsat si zároveň předmět Softwarový projekt [BI-SP1], který nahrazuje cvičení SI1 a měl by údajně být více časově náročný. Studenti Softwarového inženýrství ho mají povinně. Realita je ale taková, že SP1 není o moc víc náročný a jsou to v podstatě 4 kredity navíc zdarma. Každý projekt v SP1 má individuálního vedoucího, který ne-vždy vyžaduje veškerou dokumentaci, člověk se tak navíc může vyhnout i EA, což stojí samo o sobě za zvážení. Máte taktéž možnost procovat na něčem více užitečném než na wasted-time projektu v SI1. Kdybych tohle býval věděl, zapsal bych si SP1.

BI-VWM [Vyhledávání na webu a v multimediálních databázích]

VWM mě dost bavily. Celé hodnocení ze semestru spočívá ve tvorbě semestrálky. Já jsem jako svoji semestrálku vytvářel implementaci top-k treshold a Faginova algoritmu. Na přednáškách se dozvíte například, jak funguje indexování, jak vypadá Google matice i jak funguje KNN. Samotná zkouška je nakonec až smutně lehká, což vede k tomu, že jsem se bohužel nedokopal naučit tyto znalosti víc nazpaměť.

BI-ZUM [Základy umělé inteligence]

Předmět na který jsem se těšil už od prváku, který mě ale bohužel zklamal. Předmět měl první semestr nový garant a přednášející, který je světová kapacita na multi-agent-pathfinding, ale přednášky i náplň cvičení nebyly moc zajímavé. Teoreticky to měl být průlet biblí AI od Russela a Norviga Artificial Intelligence: A Modern Approach. Na průchod všech témat mají na Berkley 2 semestry, u nás je to jen výběr pár algoritmů. Pokud jste se navíc už setkali například s genetickými algoritmy, teorií her, prohledáváním s heuristikou a neuronovými sítěmi, tak si z předmětu nic moc nedonesete. Jako semestrálku jsem udělal neuronovou síť řídící první stage Falcon9 a za pomocí genetických algoritmů ji učil přistávat na platformě. Zkouška je lehká.

get motivated

All images stolen from FITMeme.

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.