středa 12. června 2013

VUT FIT - 6. semestr a státní závěrečná zkouška

Tak je to tady. Už 24 hodin jsem Bc. Matěj Mareček. Okamžik, na který jsem tak dlouho čekal. Před státní závěrečnou zkouškou jsem si říkal, jaký to bude skvělý pocit, až to všechno budu mít za sebou… No realita v tomto případě nepředčila očekávání a to i přesto, že jsem dal všechno za A. Ale teď trochu popořadě.

Příprava na státnice

Na státnice jsem se začal učit celkem v předstihu. Ještě předtím, než jsem odevzdal bakalářkou práci. Vlastně v průběhu letního semestru jsem si občas přečetl nějaké téma a asi tak 45 dní před termínem jsem se začal doopravdy učit. Respektive dělat si výpisky a tak podobně. Musím říci, že psaní látky na papír je… namáhavé. Na druhou stranu pro mě poměrně účinné. Celkově jsem popsal kolem 250 stran o velikosti A4. Tedy nějaký informační základ jsem měl.

Výhoda zápisků, i přestože mi jejich tvorba zabrala většinu času, které jsem věnoval přípravě na státnice, mě pomohla porozumět základní problematice a zbytek informací jsem potom vyčetl z opor, slidů, knih a Internetu. Například když jsem se učil otázky do IFJ, tak jsem si navíc přečetl, jak funguje JIT, JVM, jak se dělají optimalizace a tak podobně. Zkrátka četl jsem si informace navíc, které mě zajímaly a u státnic se mohly hodit.

Tedy díky tomu, že jsem začal s přípravou dříve, než většina mých kolegů, mohl jsem si látku několikrát zopakovat a naučit se věci navíc, dle mého výběru. Už tak týden a půl před termínem jsem svých 250 stránek uměl skoro nazpaměť a všemu (kromě ISS :-D) do hloubky rozuměl. A doufám, že to nedopadne jako po maturitě a nějaké informace mi zůstanou v hlavě i po létě. :-)

Před zkouškou

V den státnic jsem ani mohl dospat a probudil se brzy ráno. Tak jsem se válel v posteli, prolítl ještě dvě otázky ohledně databází a poté brouzdal na iPadu po Fitušce. A právě to brouzdání se mi stalo osudným. Narazil jsem na příspěvek, kde někdo psal, jak failnul (možná měl nakonec E) na ISS, když ho zkoušel Černocký. Znělo to celkem drsně z a popisu toho, co po něm chtěli, jsem odvodil, že bych na jeho místě mohl být rád tak za D/E (možná bych i nedal). Tedy na poslední chvíli jsem ještě do sebe cpal vzorečky na FT, DTFT a tak podobně (nebyl jsem si jistý, jestli by se mi je podařilo v tak krátké době odvodit u tabule při zkoušení).

Ale jinak jsem byl v maximální možné pohodě a věděl jsem, že mám veliké šance na úspěch. Toto byla jediná zkouška za celé tři roky, na kterou jsem se těšil.

Na fakultu jsem došel o 2-3 hodiny dříve, abych ještě stihl kámoše, který šel ke stejné komisi přede mnou. Potom jsem mého rozhodnutí začal litovat, jelikož čekat tak dlouho bylo… nudné. Navíc čas utíkal pomalu. Jediné štěstí bylo v tom, že občas kolem nás prošel Víťa Beran a zavtipkoval. To lidem vždycky zvedlo náladu. Snad každý si ho přál jako zkoušejícího. I já. Proto mě trochu vyvedlo z rovnováhy, když těsně před mým zkoušením odešel z místnosti… To jsem věděl, že s Víťou si o grafice u státnic nepokecám (moje vysněná otázka/y).

Obhajoba bakalářské práce / prezentace

Do místnosti mě uvedl Honza Černocký. Jako vždy příjemný a usměvavý. Tedy začátek povzbudivý.

Začal jsem svou prezentaci o bakalářce, a aby komise dávala pozor, tak jsem zkusil dát na první slide narážku, kde jsem přirovnal svůj monitorovací systém k tomu, jak se na FITu monitorují studenti v učebnách. Herout mě sice varoval, že by to molo vyznít nějak negativně, ale komise byla pohodová, tak jsem to zkusil. A narážka zafungovala. Všichni zvedli hlavy a začali dávat větší pozor.



Ve své prezentaci jsem měl 9 slidů, které sloužily jako ilustrace k tomu, co jsem jim tam 4 minuty říkal. Bylo tam minimum textu, zato hromada názorných obrázků. To mi pomohlo s vysvětlováním a navíc dovolovalo prezentaci libovolně zkracovat, či natahovat.

Musím se trochu kajícně přiznat, že jsem si prezentaci předtím ani jednou nezkoušel. Takže před komisí to bylo poprvé. Ale možná právě proto dopadla tak dobře. Neměl jsem nic naučené, tedy mluvil jsem z patra a říkal pouze důležité věci (jelikož ty byly první, na které jsem si vzpomněl). Navíc jsem se vlezl, do časového limitu a komise nebyla zavalena nudnými detaily.

Snažil jsem se klást důraz na přínos mé práce, obecně jak to funguje a vyzdvihnout zajímavé, či implementačně obtížné části. Zkrátka šlo mi o to, nějak zaujmout. Moc možností jsem ani neměl. Vedoucí mi dal A a oponent B.

Po přečtení posudků a zodpovězení otázek oponenta, jsem dostal doplňující otázku, jak se mi v JavěFX podařilo vykreslit tolik čipů najednou v reálném čase. Tím mi nahráli na smeč. Mohl jsem tak zdůraznit, jak těžká tato část byla, že můj vlastní přínos je hodný Áčka. Zároveň jsem byl rád, že alespoň někoho zajímá, co jsem tak dlouho dělal. :-)

