4. semestr na VUT FIT

Zhodnocení již čtvrtého semestru na FITu. Tento semestr se od začátku tvářil jako strašák s hromadou předmětů a projektů. Jak to nakonec celé dopadlo?

Nyní mám již asi měsíc po zkouškách, a tak jsem si snad již urovnal v hlavě názory na tento semestr a můžu se o ně s vámi podělit.

Mj. díky tomu, že celkem využívaný informační zdroj campula.cz smazal ze svého webu zdrojáky projektů, tak aspoň částečně je tady začnu zveřejňovat i já. Nemyslím si totiž, že by to bylo něco špatného. Kdo chce jenom kopírovat cestu si vždycky najde. Kdo se chce opravdu jenom inspirovat, jako jsem to dělal já, tomu to pomůže. Ale tomu se budu věnovat až v dalších článcích, teď zpátky ke 4. semestru na VUT FIT.

Tento semestr představoval již od začátku slušnou výzvu! Již ve svém dřívějším článku jsem napočítal 19 projektů. Celkem 8 předmětů dávalo tušit, že ani zkouškové nebude úplně nuda. Nakonec to bylo samozřejmě trošku jinak než jsem čekal. Opravdu se teprve tady ukazuje kdo na FIT má a kdo jenom nějak lehce projít. Podívejme se blíže na jednotlivé předměty. Opět nečekejte přesné zadání projektů ani semestrálek. K tomu máte jiné kanály. Spíše zde najdete mé vlastní zážitky, pocity a příhody z tohoto semestru.

IDS – Databázové systémy

Jeden z těch méně obávaných předmětů. Jelikož jsem již s DB měl zkušenosti ze střední a z webové tvorby tak jsem nevěděl na co nového se mám těšit. Ze začátku se braly opravdu základy, takže ani pro úplné nováčky tento předmět není žádný hardcore. Vzhledem k tomu, že se probíralo co je to tabulka, primární klíč atd. tak jsem většinu prvních přednášek vynechal. Vzhledem k nedostatku času na konci semestru, a také malé vůli chodit na přednášky, které se dají opravdu hodně zrychlovat, jsem nezachytil tu část semestru, kdy se začaly brát již nové věci a musel jsem se je doučovat až před zkouškou. I tak to ale nebyl žádný větší problém.

Projekt se skládá z několika menších částí. Já se svým spolubydlícím jsme si vybrali naše staré zadání E-shop, které jsme již oba měli zpracované z IUS. První částí je pouze obhajoba ER modelu. Pokud jste tam neměli moc chyb, tak jste to vlastně měli bez práce. Pokud tam byly chyby, tak jste byly akorát upozorněni, co by bylo dobré předělat, aby se stejné chyby z návrhu nepřenesly i do výsledné aplikace. Další dvě části, tedy vytvoření tabulek, naplnění ukázkou dat a pár výběrových dotazů, byly taky bez problémů a daly se napsat asi za 2-3 hodinky průběžně se sledováním seriálů.

Největší částí projektu je až poslední část. Tedy vytvoření alespoň částečně funkční aplikace v Oracle Forms Builder. To není principiálně těžké, stačí v klikacím prostředí vytvořit pár formulářů a načíst do nich data z DB. Na obhájení stačilo,když z celé aplikace fungovalo aspoň pár tlačítek (zbytek tam byl jenom tak pro okrasu, nebo teda „pro vývoj do budoucna“). Vzhledem k tomu, že dva skripty na DB jsem psal já a také mě začínal tlačit čas na IJA (kterou kolega nepsal), tak jsme se rozhodli k trošku riskantnímu kroku, že Kuba vytvoří celou aplikaci sám. Samozřejmě žádné mé přemlouvání nepomáhalo a jako klasický student to nechal až na poslední víkend před deadline. Za tento víkend jsem od něho slyšel víc nadávek jak za celý rok co jsem s ním bydlel, takže si můžete udělat představu o kvalitě onoho vývojového prostředí. Jak jsem četl reakce spolužáků, tak jsem neděláním tohoto projektu nepřišel vůbec o nic, jenom jsem si ušetřil hromadu nervů. Chvilku před deadline jsem pomohl jenom s vytvořením přístupu do DB i pro druhého člena, aby se neřeklo. V průběhu jsem již naprosto přestával věřit, že tu aplikaci nějak odevzdáme a pomalu jsem se smiřoval s tím, že si IDS zopakuju. Nakonec jsme něco odevzdali. Něco co splňovalo alespoň ty nejzákladnější požadavky na zápočet. Na obhajobě jsme ukázali co nám ne/fungovalo, s tím že některé funkční části se samozřejmě na testovacím ntb nerozjely. Výsledek byl hrozných 9 bodů z 20 (což bylo asi nejmíň co kdo dostal), ale já si oddechl. Na zápočet to stačilo.

