Blog.nechutny.net

Blog o webu a IT.

Zhodnocení 3. semestru na FIT VUT v Brně

3. semestr

Jsem zas o něco starší, zkazil jsem si zdraví dalším množstvím kávy a snad jsem i o něco málo chytřejší. Prostě je za mnou další semestr. Během semestru se událo spousta novinek ať už změna zaměstnání, nebo i třeba potkání nových lidí.

IAL - Algoritmy

Předmět, který má velké šance být jedním z těch TOP. Bohužel není. Asi nejlépe to shrnuje příspěvek, který se objevil na facebookové skupině našeho ročníku. Z předmětu si odnesete jen nazpamět naučené kódy pro různé sorty v šíleném pseudojazyce.

Předmět příliš neusnadnuje ani fakt, že všechny zdrojové kódy jsou v jazyce podobném Pascalu, ale upraveném dle potřeb přednášejícícho. Přehlednosti nepřidává skutečnost, že v rámci jedné funkce kombinuje anglické a české názvy proměnných a to i tak, že na jednom řádku použije proměnnou PomUk a na druhém TmpPtr, které ovšem značí jednu stejnou proměnnou.

Prezentace použitá k přednáškám obsahuje spoustu chyb tzv. "past na eskymáky". Na jednu stranu chápu přednášejícího, že se záměrnými chybami ve slajdech, na které v přednášce upozorní, snaží bojovat s docházkou, ale je to opravdu šílené při učení na zkoušku hledat na každé stránce 1-2 chyby. Kdyby to byly drobnosti, ale na stránce je pak jedna věta červeně, podrtržená velkým písmem (tzn. je důležitá) a i v ní je záměrně chyba... Slovy klasika "Past vedle pasti, ty pi*o!".

Předmět kromě půlsemestrální a semestrální písemné zkoušky obsahuje 2 projekty. Jejich zadání se rok od roku příliš neliší a tak se někteří uchýlili k plagiátorství. Takových studentů bylo odhaleno několik desítek. Úkolem byla tvorba funkcí pro práci s abstraktními strukturami jedno/dvojsměrně vázaný seznam, hashovací tabulky a binární stromy.

Poslední hodnocenou částí projektu byla dokumentace a obhajoba projektu do IFJ. O tom hlavně u dalšího předmětu.

Hodnocení: 3/10

IFJ - Formální jazyky a překladače

Jeden z nejlepších předmětů tohoto semestru a to hlavně kvůli projektu, který je zajímavý a celkem i zábavný. Napíšete si vlastní interpret se všemi částmi jako scanner, parser, lexikální analyzátor, ale i generátor tříadresného kódu atd. Letos to byl jazyk založený na Pascalu.

Projekt se tvoří v 4-5 člených skupinách a je dobré ho nepodcenit, jelikož získáním alespoň 5 bodů je podmíněné získání zápočtu. Nečekejte, až se na přednáškách naučíte potřebné věci a prostě si stahněte prezentace k přednáškám a naučte se to za večer. My měli funkční interpret hotový již v září a po zbytek roku jsme jen dělali různé úpravy + implementovali bonusová rozšíření. Výsledný projekt je dostupný na Githubu.

Z této velké praktické části si předmět zaslouží kladné hodnocení. Dále se zde proberou automaty, jazyky, jak funguje precendenční analýza, ale i třeba způsoby optimalizace a opravy kódu.

Hodnocení: 9/10

INM - Numerická matematika a pravděpodobnost

Poslední - třetí část matematiky na FIT VUT. Bez půlsemestrální zkoušky, ale s bodovanýma cvičeníma každý týden. Začne se různými iteračními výpočty (Euler, Gaus-Seidel...) až se přejde k kombinatorice, pravděpodobnosti a normálovému rozdělení.

Za zmínku asi stojí pouze osobitý cvičící, který zcela nečekaně do diktovaného matematického výrazu vkládal nesouvisející věty. Ke konci jsme si již zvykli na ".. a zintegrujeme na mínus sinus, jak se ta sestřička mohla v tom Španělsku nakazit, když používala všechny ochrané pomůcky, x na druhou...".