Celkově se mi tedy u prezentace osvědčilo mít výstižné obrázkové slidy, zaujmout hned na začátku a říkat jen opravdu důležité věci. Vřele doporučuji přečíst blog od pana docenta Herouta (http://www.herout.net/). Lze se tam inspirovat a dozvědět, jaký je jeho podle na studentské prezentace z opačné strany bariéry.

Zkoušení

Dostal jsem otázku číslo jedna („Princip činnosti polovodičových prvků“). Ujal se mě pan Strnadel. Štěstím jsem byl bez sebe. Sice by mi sedl kdokoli z komise (byl to opravdový dream-team :-) ), ale se Strnadelem jsem měl skvělé zkušenosti z HW cvičení. Dělal jsem u něj také projekt s FITkitem a viděl jsem ho den předtím, jak zkouší mého kámoše. Je to skvělý férový chlap. Už jsem o něm psal minule. Takových lidí je na FITu opravdu jako šafránu a o to více si jich vážíte.

Začalo tedy moje zkoušení. Detaily, které jsem se naučil, vědět nechtěl. Jen jsme si tak povídali o základních věcech, já kreslil tranzistory, grafy a vysvětloval. Strnadel přikyvoval a naváděl, kam se mám posunout dále. Nabídl jsem mu, že nakreslím NAND, odpověděl, že NOT mu stačí :-D. Poté se mě zeptal, co to je a jakmile, jsem vykreslil, že to kreslím jako CMOS, tak řekl, že v tom případě je vše OK. Na závěr, jak zvonil budík, se mě ještě zeptal na něco ohledně CMOS, ale asi jsem jej špatně pochopil. Na rovinu jsem tedy řekl, že nevím, co přesně po mě chce a on hned, že OK. V pořádku. V ničem se nerýpal. Ukončil zkoušení a šel jsem ven.

Venku jsem se už začal radovat. Věděl, že to mám. Bylo mi fuk, jestli mám z bakalářky za B a jestli mám i kvůli tomu nedorozumění na konci B/C.

Komise se radila jen chvíli. Černocký si pro mě znovu došel a pogratuloval mi ke dvěma Áčkům. Skvělý pocit. Ani jsem tomu nemohl uvěřit. Dream-team mi dal známky, o kterých se mi ještě před půl rokem ani nesnilo :-D.

Ještě, než jsem odešel domů, tak jsem se stavil pro bakalářku do knihovny (a také si dal status na Facebook :-D). Vyšel jsem z FITu… a nic. Tak jsem bakalář a jede se dále. Očekávání, že se budu ještě dlouho radovat, se nevyplnilo. Úleva… možná. Musím se přiznat, že jsem šel ke zkoušce bez stresu a na měl i celkem sebejistě (ovšem to bylo způsobeno tím, že jsem se opravdu důkladně naučil). Dokonce jsem se na tuto zkoušku těšil a do jisté míry si ji užíval. Tedy neměl jsem poté jak si ulevit. Každopádně byl jsem rád, že to mám za sebou a dokonce s Áčkama.

Mají státnice na FITu smysl?

Když jsem tak přemýšlel o právě absolvované zkoušce… nepochopil jsem moc její smysl. Na jednu stranu je dobré, že jsem si zopakoval učivo za poslední tři roky a pochytil tak další souvislosti, které mi předtím unikaly. Na druhou stranu mě zkoušeli jenom chvíli a ze základních věcí.

Tedy pokud se někdo na přípravu vykašle a má dobrou komisi a štěstí na otázku, tak udělá státnice, levou zadní. A někdo, kdo se poctivě učil a chytne špatnou komisi i s otázkou, tak může vyletět, případně výsledná známka vůbec nemusí odpovídat jeho znalostem a odbornosti.


A do třetice, komise rozhoduje o známce bakalářské práce, ke které slyšeni jenom pár vět během vaší prezentace (pokud tedy vůbec dávali pozor). Jako ohodnotit téměř roční a někdy i velice komplexní práci během pěti minut se mi zdá přinejmenším divné. Podle mě by se měl klást na bakalářky mnohem větší důraz. Ty totiž nejsou o štěstí, ale o tom, jestli člověk doopravdy umí. O známce by rozhodovat někdo, kdo je s vaší prací plně seznámen a je objektivní. Zkoušení jednoho okruhu ze 40 (někdy se dokonce zkouší opravdu jen detailní výseky celého okruhu), by se poté mohlo úplně zrušit.

neděle 27. ledna 2013

Projekt - IMP (VUT - FIT)

Více o projektu na stránce: http://matejmarecek.blogspot.cz/2013/01/vut-fit-5-semestr.html

DOWNLOAD:

https://docs.google.com/file/d/0BzEavpv8QogcNW9VdWJ4dGphaDA/edit

Projekt - IMS (VUT - FIT)

Více o projektu na stránce: http://matejmarecek.blogspot.cz/2013/01/vut-fit-5-semestr.html

DOWNLOAD: 

https://docs.google.com/folder/d/0BzEavpv8QogcRkdDbkI4dFppa0k/edit

VUT FIT – 5. semestr

Tak a je to tady. Moment, na který jsem tak dlouho čekal. Konec pátého semestru bakalářského studia na VUT FIT. Jelikož jsem si v tomto zimním semestru zapsal docela dost kreditů, tak mě v letním semestru čeká prakticky už jen bakalářská práce a státní závěrečná zkouška. I když píšu „jen“, tak si jsem vědom toho, že to asi bude ještě docela dost „záhul“, ale kdo by si chtěl kazit náladu z právě ukončeného semestru, že? :-)

Každopádně jako každý semestr i tento dostane krátké shrnutí, ať mí nástupci vědí co a jak.

IIS - Informační systémy

Název tohoto předmětu již dává tušit, co by mělo být jeho náplní. Bohužel z přednášek, které jsem navštívil, bych to nepoznal.

I přes zjevnou snahu přednášejícího byly přednášky jedno velké utrpení. Pominu-li nudnou látku, tak udržení pozornosti bránil i fakt, že přednášející mluvil do ručního mikrofonu a jelikož se stále otáčel na plátno, tak kolísala hlasitost. Výsledek? Jednou člověk neslyšel nic, podruhé mu málem upadly uši a po chvíli vás toho začne bolet hlava. Naštěstí se stalo, že jednou byly v ručním mikrofonu vybité baterie. Říkali jsme si, že máme konečně zajímavou hodinu… bohužel toto nadšení nám vydrželo jen 10 minut, než byly dodány nové baterie a připínací mikrofon vyměněn za ruční. Od té doby přestal na tyto přednášky chodit.