Vzhledem k předpokládané „obtížnosti“ předmětu jsem z časových důvodů vynechal učení na půlsemestrálku a věnoval se jiným projektům. Nakonec se tak dle očekávání objevilo pár SELECT dotazů, nějaký ER diagram (jehož zadání dodnes nechápu, neboť bylo šíleně zamotané a v reálu by vás s takovým zadáním vyhodili asi i v Microsoftu. Prostě jenom účelově zkomplikované zadání bez reálného smyslu či užití.) 3 body za písemku téměř bez učení za těch pár selectů, které jsem uměl už z dřívějška byly asi odpovídající.

Na zkoušku jsem tak šel s velmi nepěkným skore 27/49, ale cíl byl jediný. Prolézt. Na zkoušku už jsem se připravoval pečlivěji jak na půlsemestrálku (čti Nějak) a klasický den a půl učení stačil na 28 bodů z 51. Na zkoušce se neobjevilo nic neočekávaného. Nějaká optimalizace tabulek, převod ER do DB. Principiálně se to nelišilo od dřívějších testů, ale tady není co nového vymýšlet. V tomto předmětu je celkem jasné co je tím hlavním na učení, a to se samozřejmě zkouší. Kdo pochopil základy, nemohl mít se zkouškou problémy. Nakonec to nebyl výsledek se kterým bych byl spokojenej, ale na E to stačilo. Vzhledem k už tak velmi špatnému průměru mě to až tak netížilo a byl jsem rád, že jsem nějak prolezl.

Ještě stojí za zmínku, že v předmětu je možnost hromadných konzultací. Jedná se o to, že dvojice si připraví řešení nějakého menšího problému, které poté na konci jedné přednášky odprezentuje. Lze takto získat celkem zadarmo až 10 bodů. Mimo jiné je to určitě dobrá zkušenost si zkusit prezentovat před „plnou“ přednáškovkou. Kdybych věděl jak tragicky dopadne moje půlsemestrálka a celý projekt asi bych neváhal tam jít. Podle zkušeností těch, co tam byly, se to určitě vyplatí.

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

Asi nejdiskutovanější předmět tohoto semestru. Bohužel ne v dobrém slova smyslu. Ze začátku vypadá předmět docela zajímavě. Sítě jsou věc kterou by měl znát každý informatik, neočekával jsem moc čistě teoretických řečí a u většiny věcí jsem očekával, že si je reálně představím/můžu vyzkoušet. Realita byla bohužel trošku jiná.
Možná je až docela škoda že se řada lidí svezla na „vlně“ protestů proti tomuto předmětu. Také jsem s ním nebyl úplně spokojený, ale když se na FB rozhořela živá diskuze jak je ten přednášející děsně neposlouchatelnej, projekty úplně k ničemu a vlastně kritika úplně všeho co se v tomto předmětu vyskytlo….prosím…jste na vysoké škole, ne ve školce, tak se podle toho chovejte s neschovávejte se za dav.

Co tedy bylo špatně?
Projekty: Jsou celkem 3. Bodové ohodnocení moc neodpovídá jejich obtížnosti a je dáno jenom tak, aby donutilo studenty na konci semestru v časovém tlaku udělat všechny(nepodařilo se. Třetí projekt ani neodevzdala asi polovina studentů). Projekty samotné jsou celkem zajímavé. V prvním si vyzkoušíte klienta, který stahuje informace z HTTP hlaviček. V druhém již programujete aplikaci klient/server která si posílá určitě informace (IP adresy nebo zprávy. Podle zadání.) a poslední projekt se zabývá spolehlivou komunikací (logicky opět klient/server).

Dosud by to bylo v pohodě. Problémem je ale zmiňované naprosto trisktní bodové hodnocení těchto projektů. Oproti loňskému roku totiž zadání zůstalo víceméně stejné, ale snížil se počet bodů za ně o cca 1/3, která se dala na průběžné testy (viz dále). Za první projekt tak byly jenom 4 body, což je úplný výsměch vzhledem k tomu kolik času na tom člověk musí pracovat, aby zjistil vše co potřebuje.  Druhý projekt za 6 bodů také myslím neodpovídal náročnosti. Napsání komunikace nebylo složité, horší to bylo s najitím správných funkcí pro zjišťování IPv6 adresy. To už nikoho moc nebavilo neboť to není o programování, ale o zkoušení asi 10 funkcí, které musíte naskládat za sebe ve správném pořadí a se správnými parametry. Tedy jen a pouze googlení, neboť pořádný návod na to není. Metoda pokus-omyl je tady asi jediná možná.

