FIT VUT – Semestr čtvrtý a svatý grál (Erasmus+)

Tak jo, pomalu se to celé blíží do finále. Po crazy šíleném třetím semestru plném týmových i netýmových projektů měl přijít semestr čtvrtý – letní, jednodušší, pohodovější. Vstupoval jsem do toho tedy plný energie, nadšení a blahého očekávání, že budu mít více (aspoň nějaký) volného času.

Do karet mi hrálo i to, že jeden z povinných předmětů jsem absolvoval v minulém letním semestru (IZG), což zařídilo, že jsem v rozvrhu neměl jediná cvika. Ve škole jsem se teda nemusel celých 13 týdnů ukázat (až na půlsemestrálky). Ta vůně svobody, taky to cítíš? Ale jak se to říká, dobrý sluha, zlý pán. A o svobodě to platí dvojnásob. Je mnohem těžší se ke studiu průběžně dokopávat sám, než když vás dokopávají povinná, bodovaná cvičení.

Pokud bych měl říct jednu věc, co mi tento semestr ušetřila spoustu stresů a problémů, tak je to tohle – Začít hned. A to mě zachraňuje ve všech oblastech života. FIT je zaměřený na úkoly a různé projekty a dost často vůbec jen pochopit, co se má dělat, jak a co je cílem, může zabrat několik hodin. A o to horší to je, když je člověk pod tlakem – stačí špatně pochopit zadání, nebo přečíst specifikaci a z projektu může zasvítit krásná 0.

Když si přečtu zadání několikrát, pochopím, co se po mně chce, a můžu si hned dohledat, co mi chybí. Navíc, když mám problém v hlavě, často se řešení objeví samo. Funguje to jako myšlenky běžící na pozadí, které funguji obzvlášť dobře ve spánku – už několikrát jsem se vzbudil a okamžitě věděl, jak vyřešit nějaký problém.

Někdy cítím k určitým povinnostem a úkolům odpor, nechuť a nejradši dělám cokoliv jiného než to, co bych dělat měl. Jak se tedy přinutím k práci? S tím mi pomáhají 2 jednoduché věci:

  1. Dekompozice na menší části – Úkol dost často vypadá příliš abstraktně, příliš složitě a rozložit si ho na co nejmenší části, co musím krok po kroku udělat, je skvělý způsob jak z pocitově komplexní věci udělat věc jednoduchou a konkrétní. Koneckonců, dekompozice je jedna z nejdůležitějších dovedností programátora, protože si nemůže říct, že chce naprogramovat aplikaci. Aplikace se skládá ze spousty dílčích částí a je potřeba mít ty části co nejmenší. Jako Lego kostičky které dohromady dají celou výslednou aplikaci.
  2. Prostě začít – klidně si říct jen 5 minut, to stačí, aby mi to dalo představu o tom, kolik práce jednotlivé kroky a celý úkol zaberou. To mi dává pocit úlevy a jasnosti. Už to není tak abstraktní, už to neskrývá bůhvíjaké tajemství a právě ten pocit tajemna a neznáma je to, co vytváří odpor.

Zdroj: https://www.learning.com/blog/decomposition-in-computational-thinking/

Takže ve chvíli, kdy se odevzdával projekt první, já dokončoval projekt druhý a nastala situace, kterou většina mých spolužáků nikdy nezažila a nedokázala pochopit – neměl jsem na týden, dva dopředu, co dělat.

IDS – Databázové systémy

Konečně první předmět, kde jsme si sáhli na databáze, které jsem sice už předtím měl tušení, jak fungují, ale nikdy se mi nepodařilo se naplno do něčeho ponořit, dokud nejsem nějakým předmětem donucen. Na přednášky jsem nechodil – zjistil jsem, že mi tento typ učení příliš nevyhovuje a navíc na to prostě není čas.