Na mou obranu, snaha byla… bohužel to dopadlo, jak dopadlo. Čekal jsem, že se naučím, jak se doopravdy dělají IS. Tedy jak je navrhovat, dělat architekturu, na co si dát pozor, kdy použít jaké technologie, kde nasadit ASP .NET, kde Javu, kde Silverlight/Flash a kde si vystačíme s HTML a AJAX + PHP. Nic z toho ovšem obsahem předmětu nebylo. Ani to, jak správně provézt analýzu požadavků od zákazníka a navrhnout mu vhodné řešení.

Jaké jsou tedy mé výsledné znalosti? Nějaká teorie, kterou ani nevím jak aplikovat a jestli je vůbec aplikovatelná, OLAP kostka, JS + PHP, teorie o kolekcích a SGML/XML/XSLT/DOM. Jediná zajímavá přednáška z těch co jsem navštívil a na které jsem se ocitl neplánovaně, byla o PHP s panem Burgetem (bohužel byla z velké části zbytečná, jelikož na spoustu z toho, co nám vykládal, je lepší použít manuál).

V předmětu se píše jak půlsemestrálka, tak semestrálka. Obě písemky měly podle mě odpovídající úroveň. Tedy nebyly tam nějaké zabijárny a podpásovky (pominu-li, že na obou písemkách byl příklad na XSLT o kterém jsem se dobrovolně rozhodl, že se učit nazpaměť nebudu). Navíc bodové hodnocení také odpovídalo +- tomu, co jsem tam napsal. Tedy v tomto ohledu spokojenost.

Pokud jde o to, z jakých materiálů se připravovat, tak odpověď je: Nevím. K předmětu jsou skripta, které jsou ovšem smíchána s dalšími 2 předměty, takže nevíte, co z nich se máte učit. Záznamy z přednášek nebyly (tady se sluší říci, že studentům jejich absence v nejmenším nevadila) a tak jediné, co zbývalo, byly slidy. A jelikož jsem předmět dal a v písemkách neměl výraznější problémy s otázkami, tak se dají slidy považovat za dostatečný zdroj informací.

V předmětu je také projekt. Udělat IS. Má to na starosti pan Burget, takže očekávejte vstřícný přístup a rychlé/korektní odpovědi v oficiálním fóru. Také vám dovolí požít Javu EE a do PHP/JS frameworky dle libosti. Zkrátka štěstí, že projekty vede zrovna on.

Co se týče témat, tak byste měli pokračovat v tom, co jste navrhli v IUS a v IDS k tomu udělali databázi. V mém případě zadání „Zubní ordinace“, které jsem s radostí zahodil a vzal si s novým kolegou rezervaci letenek. To sice znamenalo začít úplně od začátku, ale v 5. semestru již máte takové znalosti, že to vůbec nevadí.

Jediný zádrhel nastal při opravování projektu, kdy opravující zažádal o vysvětlení/prezentaci a vstřícně nabídl, že to můžeme vyřešit i přes Skype. Bohužel mám doma ADSL připojení, tak jsem raději natočil video, kde ukazuji IS. Výsledek… pod stromeček mi došel full-point. :-)

http://www.youtube.com/watch?v=IdfKmxGCzgE

IMP - Mikroprocesorové a vestavěné systémy

Další nadílka povinného hardware na FIT. Já vím, pro spoustu studentů nezáživný předmět. Proč se učit něco, čím se v budoucnu nebude zabývat? Proč to není volitelné? Na to bohužel nedokáži dát fundovanou odpověď.

Mohu vás ovšem potěšit, že stejně jako předchozí HW předměty i tento není nikterak náročný a navíc jej vedou skvělí lidé, kteří si zaprvé uvědomují, že HW nebaví všechny a umí látku zajímavě podat.

Přednášky má většinou pan Schwarz, který pěkně povídá o jinak nezáživných věcech. Občas se tam na nějaké věci „s drátkami“ objevil i pan proděkan Růžička, který toto téma také dokáže pěkně podat. Demonstrační cvičení (myslím, že byla až 4. přednášející hodinu), mají také lidé, kteří vědí, o čem mluví a ukazují prakticky použitelné věci.

Samotná HW cvičení jsou myslím až od půlky semestru a jsou celkově 4 (2 v asembleru a 2 v C, každé za 4 body). Bohužel poslední cvičení jsem nestihl kvůli reklamacím projektu v ISA (viz. níže). Vede je pan doktor Strnadel. Vše vysvětlí a napíše na tabuli, takže i když tam přijde a říkáte si WTF, tak nakonec skoro všichni mají za cvičení plný počet bodů (nicméně nějaká ta příprava předem se hodí).

Co se týče projektu, tak je výběr z celkem dosti témat. Většinou jsou také rozděleny na projekty v Code Warrior IDE a FITkitu. Nevím, jak se to stalo, ale nějak jsem propásl refresh war a všechna pro mě srozumitelná zadání byla okamžitě plná, tak jsem si zaregistroval něco jako tachometr. Další nepochopitelná věc se stala, když jsem si o dva týdny všiml, že ani ten tachometr nemám zaregistrovaný (asi miss-click) a poslední volné zadání byla robotická linka navíc na FITkitu.

Poté, co jsem několik hodin luštil zadání a stále plně nechápal, o co jde, tak jsem si řekl, že to můžu rovnou zabalit a IMP si zopakuji další rok. Naštěstí byl vedoucí tohoto projektu pan Strnadel. Tedy na dorazy na fóru odpovídal, vysvětloval, a jakmile jsem pochopil zadání, tak navrhnout konečný automat byla hračka, podívat se, jak funguje Free RTOS, také v pohodě (v repositáři je na to krásné demo, také myslím od Strnadela).

Stačí tedy tento projekt z repositáře vzít, trochu poupravit buildovací soubor a poté samozřejmě napsat vlastní main.c a jste hotovi. S Free RTOS je toto velice průzračné a více jak na drobnosti se můžete soustředit na algoritmy, co píšete.