Hlavním bonbonkem byl třetí projekt. Sice za 10 bodů, ale nervů jsem u něho ztratil více než u předchozích dvou dohromady. Úkolem bylo komunikaci mezi klientem a serverem zabezpečit tak, aby si uměli posílat data spolehlivě (tj. i v případě ztráty některých paketů či jejich zpoždění). Nakonec jsem nad tímto projektem strávil celý víkend a získal jsem pouhé dva body z 10. Způsob opravování byl totiž zajímavý. Dnes, kdybych měl psát tento projekt, tak by mi zabral asi 3 hodiny a získal bych minimálně polovinu bodů. Velkým pomocníkem je poskytnuté demo, které můžeme použít. Tam je projekt částečně vyřešený. Jediný co se tam neřeší je zabezpečení komunikace. Ale čtení parametrů, samotné spojení klienta a serveru, odesílání a přijímání dat tam již je a funguje. Podle stylu opravování stačilo změnit parametry, demo rozkopírovat 2x jednou přejmenovat jako klient a jednou jako server, pár drobných úprav  a polovina bodů by byla doma. Nikdo z nás totiž nepočítal s tím, že snad polovina testů se bude zabývat pouze spolehlivou komunikací (kdy nedochází ke ztrátám), takže i lidé kteří vůbec nedělali spolehlivost přenosu, získali dost bodů. Mně to samozřejmě nestačilo a začal jsem dělat komunikaci spolehlivou. Ta mi nakonec fungovala v pořádku, ale dodnes nevím proč, se mi na konec každého výsledného souboru přidalo několik prázdných řádků.
Bohužel se ale vše opravovalo jenom automatickými skripty a naše projekty nikdo neviděl. A vzhledem k tomu, že mi neseděly velikosti souborů ani při spolehlivém ani nespolehlivém přenosu (obsah byl správný, na konci byly volné řádky takže velikost byla jiná než odesílaná) tak mi asi neuznali žádný test. Za 2/10 jsem opravdu chtěl něco rozbít…dva dny zahozené. Je mi jasné, že kdybych šel na reklamaci tak při osobní ukázce, že to řadí dobře bych si vyhádal několik bodů k dobru, ale vzhledem k tomu zástupu naštvaných lidí co už tam šli se mi nechtělo čekat půl dne ve frontě, když už jsem zápočet stejně měl…Škoda toto zahozeného času, ale projekt mi dal minimálně slušnou znalost těch řadících algoritmů a učení na zkoušku tak bylo trochu příjemnější.

V průběhu semestru se psaly 3 testy na přednáškách. Myšlenka dobrá, donutila mě aspoň se vždycky podívat cestou ve vlaku předem na ty 3-4 záznamy. Celkově ale otázky byly tak moc detailní, že to byla vlastně jenom tipovačka. Body se přidělovaly náhodným generátorem, takže většina výsledků se pohybovala kolem 1,5/3b a vůbec neodpovídaly tomu kdo co uměl. Pokud jste se na to trochu podívali, tak se vám pak nějaké znalosti hodily minimálně při učení na zkoušku.

Laboratoře byly stejné jako posledních několik let. Přijdete, skupinově něco zapojíte a jdete domů. Opět ale za úplně stejné laboratoře jako loni jsme letos dostali jenom polovinu bodů. Zbytek šel na testy…jak logické.

Učení na zkoušku byl teprve ten pravý masakr. Největším problémem tohoto předmětu vidím to, že není žádná opora ani skripta. Na začátku semestru nám bylo řečeno, že se máme učit z jedné anglické knížky v knihovně (těch pár kusů co tam bylo, měli studenti rozpůjčováno snad ještě během té přednášky) a že opora není, protože by vlastně jenom tu knížku přeložili. Jaká logika, že se studentům nemusí dodávat žádný učební materiál, když někde na světě existuje knížka zhruba pokrývající látku tohoto předmětu. I kdyby to byla pravda, tak vám ale nikdo neřekne, které části jsou v knize „navíc“ takže byste se ji museli učit celou…

Popisovat to, že se celá látka skládá asi z 1000 tříznakových zkratek asi nemá smysl, tím si každý projede. Ve zkoušce se nakonec ale tolik zkratek nevyskytlo. Mě život zachránila příjemná skupina a otázky na Go-back-end (díky 3. projekte!), DHCP a nějaké upravené počítání CRC. Jednu skupinu evidentně tvořil někdo úplně jiný než zbývající a její obtížnost byla asi 3x vyšší. Při opravování této skupiny na to ale asi dost brali ohled, takže pokud tam člověk něco měl, body dostal. Žádné FAIL kde by jedna skupina měla mnohem nižší úspěšnost se tedy nekonal.
Jako bonus se u nás vyskytla otázka na NRZI, které se nebralo na přednáškách a ve slajdech nebylo ani zmíněno. Vysvětlení poté bylo „jsme mysleli, že to znáte už z jiných předmětů“. Co taková otázka dělá na zkoušce IPK nemám tušení. Asi jsem pořád naivní, že ve zkoušce z nějakého předmětu se mají zkoušet otázky, které se berou v tom předmětu…

Výsledkem jsem si nebyl ani trochu jistý, ale spoléhal jsem na to že jsem chytl jednu z lehčích skupin a fakt to vyšlo. Sice díky pokaženému poslednímu projektu a minimu za zkoušky jsem opět prolezl pouze s E, ale výsledek 49,5 si budu pamatovat ještě dlouho. Hrůza a hrůza, ale měl jsem to za sebou. Nerad bych šel na druhý termín.