V předmětu je půlsemestrální zkouška a projekt ve dvojicích, který je rozdělen na 4 části: návrh modelu (ER diagram) a model případů užití, SQL skript pro vytvoření schématu databáze (na základě ERD), skript s několika SELECT SQL dotazy, poslední SQL skripty s triggery, komplexnějšími dotazy a následnou obhajobou. Celkově mi formát projektu velmi vyhovoval, protože byla zátěž rovnoměrně rozložena do celého semestru a nemusel se vše učit a dělat najednou.

Zkouška byla poměrně náročná, ale s pouhým minimem 20 bodů z celkových 51. Přišlo mi, že se u zkoušky dost často chtěly příliš teoretické (nechci použít slovo zbytečné, ale vnímal jsem to tak) znalosti. Celkově jsem k předmětu neměl žádné výhrady.

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

Úvod do počítačových sítí a příprava na jeho pokračování, které čeká v dalším semestru. Přednášky docenta Ryšavého byly srozumitelné, standardní kvality jak jsme na FITu zvyklí. Naopak přednášky doktora Veselého byly dynamické, možná až strhující a dodnes si pamatuju vysvětlování Multicastu na analogii s mimozemšťany sledující videa na kolejích.

V předmětu jsou dva projekty, z nichž první byl kámenem úrazu mnoha studentů. Doktoranti vymysleli nové zadání v podobně konzolové chatovací aplikace, která bude zároveň komunikovat skrze Discord. Nápad moc pěkný a zábavný, ale zadání obsahovalo mnoho nekonzistencí a za mě byl projekt náročností velmi obtížný. Podle toho vypadalo i finální hodnocení, kdy 150 lidí dostalo 0-1 bod z 20 a to už dokáže zamíchat kartami. Druhý projekt už byl značně jednodušší a značně lépe hodnocený, takže se daly dohnat ztracené body.

Zkouška byla průměrné náročnosti, možná s lehkým překvapením v podobě testu na konci, kde se zkoušely různé namemorované informace jako například: na kterém portu běží služba X, co znamená zkratka Y, atd. Zpětně bych doporučil se z předmětu poctivě naučit maximum, protože se bude hodit v navazujícím, který je považovaný za vědomostně nejobsáhlejší a nejnáročnější předmět na FITu – ISA.

IPP – Principy programovacích jazyků a OOP

Objektově orientované programování je dnes naprostým standardem a používá se v drtivé většině moderních aplikací. Proto bych od tohoto předmětu čekal, že se to zde naučím. Ale opak je pravdou a člověk se naučí spoustu teorie, typy jazyků, ale do praxe si toho moc neodnese. Myslím si, že by celý předmět měl být mnohem praktičtěji orientovaný, ukázat jak to funguje v realitě nebo jak se reálně používají návrhové vzory (a ne jak se kreslí, což je také důležité, ale za mne méně když to člověk neumí naprogramovat).

Projekty to trochu, minimálně zachránily, kdy první projekt byl v Pythonu (volitelně OOP), sloužící jako překladač z jazyka IPPcode24 (obdoba Assembleru) do XML dokumentu. V druhém projektu bylo úkolem tyto XML dokumenty interpretovat, tzn. provádět kód dle instrukcí. Povinné bylo použít OOP, návrhové vzory a jednoduchý framework, který se postaral o spuštění, načtení vstupů a člověk se mohl rovnou soustředit na to hlavní. Jelikož už jsem měl zkušenosti s OOP z minulosti, měl jsem velkou radost jak mi to jde od ruky, ale přijít do tohoto projektu neznalý, trvalo by mi to mnohem déle s mnohem větší dávkou frustrace.

IPP je za mě příliš obecný a abstraktní, než praktický, takže pokud čekáš, že se naučíš OOP v praxi, tak se mýlíš. Spíš ti dá teoretický základ. Pokud chceš OOP doopravdy pochopit, doporučuju ICS – C# seminář.

IZU – Základy umělé inteligence