Nakonec se z toho stal nejlehčí projekt v tomto semestru. Navíc jsem si ho mohl osobně obhájit na posledním cvičení (místo odevzdání vypracovaných posledních laborek, které jsem za méně jak jednu hodinu neměl moc šancí stihnout), jehož první polovinu jsem kvůli ISA nestihl. Výsledkem byl plný počet bodů.

Celkově se dá říci, že tento předmět mi zase o něco více rozšířil obzor z oblasti HW (navíc jedna přednáška byla od experta z praxe) a přístup lidí byl skvělý. Smůla, že takoví nejsou na FITu všichni. Hned by se tam lépe studovalo.

Download projektu je na stránce: http://matejmarecek.blogspot.cz/2013/01/projekt-imp-vut-fit.html

IMS – Modelování a simulace

Největší postrach pátého semestru. Těžký projekt, zcela nová látka atd. atd. Skutečnost byla pro mě ovšem poněkud jiná.

Jelikož se jedná zatím o neprobírané téma, tak o to pro mě bylo zajímavější. Přednášky, které vede pan Peringer jsou srozumitelné, mají hlavu a patu a navazují na sebe. Užijete si také v dostatečné míře "Windows hate" mezi-vstupy. :-D

Slidy jsou také pěkně udělané, navíc se nemusíte šprtat teorii nazpaměť. Samozřejmě, že ji také musíte umět, ale není to abstraktní tlachání o čem, tak jak pro mě bylo IIS.

Studijních materiálů je také dostatek. Kromě slidů, je k dispozici i solidní opora a vše jistí záznamy z přednášek. Navíc se konají demonstrační cvičení zaměřená na Petriho síť a SIMLIB + se dozvíme něco obecně k projektům.

Na půlsemestrálce nebylo nic nečekané. Pan PePe řekl, že tam bude Petriho síť a také tam byla. Kdo ji neuměl, tak to byla jeho věc/hloupost. A ani další věci nebylo nic neznámého (možná mohly být o něco jasnější otázky, ale to je vše).

Semestrálka… také nic, co bychom nemohli očekávat. Příklady na řešení Eulera, rychlé smyčky, analytické řešení M/M/x atp. Vše se probíralo na přednáškách a dopředu se vědělo, že podobné příklady se tam objevují každý rok. Tedy připravit se dalo.

Problém byl spíše v tom, že nebylo možno používat kalkulačku a přesto, že obtížnost numerických výpočtů v příkladech nebyla nikterak vysoká, tak se občas stalo, že při úpravě zlomků se mi kouřilo z uší a ztrácel jsem zbytečně čas něčím, co nebylo náplní studia IMS. Bohužel mi na kvůli tomu nezbyl čas na poslední příklad (jediný předmět, kde mi nestačil čas na napsání semestrálky).

Co se týče projektu, tak ten byl velice zajímavý. Dělal se ve skupinkách po dvou lidech, takže jste si museli najít nějakého kolegu. Naštěstí se mi podařilo natrefit na borce, který opakoval a věděl tedy co a jak. Navíc bylo dobré, že z počátku věděl „o co go“, takže jsme měli plynulý rozjezd.

Jako první krok v tvorbě projektu doporučuji nastudovat si o daném problému co nejvíce informací. Tedy v mém případě jsem se musel naučit, jak funguje uvnitř Apache HTTP Server, jak se pracuje s preforkingem atd. Doporučuji si tedy přečíst http://www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_Project.html + nějakou knihu o Linuxovém jádře (rozhodnete-li se, že na serveru poběží tento OS). Dále se hodí zjistit, jak fungují jádra v CPU, různé úrovně cache paměti, jejich fyzikální a jiné parametry, RAM, HDD/SSD, DMA, databáze (zase dle výběru) a spousta dalších věcí.

Poté je ovšem potřeba toto kvantum informací protřídit a vybrat si pouze to podstatné, co má největší vliv na chod serveru. V našem případě jsme například zanedbávali různé úrovně cache pamětu u CPU a trochu zjednodušili databázi. Na druhou stranu jsem si zase vyhrál s modelem webového serveru, abychom v modelační studii ukázali, jak moc jsme šli občas do hloubky.

Také jsme chtěli mít hezčí grafy z GNUplot a tak jsem v Javě napsal prográmek, který dělal průměr z určitého vzorku dat a tak graf zpřehledňoval a šlo poté více vidět to, co nás zajímalo. Bohužel to je jediné, co jsem v Javě do tohoto projektu udělal. Na rozdíl od minulých let jsme mohli použít pouze C++/SIMLIB, což mě trochu rozladilo, jelikož jsem se těšil, že konečně budu moci psát v .NET/Java.

Za práci jsme dostali full + 2 body navíc, které mi doplnily 2 hody, které jsem ztratil u půlsemestrálky. Tedy spokojenost maximální.

Download projektu je na stránce: http://matejmarecek.blogspot.cz/2013/01/projekt-ims-vut-fit.html

IPZ – Periferní zařízení

Další HW předmět. A ani k němu není moc co říci. Probírají se tam prehistorické sběrnice z dob dávno minulých (z mládí pana přednášejícího). Navíc je musíte celkem detailně umět, což většinu lidí ještě více odradí.

Tedy místo lehkého poohlédnutí se za minulostí provádíte studium zkamenělin a nejnovější k čemu si přičuchnete je USB. Něco jako HDMI a Thunderbolt je z říše snů. Jediné pozitivum na tomto jinak nudné předmětu bylo, že písemky byly „datelné“ a jejich opravování odpovídalo podle mě realitě. A ani za Bčko, které jsem dostal, si nestěžuji. Pouze mě mrzí, že kdybych si mohl dát místo toho předmětu něco, co mě zajímá, tak ten čas strávený učením mohu využít ke studiu něčeho zajímavějšího a přínosnějšího.

ISA - Síťové aplikace a správa sítí

Pro mě jednoznačně největší poděs v tomto semestru. A nejde ani tak o to, co je náplní předmětu. Ano sítě mě totálně nezajímají, a přesto musím uznat, že obsah přednášek byl poměrně zajímavý (pro síťaře určitě).