Celkově tedy tento předmět není úplně špatně. U garanta a přednášejících je vidět snaha, že nemají za cíl znepříjemňovat život studentům(nebo to tak aspoň dobře hrají) a mají dobré nápady, které se ale prostě letos vůbec nepovedly. Pokud se zlepší situace se studijními materiály, předělá se bodování projektů (a vymažou se opravdu směšné informace, jakože na všechny 3 projekty má student dohromady podle bodování 9 hodin!) tak to bude opět zajímavej a příjemnej předmět. Jako poslední poznámku bych viděl aktivitu na fóru k projektům. U každého projektu zde byla řada otázek, neboť zadání nejsou moc detailní (pár vět, jeden příklad a hotovo. Srovnejte s IPP kde má jenom zadání parametrů popis na 2 A4). Na všechny otázky se zde objevila odpověď „udělejte to takhle“, která asi měla vyznít ve smyslu „nebude se to testovat, udělejte to podle sebe aby to vyhovovalo zadání, ale já bych to udělal takto“. Většina lidí (bohužel včetně mě) si to ale vyložila jako „takhle to musí být!“ a poté jsme dost nadávali, neboť jsme museli po každé nové odpovědi přepisovat část již hotových projektů. Mějte svoji hlavu a budete v klidu.

IPP – Principy programovacích jazyků a OOP

Asi největší strašák celého 2. ročníku. Dva ne úplně lehké projekty, půlsemestrálka a zkouška z hromady teorie. Slyšeli jste tohle taky? Částečně je to pravda, ale nic není tak jednostranné.

Předmět pro mě začal celkem velkým šokem. Poprvé na FITu jsem na plné čáře prohrál refresh-war… Do několika „vhodných“ zadání jsem se během první vteřiny nedostal a na rychlo pak vybíral co tam zbylo. Z původního plánu jsem tak měl dobré zadání prvního projektu v Perlu, ale v Pythonu jsem se připravoval na nepříliš oblíbenou determinizaci konečného automatu. Ted již toho nelituji. Teoreticky těžší zadání mě totiž logicky mnohem víc naučilo.

Jednotlivým projekty budu popisovat v dalších článcích spolu se svými zveřejněnými zdrojáky. Tady jenom můžu poznamenat, že projekty jsou zadány docela brzo a není vůbec na škodu je začít řešit co možná nejdříve. Mým výsledkem bylo 9,3/10 z prvního projektu. Před odevzdáním druhého jsem již měl jistý zápočet. takže jsem se trošku vykašlal na pořádné testování a spokojil se s tím, že mi prošly oficiálně zveřejněné testy. Věděl jsem totiž, že na zkoušce musím mít minimum a na udělání předmětu tento projekt neměl vliv. Výsledkem jenom lehce otestovaného projektu bylo 6,4b/10.

Celkově je v předmětu hodně probírané látky. Jsou zde 3 opory dohromady čítající přes 300 stran, takže jenom jejich obyčejné rychlé přečtení zabere nějakej ten den 😀 O dalších přidaných prezentacích na HW se ani nezmiňuji. Hlavní věcí kterou oceňuji na IPP je to, že na půlsemce ani na zkoušce se nezkouší encyklopedické znalosti, ale to jak látku chápete. Jak si jednotlivé definice dokážete dát do souvislostí a v neposlední řadě jak dokážete na místě vymyslet nějaké řešení (jak by jste nahradili vlastnost A z jednoho jazyka v jiném typu jazyka, ve kterém se tato vlastnost nevyskytuje? atd.). Díky tomu jsem předmětem prošel, i když jsem se neučil jak někteří spolužáci skripta zpaměti. Na tento způsob otázek se mi mnohem lépe odpovídá a domnívám se, že je i mnohem přínosnější, než zkoušet kdo se toho kolik umí naučit zpaměti. K tomu máte gymnázia…

Výsledkem mého logického „spojování“ informací a neučení se definic zpaměti bylo 14/20 z půlsemestrálky a u zkoušky překvapivých 29/60 (Časově jsem ale dost nestíhal, což asi také ovlivnilo výsledek). Na půlsemestrálku jsem také nestíhal, a tak jsem sigma kalkul vynechal úplně s tím, že je to lepší než se naučit za hodinu jenom nějakej základ. Nakonec tam byly klasicky 2 otázky za 5 bodů takže se mi ta ušetřená hodina vyplatila (využil jsem ho na naučení zbývajících otázek). Na zkoušku jsem naopak uměl hodně slušně Lambda kalkul, ptže to měla být jediná jistá věc, která tam bude a kde ty bodu prostě musím získat. Povedlo se. Byla to jediná otázka kde jsem si byl jistej,