Ve výsledku nic příliš těžkého a pokud se k tomu přidá fakt, že ke zkoušce je dovolený "tahák" o rozsahu 3 listů A4, na které je možné nacpat vzorce, řešené příklady a hlavně tabulku pro normálové rozdělení, tak je to celkem pohodový předmět.

Hodnocení: 6/10

INP - Návrh počítačových systémů

Tento předmět vás naučí nenávidět tu zelenou svini, jelikož jeho součástí jsou dva projekty ve VHDL. První projekt je ještě poměrně jednoduchý - ve VHDL napsat kód pro obvod, který na připojeném poli led diod zobrazí vaše iniciály.

Druhý projekt je již ovšem popsat ve VHDL procesor Von Neumannova typu, který interpretuje kód zapsaný v jazyce Brainfuck. To bylo několik bezesných nocí a jeden rozbitý hrnek o zeď... Když mi pak za projekt přišli jen 3 body, tak mě to dostalo do kolen. Naštěstí na reklamaci se ukázalo, že jsem zapomněl jen při resetu procesoru vynulovat jeden signál. Opravující tedy tento reset doplnil a projekt ohodnotil znovu bez bodové srážky.

Půlsemestrální a semestrální zkouška se zaměřila na klasiku - Huffmanův kód, Hammingův, parity, sčítačky, práce s čísly s pohyblivou desetinou čárkou, Boothův algoritmus pro násobení, SRT pro dělení... Na to, že to byl HW předmět, tak mě bavil a přišel mi přínosný.

Hodnocení: 7/10

ISS - Signály a systémy

Předmět, který moc nevím jak ohodnotit. Část věcí přínosná, ale obsah mi vůbec neseděl jako celek dohromady. Tu něco, pak skočíme támhle a ještě se můžeme podívat na tohle...

Cvika z předmětu byla celkem přínosná, jelikož se zde probrala spousta příkladů, které poté byly u zkoušky. Filtry na zvuk a obrázky, signály, transformace, výpočty... Většina práce v Matlabu s dostupnou dobrou oporou. Cvičící nás tahal k tabuli, kde jsme jednotlivě počítali, ale byl příjemný a poradil, pokud jsme nevěděli.

Po vánocích deadline na jeden projekt, který bylo možné stihnout za večer v Matlabu. Každoročně spočívá v aplikování různých filtrů na obrázek vygenerovaný pro každého žáka. Pro kontrolu je také referenční řešení a to se mi stalo osudným - omylem jsem odevzdal vygenerované obrázky pro referenční zadání místo svého. Naštěstí stačil jeden e-mail opravujícímu a za srážku 2 bodů bylo možné opravit odevzdání.

Starší zadání půlsemestrální i semestrální zkoušky jsou oficiálně dostupná, některé typy příkladů se opakují, ale pak se zde vyskytují i příklady u kterých opravdu netušíte, kde se to bralo, nebo co na to aplikovat. U zkoušky připravený papír plný nepopsaných vzorců příliš nepomáhá.

Hodnocení: 4/10

IPA - Pokročilé assemblery

Volitelný předmět, který mě bavil, určitě měl přínos a doporučil bych ho. Zaměřuje se na x86 a x64 assembler. Probere se rozšíření SSE, MMX, AVX, OpenGL, chráněný režim atd. Jelikož mě v prvním semestru zaujal předmět IAS - Asemblery, tak jsem se těšil.

První přednáška mě trochu zklamala, protože to bylo pouhé čtení ze slajdů, ale cvika to vynahradila. Na každých cvičeních se řešila implementace nějakého problému, nebo optimalizace algoritmu za pomoci SIMD. Výsledné optimalizace s inline assemblerem pak dosahovali i víc jak 250x zrychlení oproti implementaci v C. Musím rozhodně pochválit cvičícího, který byl velmi příjemný a s jakýmkoliv problémem poradil.

Zadání projektu se volilo mezi optimalizací zadaného kódu, tvorba benchmarku, nebo napsání aplikace v assembleru dle vlastní volby (využít probíraná rozšíření CPU). Zvolil jsem tedy vlastní aplikaci a vytvořil program pro balistické výpočty za použití AVX.

Jako bonus bylo možné si vybrat datum zkoušky z téměř desítky termínů a výsledky ze zkoušky mi přišli na mail ani ne 5 minut poté, co jsem vyšel z FITu.

Hodnocení: 9/10