Problémů v tomto předmětu bylo několik. Za prvé, přednášky byly od sedmi ráno… to mluví za vše. Za další, cvičení do tohoto předmětu totálně useless. Přijdete tam, na počítači vyplníte test v Moodle a poté se teprve bez jakéhokoli vysvětlení ze strany vedoucího máte pustit do „síťařiny“. Problém v tom, že otázky v testech mi přišly totálně na palici. Tedy ani bodové ohodnocení noc moc a podobně tomu bylo u veliké části mých kolegů. Tedy lidé znechuceně odcházeli po 10 minutách pryč, jelikož je tam nic nedrželo. Já se alespoň snažil udělat první cvičení, ale po té, co mi po třetí po sobě zhavarovalo FreeBSD, tak jsem odešel a ani jsem se nesnažil tu práci udělat doma.

Další znechucení přišlo s projektem. Už v samotném zadání je napsáno, že pokud vám program spadne nebo nedodržíte například Unixové konce řádků v readme (pointless), tak máte 0 bodů. Toto samotné dokáže lidi pěkně otrávit. Ale dobrá. Dejme tomu. Co mě naštvalo maximálním způsobem, tak bylo ohodnocení projektu a následné konzultace. Prostě na projektu jsem strávil hromadu času (DNS Proxy server), se vším si snažil vyhrát, udělal několik verzí (s vlákny, forkovaním i multiplexingem) a nakonec vybral tu nejrychlejší verzi. Také všude uvolňoval paměť atd. Dokumentace… s tou jsem se doslova a do písmene mazlil. 11 stránek textu, vysvětlující obrázky architektury, vše srozumitelně a přitom odborně popsané…

Výsledek… dostal jsem tak málo bodů, že mi to nestačilo ani na zápočet. A prodlužovat o rok kvůli nějaké prkotině se mi nechtělo. Ve WISu bylo navíc jen laxní nic neříkající zdůvodnění.

Vypravil jsem se tedy na konzultace WTF just happened. Přišel jsem přesně na čas, kdy měly konzultace začít a překvápko. Chodba plná lidí. Když jsem se po několika HODINÁCH dostal na řadu, tak mi nejmenovaným opravujícím bylo řečeno na otázku „Proč mám tak málo bodů?“, že ani neví.

Otevřel tedy dokumentaci a okamžitě mě zdrbal za to, že ten obrázek na hlavní straně něco pochybného, co jsem stáhl kdesi z i internetu. Ano mnozí si správně domysleli, že jsem tam dal nové logo naší fakulty/univerzity. Při hledání loga jsem totiž hned na hlavní stránce vutbr.cz našel propagaci těchto obrázků, tak jsem je prostě použil. A za odměnu jsem si musel vyslechnout 10 minutovou přednášku o tom, jak je naše nové logo hnusné, že ještě není na 100% oficiálně schválené a že to snad ti ****** ani nechválí. No jen jsem zíral. Dále mě byla dána lekce o tom, že použít bezpatkové písmo pro text je zvěrstvo a modré nadpisy jsou hnusné atp. Ano použil jsem základní šablonu z MS Office, načež mi řečeno, že pánové z Microsoftu jsou hňupové, kteří tomu ani za mák nerozumí.

Nakonec jsme se dostali k otestování samotného programu. Pustil se script, za a pár sekund bylo hotovo. Výsledky seděly na 100%. Jen pánovi opravujícímu se nelíbil jeden z mých counterů (podle zadání jsme si toto mohli implementovat dle libosti). No kdyby četl dokumentaci celou a nezavřel ji při spatření úvodní strany, tak to ví. Škoda mluvit.

Do WISu mi napsal 19 bodů z 21. Což bylo diametrálně odlišné od původního výsledku. Potom si pro sebe něco zabroukal a změnil to na 18. Načež se poškrábal na bradě a dal tam 17. Vůbec nevím proč. To jsem jako 4 body (tedy půlku bodů za celou dokumentaci) ztratil tím, že jsem tam dal logo, které se mu nelíbí a je MS hater? No skvělé. A na můj dotaz proč mi dal původně tak málo bodů, že jsem nedostal ani zápočet odpověděl, že „asi“ chtěl, abych přišel. A stejně to udělal i u ostatních. Ono bylo jistě velice těžké napsat email „Dobrý den, rád bych s Vámi konzultoval projekt do ISA.“. Ne on musel nechat většinu lidí 3 dny v nejistotě, jestli si zbytečně o rok neprodlouží. Tento předmět se pro mě stal prostě noční můrou, a jakmile jsem dostal body ze semestráky, tak jsem si pořádně oddechl.

PS: V tomto předmětu jsou variantní termíny. Doporučuji se tedy pořádně naučit a chodit už od začátku. Potom se vám totiž může stát stejně, jako se stalo několika lidem, že v posledních termínech na vás nevyjde a místo a ke zkoušce se ani nedostanete. A nemá potom ani smysl žádat o navýšení židlí. Pár lidí to zkusilo a samozřejmě neuspěli. Tedy na toto si dávejte pozor. ;-)

ITU - Tvorba uživatelských rozhraní

K tomu není moc co napsat. Inspirativní, kreativní, dobře zpracovaný a vedený panem Beranem. Takových předmětů by na FITu mělo být více. O dost více. A jako bonus si prakticky přičuchnete ke všem možným technologiím na tvorbu GUI (QT, WinAPI, WPF a HTML/CSS).

Moje hodnocení: Jeden z nejlepších předmětů na FIT.

RET – Rétorika

Humanitní povinnost. Za vše uvedu jeden citát uvedený na stránkách: http://www.grada.cz/setkani-s-autory/kariera-a-rozvoj-dovednosti/thmgr-klapetek-milan/

ocenění v podobě zaslechnutého útržku z rozhovoru studentů při zápisu volitelných předmětů: „Vole, zapiš se ke Klapetkovi, to je kanec“

pondělí 4. června 2012

VUT FIT – 4. semestr

Další (již čtvrtý) semestr na VUT FIT je úspěšně za mnou a tedy nastává jeho shrnutí.