Nakonec jsem předmětem prolezl těsně za E. Na lepší D mi chybělo 0,8b. Vzhledem k tomu, že jsem si touto zkouškou nebyl vůbec jistej a byl jsem rád za svoje body, tak jsem reklamace raději ani nezkoušel. Myslím že bych odešel ještě s méně bodama než bych tam šel.

V posledním stesku se musím přidat na stranu FIT-haterů, kteří tvrdí že vás tady nikdo nenaučí OOP. Bohužel to zatím vypadá jako pravda. V IPP jsem čekal, že se nebude brát skoro nic jiného, ale nakonec se tady oop týká jenom pár přednášek a to ještě dost teoreticky. Otázka jestli se něco jako objektové programování dá vůbec naučit na přednáškách. Všechno co v tom umím jsem se naučil pouze sám psaním projektů. Zde bych si mohl opět postesknout nad automatickým opravováním  projektů, kdy nemáte žádnou zpětnou vazbu jestli jste OOP použili/navrhli dobře nebo ne. Ale nechám si to až do IJA, kde jsem tento problém pociťoval ještě mnohem víc.

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

Grafické cítění nemám vůbec žádné, ale předpokládal jsem že v tomto předmětu to nebude vadit. Nemýlil jsem se. „Naštěstí“ se zde bere jenom úplný základ technického pohledu na grafiku.

Začíná se tím co je to vlastně barva, pokračuje se přes vykreslování čar, objektů až po 3D. Nakonec nějaké transformace, osvětlování atd. Příjemný teoretický základ, mj. se probere řada základních algoritmů. Při vysvětlování jejich efektivity si zavzpomínáte jak vám v IAS  vychvalovali celočíselnou aritmetiku…Celkově bych předmět zhodnotil jako příjemné povídání, nezabíhá se do přílišných detailů a přednášky jsou poměrně zajímavé a opravdu se dají poslouchat :)

Ve cvičeních si vyzkoušíte doplnit do cizího kodu pár řádků. tj 18 bodů vlastně zadarmo, ale že by to bylo k ničemu bych taky neřekl. Projekt je konečně „něco jinýho“ než jen psaní tisíců řádků kódu, kde výsledkem je jenom jeden řádek výpisu v příkazové řádce 😀 Tady už od základu vidíte něco graficky pěkného. Nejtěžší je se vyznat v cizím kódu. Doplnit od něho poté pár vlastních funkcí podle pseudokodu někde z wiki není takovej problém. Bohužel jsem však často nevěděl co přesně ty dané příkazy, které jsem používal dělají… Odpověď „Nějak převádí nějaký vektor“ na dotaz kamarádů byla celkem normální. Nakonec jsem to ale nějak dohromady dal a odměnou byl plný počet 18 bodů. Některé části totiž nešly napsat moc rozdílně, tak se asi všechna řešení náramně podobala. Lépe se to pak kontrolovalo u kolegů jestli to funguje správně 😀

Vzhledem k řadě projektů jsem stejně jako v IDS úplně vypustil půlsemestrálku (učil jsem se na ni jen pár hodin) a díky docela šílenému hodnocení testové části 2b za správnou odpověd/-2b za špatnou jsem si bohužel odnesl jenom 1 bod z 12… u většiny otázek jsem se totiž nedokázal rozhodnout mezi dvěma možnostmi. Škoda. Předmět určitě není těžký.

Na zkoušku jsem se již připravoval klasicky den a něco. Dával jsem si pozor na to abych netipoval. Díky systému hodnocení ale člověk začne pochybovat i o odpovědích, kde si je na 85% jistej…zajímavej pocit, když jsem většinu testových otázek vyplnil za 10 minut (většina byla stylem „Kouknu, vyškrtám blbosti a vidím správnou odpověď“) a zbytek času jsem pochyboval i o tom, jakou barvu má tráva. Nakonec z toho byla přesně polovina bodů 26/52. Díky pokažené půlsemestrálce to vyšlo jenom na D, ale tohoto předmětu se určitě bát nemusíte. Hodnotím ho velmi kladně i přes zvláštní systém hodnocení (bez kterého by ale měly 2/3 lidí A :D).

IZU – Základy umělé inteligence

Předmět, od kterého jsem vůbec netušil, co mám čekat. Jestli si budeme hrát s robůtkama, nebo se učit definice zpaměti nebo co. Na druhou stranu jsem se docela těšil na to až si vyzkouším obávané funkcionální programování.

Přednášky jsou zajímavé hlavně z toho důvodu, že jsou pouze dvouhodinové. Na pár z nich jsem byl, ale poté se mi již nevyplatilo trávit hodinu v šalině a dvě hodiny na přednášce, když stejnou látku jsem si na záznamu mohl pustit za hodinu čistého času. Moc mi ale stejně nepomohly. Definice se je potřeba stejně naučit z nějakých psaných materiálů a prolog s lispem se naučit ze záznamů nedá. To se musí zažít. Mě se osvědčilo pročítání již hotových funkcí a prográmků.