Spíše bych to nazval Algoritmy 2, ale abych tomuto předmětu úplně nekřivdil, setkal jsem se zde se spoustou zajímavých algoritmů a částečně i s tím, jak si vytrénovat svůj vlastní model. Přednášky docenta Zbořila byly nadprůměrné, zábavné, ale člověk si to stejně všechno musí vyzkoušet doma. Slouží každopádně jako dobré vysvětlení a pochopení principu.

V předmětu jsou 4 malinké projekty, některé z nich otravné (například ruční hledání nejkratší cesty v bludiští), jiné zábavné (například Prolog, který se pak taky objevuje na zkoušce). Projekty slouží i jako příprava na zkoušku, protože dost často se podobné zadání vyskytuje jak v projektu, tak na zkoušce.

Zkouška patří mezi jednodušší, prakticky zaměřené na krokování nějakého algoritmu. Stačí aby člověk si to parkrát doma vyzkoušel a pak se soustředil a nespletl, protože stačí jeden krok mimo a celý výsledek bude špatně.

ICS – Seminář C#

Asi jeden z nejkvalitnějších a nejmodernějších předmětů na FITu, patřící do skupiny povinné volitelných a za mě volba číslo 1. Z dalších předmětů si můžete vybrat C++, Java nebo VHDL. Vyučující se snažili předat maximum praktických informací, přičemž většina z nich opravdu z praxe prochází a v přednáškách ukazují i reálné ukázky.

Kotvou v celém tom novém .NET ekosystému a vesmíru je Cookbook, aneb Kuchařka, která slouží jako referenční projekt, kterým se může kdokoliv inspirovat při implementaci projektu. Projekt je zde jen 1, rozdělen na 3 části přičemž začínáte s budováním datové vrstvy až po front-end. Díky tomu máte pravidelný feedback a nedozvíte se až na konci, že to celé musíte překopat, protože máte špatně navrženou databázi.

Projekt by byl extrémně náročný, nebýt zmíněné Kuchařky, protože se v programu děje spousta věcí (dost často zdánlivě magicky) a bylo by to obsahově na 2 semestry, kdyby se vše detailně vysvětlovalo. Takhle člověk dokáže velice rychle z kódu vyčíst, co potřebuje pro svůj projekt a jak to cca použít. Což je také velice důležitá dovednost programátora – nechceme pokaždé znovu vymýšlet kolo, pokud už to někdo udělal před námi.

Můžu upřímně říct, že objektově orientované programování mě tento předmět naučil mnohem více, než dříve zmíněné IPP. V dalším semestru mám v plánu si zapsat pokračování – IW5, kde se vyvíjí .NET webová aplikace.

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

Jeden z nejzajímavějších volitelných předmětů v letním semestru, který je dostupný až od druháku. Vedený je doktorem Smrčkou, jehož přednášky považuji za jedny z nejzáživnějších na FITu. Jeho přednes má skvělou intonaci, drive, výslovnost, zdůrazňuje důležité věci a propojuje s humorem. Zároveň se snaží být v kontaktu s publikem a ptát se na otázky, což se ne vždy daří, protože vysokoškoláci nejsou zvyklí mluvit z lavice.

Podíváte se na úvod do testování, zjistíte jak se testy specifikují, jaké jsou rozdíly mezi pojmy jako ladění a testování, z čeho se skládá testovací případ, jaké jsou fáze unit testů a tak dále. Některé z učené látky bych zařadil do povinných znalostí každého bakalářského studenta. Rozhodně můžu říct, že mi tento předmět dal jiný pohled na programování a především testování, o čemž jsem si donedávna myslel, že to je něco, na co se nemusí dbát tolik pozornosti jak na samotný kód. Pravdou ale je, že to je neméně důležité, možná i důležitější než samotný aplikační kód. To už ale jako budoucí absolventi tohoto předmětu zjistíte snad sami.