Celkově by se dalo říci, že toto byl zase o něco těžší semestr než ty předcházející (zvláštní jak se ta náročnost co půl roku zvedá :-) ). Nejednalo se ovšem ani tak o náročnost látky v předmětech, jako spíše o množství projektů, které bylo třeba udělat. A jak už to tak bývá, tak některé projekty byly užitečné a některé naopak zcela zbytečné, případně se zcela minuly účinkem.



IDS (Databázové systémy):

Konečně předmět, který se hodil do praxe. Pokud se podíváte na požadavky firem, které nabízejí práci, tak uvidíte, že kromě klasické množiny programovacích jazyků jako (C#, Java, C++ a C) je velmi často požadována znalost databází, především jazyka SQL. Tedy něco, co jsem až do dnešní doby moc neovládal.

Předmět vyučuje děkan FITu a délka přednášky jsou 3 hodiny. Přičemž dle mého názoru by se daly tyto 3 hodiny zkrátit na 2 a o nic moc by se nepřišlo (3 hodiny zachovat pouze když jsou prezentace). Tempo přednášek bylo pro mě zbytečně moc pomalé a jelikož pondělní přednáška byla od rána, tak jsem tam dost často usínal a měl výpadky pozornosti.

Jinak co se týče obsahu, tak ten měl hlavu a patu, video záznamy byly také (ovšem někdy jejich zveřejnění trvalo skoro měsíc) a navíc byla k dispozici pěkná opora, slidy a scripty, na kterých se demonstrovaly určité aspekty SQL. Prostě kdo se chtěl do IDS učit, měl všechny potřebné materiály poskytnuty a neměl tedy žádnou výmluvu pro to, aby neudělal projekty nebo písemky.

Body se tady daly získat v průběhu semestru několika způsoby.

Projekty:

ČinnostMax. počet bodů
1. Konceptuální model5
2. Skript SQL pro vytvoření databáze projektu5
3. Skript SQL s dotazy SELECT5
4. Realizace aplikace20

Konceptuální model: Pokud jste jej dobře udělali v IUS, tak tady stačilo možná jen trochu upravit a 5 bodů bylo doma.

SQL skripty: Také poměrně pohodové projekty. Stačilo se naučit SQL a udělat tabulky a dotazy k vašemu ER diagramu. Žádný zádrhel tady nebyl a pokud jste vše udělali funkční, tak 15 bodů bylo jistých.

Aplikace podle zadání: Aby tento předmět nebyl tak pohodový, tak výsledná aplikace se dělala v Oracle Forms Builder. Kdo ví o co se jedná, tak ví, kdo ne, tak já se k tomuto "software" nebudu vyjadřovat, nebo by mi Google smazal tento blog. Každopádně doufám, že už v tom nebudu muset nikdy v životě a ani po smrti pracovat. Pokud někdo věří na peklo, tak vězte, že Oracle Fotms Builder je jeho virtuální podoba pro programátory.

Půlsemestrálka:
Ta byla maximálně za 14 bodů a navíc mi přišla poměrně hard-corová. V jednom příkladu jsem nevěděl vůbec nic, select jsem nějak dal a z ER diagramu jsem byl totálně zmaten. Ne, že bych nevěděl, jak se dělá. ERka mám celkem zmáknuté, ale ze zadání jsem byl zmaten jak lesní včela. 

Nakonec jsem byl rád sotva za polovinu bodů. :-D

Semestrálka:
Tady bylo možno získat zbytek bodů. Trochu jsem se obával, že to bude něco jako půlsemestálka a většinu času budu koumat, co se po mě vůbec chce, ale naštěstí to byla písemka z těch nejdůležitějších věcí, které jsme brali, takže se dala v pohodě napsat na dost bodů na poprvé. :-)

Předmět jako celek byl poměrně zajímavý a užitečný, nicméně chyběly mi tu věci jako objektové databáze nebo práce s SQL v nějakém jiném jazyce. Tato témata byla na můj vkus probrána příliš povrchně a neprakticky na to, jaké je jejich skutečné využití. Jinak IDS má očekávání splnilo.

IPK (Počítačové komunikace a sítě):

Sic to byl první síťový předmět na FITu, tak mě nijak zvlášť neoslovil. Ne, že by sítě byly úplně nudná oblast IT, ale přišlo mi, že tento předmět je, co se týče teoretické části jen o zkratkách. Kdo nevěří, brzy se přesvědčí. ;-)

Co se týče materiálů k výuce, tak žádná sláva to nebyla. Slidy mají celkově skoro 150MB, ale není to díky obrovskému množství informací v nich obsažených nýbrž tím, že jsou dělány na Macu s grafikou, která není nijak optimalizovaná a zabírá spoustu místa. Na první přednášce jste odkázáni na knihu, ze které se máte učit do předmětu, což je pěkné do doby, než se dozvíte, že ta kniha je anglicky, v knihovně je 20 kusů a už v průběhu přednášky se zvedali nerdi a šli vybrakovat knihovnu. Takže 5 minut po tom, co nám bylo řečeno "učte se z této knihy" už žádná kniha nebyla.

K projektům se dá říci jen tolik. Nebavily mě. Ne, že by nebyly přínosné k rozšíření znalostí, ale zkrátka instalovat si UNIX do počítače a psát klient-server aplikaci v holém C a BSD socketama není zrovna moc velká zábava.

Na druhou stranu je skvělé, že projekty nejsou povinné. Takže pokud získáte dostatek bodů z prvních dvou projektů, nemusíte implementovat vlastní spolehlivý protokol pomocí UDP (můj případ. Na konci semestru jsem byl už tak vyšťavený a venku bylo tak pěkné počasí, že jsem se k tomu dokázal dokopat).

Jak jsem již psal výše, projekty byly poměrně přínosné, ale člověka zkrátka irituje, že to co píše v C 2 dny se dá v C# a Javě napsat na 2 řádky. Naštěstí se na přednáškách probírá vše potřebné ke zvládnutí těchto projektů a máte k dispozici a nějaké dema pro inspiraci. Tedy nemůžete se vymlouvat, že vám nikdo nenastínil, jak ten projekt naprogramovat. ;-)