Cvičení se konají až v druhé půlce semestru a vyzkoušíte si v nich lehce to, co se probírá na přednáškách. Nejdříve nějaké prohledávací algoritmy např. na najití nejvýhodnější cesty z Brna do Šumperka, poté nějaké rezoluce které mi začaly dávat smysl až před zkouškou. S prvním projektem na A* jsem si docela užil. Dlouhou dobu jsem se vůbec nemohl trefit do předpřipravené kostry a ve 3 hodiny ráno byl kod již v takovém stavu, že jsem poprvé přistoupil k razantní metodě. Šel jsem spát! A ráno jsem kompletně smazal všechno co jsem měl do té doby napsáno! A světe div se, ono to fungovalo. Za využití všechn znalostí které jsem se naučil během psaní předchozí den a které jsem tam lepil hůř jak vlaštovka hnízdo, jsem napsal celý projekt od začátku  během asi 3 hodin. Výsledkem byl mnohem hezčí a přehlednější kod. A co bylo hlavní-funkční.

S projekty v Prologu a Lispu jsem se trápil o něco mín, ale většinu času mi zabralo čtení návodů na internetu (ve skriptech se to bere dost z rychlíku). Samotné napsání jedné fce potom byla otázka chviličky. Obhájení proběhlo v pohodě a nakonec jsem si tak odnesl 18/20 (na jedny cvika za 2 body jsem nešel. Nechtělo se mi ráno vstávat, když jsem měl zápočet už dávno v kapse :/ )

Na půlsemestrálce se objevil příklad na algoritmus BFS. Řešení bylo v pohodě, ale už se mi ten konec nějak nezdál. Moc dlouho jsem pracoval s frontou kde byl pořád pouze jeden uzel. Ale k výsledku jsem se dopracoval, tak jsem to tak nechal. Dalším příkladem byl nějaký rozgenerovaný graf pro hru Člověče nezlob se, kde jsme měli vypočítat kterou figurkou bude nejlepší táhnout při jakém hozeném čísle. Bohužel až 10 minut před koncem jsem si našel chybu v prvním příkladu. Hned v prvním kroku rozgenerovávání uzlů jsem na jeden zapomněl…samozřejmě na ten, přes který vedlo správné řešení 😀 Nebyl čas to celé přepisovat, tak jsem doufal za nějaké body aspon za postup. Za teoreticky správný postup se dávají 3 body z 10. Výsledkem tak bylo 11/20 díky jedné hloupé chybě, ale zápočet byl 20 takže nebyl problém ho spolu se cvičeními mít v kapse již v dlouho před koncem semestru.

Na zkoušce bylo o něco víc teoretických otázek, nějaká rezoluce, jeden příklad na prolog, jeden na lisp, nějaké označování objektů ve 2D, K-means… Nic těžkého, a dokonce jsem očekával i celkem dobrý výsledek. Většině lidí začaly chodit o dost horší body než čekali, tak jsem trošku znervozněl, ale pořád to byla jediná zkouška kterou jsem si byl jistej,že ji mám. Nakonec mi přišlo 53/60 což byla jedna z asi 20 nejlepších písemek a byl jsem štastnej. Ukázalo se (zajímavé, že tady to jde udávat body za každý příklad do wisu zvlášt, v ostatních předmětech by se mohli inspirovat), že jsem měl všude plný počet ale u rezoluce jsem získal pouze 3 body z 10. To by odpovídalo opět nějaké hloupé chybě, ale správnému postupu (nevím, výsledek mi vyšel). Stěžovat jsem si ale rozhodně neměl na co a mohl si užívat krásného B, které aspon trošku zachránilo můj průměr tento semestr.

Celkově opět zajímavý předmět, kde se dozvíte hodně nového a vyzkoušíte si programování v úplně jiném stylu jak dosud. Pravda, že z takto zajímavého jména předmětu by asi šlo udělat víc, trošku víc zaujmout atd. ale i takto je to předmět v pohodě.

BAN4 – Angličtina 4: středně pokročilí 2

Poslední povinná angličtina na FEKTu. Naštěstí jsme dostali jako vyučující Agata Walek, u které se i ty, často bohužel nudné, hodiny daly vydržet. Že celá koncepce BANu na FITu není nic moc, to by vydalo na dalších několik článků. Jednoduše mi celý tento povinný blok předmětů nedal nic víc, než mi dalo jedno pololetí na střední (a to není mnoho), ale ono se asi víc nedá udělat když máte dvě hodiny čistého času za týden. Samostatné čtení dokumentací a článků k projektům mě do angličtiny naučilo víc.