Obsahem kurzu jsou také dva projekty, které na sebe vzájemně navazují. V prvním “pouze” definujete testovací případy způsobem nazývaným jako Given-When-Then(https://martinfowler.com/bliki/GivenWhenThen.html), který popisuje očekávané chování systému v lidském srozumitelném jazyce, může tedy být použit při specifikaci požadavků se zákazníkem, který programování vůbec nerozumí. Praktický tip: dejte si pozor, ať jednotlivé testovací případy “nepřevaříte”, protože v druhém projektu budete všechny implementovat a je dost možné, že svému já v minulosti budete chtít hodit kámen o hlavu.

Ukázka prvního projektu a Given-When-Then

Druhý projekt, jak zmíněno navazuje na ten první a zadáním je implementovat jednotlivé testovací případy s pomocí nástroje Selenium, který dokáže automatizovaně testovat webové stránky. Je mnohem víc časově náročnější (dá se stihnout za den, ale byla to bolest). Dá vám ale pěkný vhled do toho, jak se dají testovat aplikace, což můžete využít pak v praxi.

Projekty jsou hodnocené spíše náhodně – hodnocení mnohdy neodpovídá úsilí a času, který jste do projektu vložili. Ale většina dostane +80% bodů, takže se není čeho bát a je víceméně jen na vás, kolik jste tomu ochotni věnovat a kolik se chcete naučit.

Poslední závěrečnou částí projektu je zkouška, která je velmi jednoduchá (jen 1. termín byl dost pozdě – cca 22. května, 3. týden zkouškového). Zadání z minulých let doktor Smrčka zveřejňuje v E-learningu spolu s “Tématy minimálních znalostí”, kde je 14 témat, které byste měli naplno ovládat. Krom toho najdete i materiály od studentů vysvětlující to nejnutnější a nejsložitější. Ještě poslední poznámka – zkouška je takzvaně násobící – z některých úloh nesmíte dostat 0 (ideálně ne méně než 1) bodů, jinak bude vše za 0. Jednotlivé úlohy se násobí, takže neplatí strategie se naučit jen to nejjednodušší a nejčastější. Musíte zkrátka ovládat všechno (i tak je toho směšně málo). Za mě zkoušku udělá každý napoprvé, co se na to párkrát koukne a propočítá si pár zadání z minulých let. Nic, čeho by se někdo měl bát.

Svatý grál – letní školy, aneb krátkodobé Erasmy

BIP – Litva a tvorba videoher

Během semestru mi do školního e-mailu přistála zpráva s předmětem “Výběrové řízení na letní školu Erasmus (BIP)-3D modelování pro hry”, který jsem ihned otevřel a zaujal mě. BIP znamená: Blended Intensive Programme, což jsou krátkodobé zahraniční programy v rámci Erasmus+, kombinující virtuální a fyzickou účast. Tento právě zmíněný se konal v Litvě v Kaunasu a byl zaměřen na 3D modelování pro hry a vývoj her obecně. Ikdyž hry už nějaký ten pátek nehraju, nabídka mě zaujala, zejména z důvodu rozšíření znalostí, získání zkušeností i v tomto oboru, poznání nových lidí a také protože miluji cestování. Nepamatuji si přesně proces přihlašování, byl to pouze formulář, kde se ptali na základní otázky typu jméno a pak motivaci, proč by měli vybrat právě mě. Za pár dnů přišlo vyjádření: byl jsem vybrán! Skvělé! Co teď? Stačilo si požádat o nějaké papíry od hostitelské univerzity, nechat si je potvrdit na své domovské fakultě, domluvit schůzku na rektorátu, podepsat papíry a bylo hotovo. Komunikace byla svižná a vše bylo v pohodě.

Pak tedy následovala virtuální část, kde jsme každé 2 týdny měli o víkendu tuším cca 4 hodinovou přednášku, celkem 4x – 16 hodin tedy. Za úkol jsme měli sestavit týmy, vytvořit návrh hry a tu celou implementovat – včetně svých modelů. Za pár týdnů přišla fyzická část, kde jsme měli program ve formě dalších přednášek, prací na našich hrách, zábavy atd. Byl i čas na cestování a jsem rád, že jsem měl možnost Kaunas navštívit, protože to bylo velmi pěkné město s příjemnou atmosférou, všude se dalo jet na kole, centrum bylo velmi pěkné a klidné a ceny jako v Česku. Takže můj cíl získat zkušenosti v oboru, poznat lidi a cestovat byl splněn a já jsem nemohl být spokojenější.

Kaunas mě moc příjemně překvapil – nic jsem si o něm dopředu nezjišťoval.

Další (ne)výhodou je fakt, že dostanete na fyzickou část budget a je jen vaše věc, jestli všechno utratíte, ušetříte, nebo budete doplácet ze svého. Částka je určená na den a záleží na zemi, kam jedete. V kontextu Litvy to bylo cca 80€ na den, s čímž se dá vyžít, jelikož nějakou formu stravy (často obědy) máte zadarmo ve škole, takže si platíte cestu,ubytování a jídlo. Letenky do Litvy mě vyšla na 39€ a zpět pouze na 19€ z Kaunasu do Bratislavy. Takže mi zbývalo dost peněz na vše ostatní. Krom toho jsem v centru našel velmi levný hostel, tuším do 15€ za noc.

Celkově tedy BIP doporučuju každému, je to jedinečná zkušenost jak si vyzkoušet Erasmus, aniž byste cokoliv obětovali, jelikož je to jen na týden až pár týdnů a mimo semestr.

BIP – Portugalsko a virtuální realita se zaměřením na zdraví & well-being

Nebyl bych to já, pokud bych nebyl přehnaně aktivní a neměl trochu toho štěstí. V průběhu fyzické části BIP v Litvě, mi přišel e-mail s další nabídkou na BIP, tentokrát last-minute, který se musel vyplnit a odeslat do dvou dnů. Přihláška byla obsáhlejší a chtěla motivační dopis a další věci, téma, místo a celková nabídka mě však nadchla natolik, že jsem tomu obětoval několik hodin a poctivě vše vyplnil. Za pár dnů opět skvělá zpráva, že jsem byl vybrán! Neskutečně jsem se těšil.

Celkově byl program mnohem, mnohem zajímavější, jelikož byl organizován skupinou EUGLOH, skládající se z 9 univerzit po celé Evropě, soustředící se na globální zdraví lidí. On-line přednášky byly cca 6-8 hodin denně (tuším celkem 40 hodin), s tím že se střídali různí přednášející z těchto 9 univerzit, kteří patří mezi špičky v tomto oboru. Bylo to neskutečně zajímavé a přestože přednášky byly on-line, hltal jsem z mnohé z nich každé slovo.

Porto je za mě jedno z nejhezčích měst, jaké jsem kdy viděl – živé, skvělá kultura, lidi, jídlo a nejlepší street-umělci jaké jsem zažil.

Fyzická část byla taky náročnější než v případě Litvy. Do školy jsme chodili od pondělí do pátku (1 týden) od 9 do 17. Měli jsme klasické přednášky a poslední 2.5 dne jsme pracovali na naší vlastní VR aplikaci/hře, která měla pomoci člověku v různých oblastech – rekonvalescence po úrazu, expoziční terapie, simulátory. Celkově oblast VR a využitelnosti je velmi vysoká a za mě je to velká díra na trhu nejen v ČR. Díky tomuto programu jsem se naučil přínosy/nevýhody a výzvy v oblasti VR a jeho každodenního využívání. Krom toho jsem měl dost času si projít nádherné Porto a poznat spoustu skvělých lidí, s nimiž mám krásné vzpomínky, jako například párty na pláži při západu slunce nebo noční povídání při sledování hvězd. Takže nejen, že jsem se vzdělal v oblasti kariérní, ale i má osobnost vyrostla a to je dle mě to, co dělá Erasmus Erasmem.

Párty na pláži se super lidmi je můj typický day-dreaming, tady jsem si ho mohl splnit.

To je vše

Byla to náročná jízda nahoru a dolů – a o tom FIT je. Hlavní je si to užít, nic nepodcenit, nepodvádět a jak jsem na začátku říkal: začít hned. Budu se těšit u dalšího článku!

Napsat komentář