Tento rok se také zavedla novinka. Není půlsemestrálka, ale zato se v průběhu semestru píše několik menších testů maximálně za 3 body každý. Je to typu A,B,C,... přičemž je na výběr 0..n správných odpovědí a body  za špatnou se samozřejmě strhávají. Tyto testy mají studenty motivovat k tomu, aby se na látku podívali již v průběhu semestru, což se mi líbilo. Na druhou stranu mi některé otázky přišli jako docela solidní over-kill (tj. odpověď jsem nedokázal vydolovat z toho, co bylo na přednáškách).

Semestrální písemka je poté kapitola sama pro sebe. Člověk by očekával, že když vám mají testy v průběhu roku pomoci k semestrálce, tak že vám pomohou. Bohužel tomu tak nebylo. Semestrálka byla plná příkladů. Jako pár dní před termínem nám došel email, kde bylo napsáno, co se tam asi tak může objevit, ale některé věci jsem ve prostě slidech nenašel a na internetu byla jen letmá zmínka na anglické wiki. Takže u zkoušky jsem čučel jak puk na některé příklady. :-D Naštěstí jsem to dal na první termín, takže spokojenost. Ovšem byl tam boreček, který se minutu po zahájení písemky zvedl, odevzdal a za potlesku studentů v aule odešel. :-D

Zkrátka připravte se na to, že prestiž a obtížnost jsou nahoru a tak vám je k ničemu se podívat na to, jak v minulých letech vypadaly písemky. Naštěstí přednášející tohoto předmětu jsou celkem pohodáři a písemku neopravovali nikterak přísně (to, co jsem si myslel, že jsem napsal dobře jsem podle nich dobře napsal a body mi ochotně dali, takže tady jsem byl spokojen :-) ).

btw: V druhé půlce semestru je pár laboratoří. Na termíny se musíte registrovat celkem ve velké předstihu, tak si raději poznamenejte, kdy tam máte přijít. Ať se vám nestane jako mě, že místo na cvičení jsem jel se spolubydlou na velký kýbel kuřat co KFC. :-D Naštěstí, pokud přijdete na jiný termín a není tam plno, tak si to můžete klidně dodělat a bodíky dostanete.

IPK-projekt 1: download
IPK-projekt 2: download

IPP (Principy programovacích jazyků a OOP):

Takový další IOS. Pro některé jedince nepřekonatelná překážka v cestě za dalším studiem. Nicméně to nemění nic na tom, že to je poměrně zajímavý a užitečný předmět.

Projekty do tohoto předmětu již nejsou spjaty se semináři C++ a Javy. Bohužel se to oddělilo a projekty jsme psali v Perlu a Pythonu.

Ke každému z těchto jazyků si můžete vybrat, jaký projekt v něm chcete napsat. Počet míst je limitován, takže refresh war je nevyhnutelná. :-D Já jsem si vybral JSON2XML (JSON to XML) a zvýraznění syntaxe v Python 3. Nevím, co mě to chytlo, ale překlad JSON do XML jsem udělal pomocí vlastnoručně napsané syntaktické analýzy + gramatiky a u druhého projektu jsem také moc knihoven usnadňujících práci nepoužil.

Kromě toho, že se podíváte na nové jazyky, tak také zjistíte, že některé z nich nejsou moc použitelné. Především Perl je mišmaš. Ať v tomto jazyce napíšete prakticky cokoli, tak interpret to sežvýká a vykoná. Tato volnost vede k tomu, že u jazyka, který se učíte dva dny, nemáte ještě vytříbený svůj vlastní styl psaní, proto jednou něco napíšete tak, podruhé zase onak a z výsledného kódu, který sice funguje se vám chce zvracet. A to si myslím, že C, C# a Java kód píši dost čitelně.

Úplným opakem je Python. Kdo neví, jak vypadá jeho syntaxe, tak doporučuji aby se podíval. Je to velice zajímavý jazyk, kde jednotlivé konstrukce neurčuje počet závorek, ale jejich odsazení, což je velice užitečné. Lidé, kteří již píší čitelně s tím nebudou mít problém a lidé, kteří jinak píší jako prasata, tak se jejich kód zlepší (ne, že by se zlepšila i čitelnost algoritmů a rozložení do funkcí atd., ale alespoň je ten kód odsazený tak jak má). Asi proto jsem se v průběhu semestru setkával u lidí, kteří samotné programování moc nemusí s názorem, že Perl je skvělý jazyk a Python totální poděs. Pro mě je to sice naopak, ale co už. Každému podle gusta.

Jinak k projektům do IPP jsou poměrně striktní a přesná zadání plná nepřesností. Tedy pokud si něčím nejste jisti, tak se zeptejte raději ve WIS-fóru. Nakonec to skončilo tak, že jsem první projekt nepsal podle zadání, ale spíše podle oprav ve fóru. U druhého projektu se mi už nechtělo dívat pořád do fóra a číst tuny oprav. Tak jsme to jel z větší části podle původního zadání... A na výsledných bodíkách to šlo poznat (nebylo jich tolik, kolik jsem očekával). :-D 

A k projektům ještě poslední věc. Musí se k nim dělat dokumentace a samotný kód musí být také pořádně zdokumentovaný. Tedy minimálně komentáře do zdrojového kód piště průběžně. Ať se vám nestane jako mě, že projekty naboucháte na začátku semestru, v půlce je máte doopravit a odevzdat a nakonec zjistíte, že nemáte moc páru, co která část vlastně dělá (to mi naštěstí stalo jen u jednoho projektu, takže to byla pohodička). 

Semestrální zkouška... K té se moc vyjadřovat nechci. Také jsem ji dal na první termín, ale spousta lidí ne a ani se nedivím. Navíc na to, kolik jsem se toho naučil a do písemky napsal, tak ohodnocení nebylo také, jaké bych si přál.

IPP-projekt 1 (JSON2XML): download














IPP-projekt 2 (zvýraznění syntaxe): download












IZG (Základy počítačové grafiky):