Doufal jsem, že na vysoké se naučím něco víc než jen vyplnit jedno cvičení někde v učebnici, což jsme dělali celou základku i střední, ale nestalo se. Škoda. Celkové C je díky mé rozhodně ne dobré, angličtině asi odpovídající. Důležitější než mluvení a „umění“ jazyka je zde naučení se definic, k těm pár časům co se berou a vědět jaký má který z nich slovosled a jenom v zápočtovém testu poznat který čas to zrovna je a podle toho vybrat…nic více, nic méně. Že se tím moc nenaučíte? Pravda, ale pokud na takhle „pokročilou“ angličtinu nemáte cvik a nemáte to ještě v krvi, tak tipování podle toho „jak to člověku sedí“ se nevyplácí.

ISJ – Skriptovací jazyky

Můj první volitelný předmět na FITu. Zapsal jsem si ho na konci prváku proto, že jsem doufal že mě donutí se naučit skriptovací jazyky. Ty jsem se nakonec donutil naučit samostudiem kvůli IPP už dříve, než jsem je potřeboval tady a tak jediný co mám z tohoto předmětu je to, že jsem udělal jeden projekt a zjistil na zkoušce, že otázky na detailní fungování shellu a různých skriptovacích jazyků, nejsou úplně jednoduché. Pravda, že něco se dost zlehčilo proti dřívějším letům (v půlsemestrálce už studenti dokonce tuší, na se jich vyučující ptá), ale celkově mě tento styl předmětu nezaujal. Člověk se nemá moc z čeho učit, otázky jsou  formou „co vypíše následující kus kódu“, který stojí na dokonalé znalosti funkčnosti jednoho příkazu. Nemyslím si že by ten čas strávený nad učením (pravda moc ho nebylo) něco dal. Učil jsem se spíš u dělání projektu, který mě donutil aspoň napsat další prográmek v Pythonu.

IJA – Seminář Java

Posledním, ale v průběhu semestru časově asi nejnáročnějším je Java (ale většina věcí co budu psát o svém názoru na tento předmět bude hodně podobná i v ICP).

Bohužel mě v tomto předmětu docela zklamaly přednášky. Měly sice jenom dvě hodiny a tak jsem první polovinu semestru odchodil všechny. Postupně mě ale přestávaly bavit čím dál víc. Začaly se totiž zabývat přílišnými detaily, které jsem k ničemu (v projektu) nepotřeboval a myslím že velkou většinu z nich bych našel nejpozději během 2 minut googlení až bych je jednou skutečně potřeboval. Ze začátku se berou užitečné věci, prakticky se ukáže jak funguje polymorfismus, dědičnost apod. Později už však látka nemá nic společného s projektem, a tak vám moc nepomůže na ně chodit. Netvrdím, že učení tak používaného jazyku jako je Java je špatně! Ale vzhledem k tomu, že v tomto předmětu není zkouška, ale pouze zápočet za udělanej projekt, tak jsem očekával, že se později budeme spíše zabývat správným návrhem projektu, a celkově jak napsat správně první velkej projekt na FITu a pro většinu lidí i v životě. Minulý semestr sice bylo IFJ, ale tam to bylo spíš o týmové spolupráci. Tady máte pouze jednoho kolegu a úkoly se dají rozdělit docela dobře, takže týmová režie je mnohem menší.

Na druhou stranu musím IJA pochválit za koncept malých úkolů. Už v průběhu semestru mě donutily vyzkoušet si prakticky dědičnost, abstraktní třídy atd. V projektu se mi to ze začátku docela hodilo, že jsem nemusel studovat všechno od základu.
Na druhou stranu se mi moc nelíbil zbytek předmětu (v ICP není ani ten jedinej dobrej bod-úkoly). Vyloženě špatně mi přišlo hodnocení. Ano, je sice hezké, že jsem nakonec musel dodělávat drobnosti programováním 48 hodin v kuse před deadline, a splnil tak všechny požadavky ze zadání a dostal 100/100. Ale to je vše. Naopak v takovémto předmětu bych mnohem více ocenil, kdyby nám někdo klidně již v průběhu semestru ukázal chyby v návrzích tříd, případně i „správné“ řešení (jedno z nich). Nyní je to totiž tak, že asi měsíc před deadline odevzdáte diagram tříd. Poté postupně programujete a očekáváte někdy hodnocení. To však nepřijde. Nakonec odevzdáte celý hotový projekt a jdete obhajovat. Celá obhajoba trvá asi 4 minuty! Přijdete, spustíte svůj program, ukážete jak které tlačítko funguje a to je vše. (jedinej dotaz byl „ukažte, jdou vám tam měnit ty vzhledy aplikace?“ tedy asi jediná viditelná věc podle které se určovalo, kdo bude mít 100b a kdo ne, nebo nevím…). Celkové testování celé aplikace tedy spočívá v tom, na co během těch asi 3 minut co mluvíte ukážete. Nějaká zpětná vazba je tedy úplně nulová. Poté vám je ukázán váš původní návrh diagramu tříd, kde je vám vysvětleno (jednou, dvěma větami) co by mohlo být trochu jinak (na většinu z těch připomínek jsme přišli sami při programování, takže konečný digram vypadal úplně jinak).