Boží předmět. Skvělí vyučující, zajímavá látka, přiměřeně obtížný, užitečná cvičení a body za ně. Prostě jedna z mála věcí, která mě v tomto semestru bavila.

Více bych k tomu předmětu nepsal. Myslím, že pokud vás zajímá grafika, tak tento předmět se vám bude zamlouvat. A navíc první 3 studenti, kteří napíší nejrychlejší vykreslování 3D objektu v projektu, tak získají flašku vína. Have fun guys. ;-)

IZU (Základy umělé inteligence):

IZU je poměrně zajímavý předmět. Minimálně pro mě byl, jelikož jsem se s umělou inteligencí na FITu ještě neměl tu čest setkat.

Přednášky sice nejsou úplně záživné, občas se ztratíte ve výkladu, občas nějaká ukázka algoritmu nefunguje... Ale témata jsou obecně zajímavá.

Od druhé poloviny semestru jsou také cvičení, kde se probírají praktičtější věci (teorie aplikovaná na praxi). Takže za úkol máte projekty typu (naprogramuje A* pro mapy v C, udělej to a to v Prologu a Lispu).

Osobně doporučuji se na cvičení trochu připravit. Bylo nepříjemné, když jsem tam přišel a od cvičícího jsem se dozvěděl "naprogramujte to a to v Prologu" (přičemž jsem Prolog viděl jen z rychlíku na přednášce a nikdy předtím jsem v něm nic nedělal). Je sice pravda, že ty úkoly na cvičení nebyly nikterak závratně obtížné, ale zkrátka ve vás trochu hrkne. Především je nepříjemné, když nástroje, které požíváte jsou starší než vy a nestabilní až to bolí. Doporučuji tedy dělat úkoly pod Windows a pokud je potřeba, tak přes SSH na Merlinovi.

Jinak také doporučuji si pečlivě vybrat vyučujícího na cvičení. Ten můj měl totálně give a fuck přístup a aby nám dal body, tak chtěl ještě něco navíc (třeba v Prologu případ s tetou a pradědou atd. aby jste dostali body a on vás tam půl hodiny dusí na to, že chce ještě snachu, která ani není v zadání a upřímně ani nevím co za rodinného příslušníka to je).

Naštěstí jsem si vydřel všechny body, co šlo za cvičení a projety získat, ale by to občas porod. :-D

U půlsemestrály a semestrálky čekejte to, co jste se učili na přednáškách. Minimálně u nás nebyly žádné chytáky. Pokud jste se tedy poctivě podívali na látku, tak není důvod předmět úspěšně neabsolvovat.

IZU-projekt 1 (A* algoritmus): download
IZU-projekt 2 (Prolog): download
IZU-projekt 3 (Lisp): download

Poznámka: Nejsem si jist, zda-li to jsou finální soubory, co jsem odevzdával, tak tam mohou být chyby.

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

Aneb "Hi I am FEKT and I will never let you go.". Nevadí, alespoň jsem to měl z PPV kousek do školy. :-)

Moje poslední povinná angličtina na VUT. A musím říci, že asi ta nejvíce v pohodě. Samozřejmě se tam učíte a naučíte, ale oproti FITu to je pohodička. Takový oddechový předmět. Navíc jsem měl Agátu, tedy o zábavu bylo postaráno.

Výsledkem je 85 bodů a krásné B (a to i s tím, že jsem před semestrálkou onemocněl a v průběhu písemky jsem dostával "záchvaty kašle". :-D Prostě jsem si několikrát musel vzít flašku a odejít na chodbu na pár minut. A poté se zase na chvíli vrátit a dopsat další část testu.).

IJA (Seminář Java):

Poslední předmět, který jsem tento semestr na VUT FIT absolvoval. Ale abych řekl pravdu, tak nevím, co k němu napsat. Na přednášce jsem byl jen jednou a to jsem si četl noviny na notebooku (kolidovalo mi to s IPP).

Vůbec tedy nevím, co se tam probíralo a co bylo řečeno. Takže pokud jste čekali nějaké info ohledně tohoto, tak vás zklamu. Jediné, co k tomuto předmětu mohu napsat, že projekty mi hodně daly a byly férové. K úkolům jste dostali testovací třídy a pokud vám jimi váš výsledek prošel, tak jste měli plný počet bodů. Jinak 0.

Projekty jsem samozřejmě dělal všechny a výsledná aplikace (Petri Net Editor and Simulator) je ZDE.

btw: Projekt byl teamový (2 členové), ale moc mi to nepřišlo. Jelikož jsem byl vedoucí, tak jsem si udělal raději většinu práce sám. Ne, že bych nechtěl teamově spolupracovat, ale Java byl jazyk, na který jsem se upřímně těšil a doufal, že si rozšířím a osvěžím svém dovednosti v tomto programovacím jazyce. Proto jsem se s tímto projektem vyloženě mazlil a užíval si kreativity a volné ruky, která se vám na FITu jinak jen tak nedostane.

Toto byl podle mě jeden z mála projektů během studia, který vás z "opice", která se musí držet do posledního puntíku striktně zadání posune na LVL opravdový programátor. Návrh architektury, tříd, GIU, síťové komunikace atd., v tom všem máte volnou roku . Stačí jen splnit body zadání a požadovanou funkcionalitu. To jak to uděláte je jen a pouze na vás.

Už by jenom stačilo, aby se z přednášek, kde se čtou slidy, staly přednášky typu IW5 (C#, tedy přednášení nad kódem přímo v průběhu přednášky) a je to naprosto skvělý předmět.

IJA-úkol 1: download
IJA-úkol 2: download
IJA-úkol 3: download





Projekt: stránka projektu










PS:

Kdybych měl shrnout celý 4. semestr na VUT FIT, tak "jde to, ale dře to". Projektů je požehnaně a učení také. Od poloviny semestru jsem také prakticky vůbec nenavštěvoval přednášky. Moc mi nedávaly a navíc jsem raději pracoval na projektech a nebo se učil sám. A jak vidno, tak samo učení přineslo své ovoce. Všechny předměty jsem dal na první termín a měl poté klid (ještě v tuto dobu někteří mí kolegové na fakultě bojí s třetím termínem na IPP). :-)