Hlavní chybou tohoto předmětu tedy vidím naprosto nulovou zpětnou vazbu! Někteří spolužáci trávily nad projektem asi 3x tolik času (jejich aplikace podle toho taky vypadala) ale jejich jednovětné hodnocení bylo stejné jak naše. Co to pak má za smysl? Maximálně to, že jsme si vyzkoušeli napsat ve dvou lidech první větší aplikaci (výsledné programy měli údajně od 5 do 15 tisíc řádků. Náš měl 8k.). Na to jsem ale nemusel chodit na vysokou školu a mohl jsem si sám doma naprogramovat úplně cokoliv.

Musím ale pochválit rychlé opravování těch úkolů. Deadline o půlnoci a ráno v 7 už jsme měli na mailu výsledky. Jednalo se sice o automatické testy, ale to se na FITu jedná skoro pokaždé…proč to tedy nejde takhle rychle i jinde? (Zmiňovat tady více než měsíční opravování IPK ani nebudu. Rozčílil bych se.)

Nakonec bych chtěl poděkovat Zuzce, mému spolupracovníkovi, za to že jsme to nějak zvládli a přežili ve zdraví. Sice jsem toho naprogramoval o dost víc, ale nemůžu říct, že by nepomohla a části projektu, které jsem jí dal na starosti fungovaly v pořádku a ze začátku při návrhu aplikace taky neměla úplně špatné nápady :)

Zhodnocení

Celkově musím uznat, že to pro mě bylo asi nejtěžších pár měsíců v životě (co se studia týká). Projektů je opravdu hodně a i když člověk začne hned po zadání, tak nevěřím že se našel někdo kdo by některý z projektů nedodělával na poslední chvíli!

Pravdou je, že jsem také začal ihned po zadání prvních projektů (IPP), ale bohužel jsem byl tak málo navyknutej na práci (dlouhé 4 měsíční prázdniny v létě, v zimním semestru pro mě taky žádná extrémní honička) a strašně dlouho jsem se musel nutit než jsem na něčem začal pracovat. Potom už to šlo. Většina projektů s výjimkou Javy jde napsat nejhůře za 3 dny. Více času jsem strávil jenom nad perlem, kde jsem se dost věnovat rozšířením a důkladnému otestování (IPP je  opravdu velký strašák). Davovému šílenství těsně před deadline jsem nepodléhal skoro vůbec. Jediný kdy jsem nestíhal byl IPK3 (nový osobní rekord kdy jsem první-poslední verzi nahrál do WISu 13 vteřin před deadline doufám již nikdy nepřekonám), což bylo ale způsobeno tím, že jsem se dlouho rozhodoval jestli ho vůbec psát nebo ne.

Můj studijní průměr se dost zhoršil od prvního roku a jsem si toho vědom. Na jednu stranu mě to štve, na druhou stranu jsem rád, že zatím prolézám zkouškami na první pokus (za celé studium jsem opakoval jeden předmět který jsem nakonec dal za A a nyní ISJ, na které jsem se ale na řádný termín skoro nepodíval). Důvod proč jsem se na většinu zkoušek učil maximálně dva dny, když volno mezi většinou zkoušek byly asi 4 dny, byl ten že jsem to již moc nezvládal psychicky (a možná i fyzicky z té hromady kofeinu v sobě). Pokud jsem byl ponořen do jednoho projektu, neměl jsem problém. Chyběl mi ale ten pocit „vítězství“ kdy člověk něco odevzdá, má klid a může si na chvíli dát nohy na stůl. To mi tento semestr chybělo. Když jsem jeden projekt odevzdal tak jsem pozavíral programy, záložky v prohlížeči a plynule otevřel vše potřebné na další projekt. Po většinu semestru jsem měl předsebou případně již lehce rozdělané tak tři projekty zároveň. Je to s podivem, ale já se normálně těšil na zkouškové období.  Měl jsem v něm více volného času 😀  Prostě už se mi pak ale nechtělo trávit u školy více času než bylo nezbytně nutné na prolezení. Pro názornost přidám screen ze svého kalendáře.

Kalendář duben 2012

Můj kalendář na Duben 2012 (červené jsou deadline projektů)

Sice si teď asi říkáte jak můžu v jednom odstavci, že se to dá zvládat v pohodě a v druhém, že jsem to moc nedával. Pravda je taková, že jsem to zvládal (většinu projektů jsem dokončil do stavu, se kterým jsem byl spokojen), ale dost mě to unavilo a pak se dostavila obyčejná lenost, únava nebo touha dohnat seriálové manko. Nevím, ale rozhodně jsem se tento semestr dost naučil! A to je snad ještě pořád to hlavní, proč studuji.


Mohlo by vás také zaujmout:

  • Roman Lukš

    Ahoj, budeš hodnotit i 5. semestr?

    • http://janhrivnak.cz/ Jan Hrivnák

      Ahoj, už toho mám půlku sepsanou. Ale bohužel jsem zatím neměl čas to dopsat :/
      Ale určitě to bude…