Další semestr ukončen. Je vidět, že nejtěžší předměty už mám asi za sebou, protože tentokrát jsem zakončil zatím nejlepším průměrem za celé studium. Ale úplně bez práce to také nebylo. A co že jsem tento semestr studoval?
[BI-BEZ] Bezpečnost → B
Předmět se zabývá především kryptografií (věda o šifrování). Nejdříve se proberou matematické principy různých typů historických i v současnosti běžně používaných šifer, nahlédne se i do budoucnosti úvodem do kvantové kryptografie. Potom se prakticky jednotlivé šifrovací techniky vyzkouší při programovacích úlohách v C s využitím knihovny openssl, např. k zašifrování obrázkového souboru nebo ručnímu navázání šifrovaného spojení přes internet.
[BI-EP2] Efektivní programování 2 → A
Volné pokračování volitelného předmětu EP1. Tentokrát témata velmi úzce souvisí s paralelně zapsaným předmětem BI-GRA, takže jeho absolvování pomůže pochopit většinu algoritmů probíraných na přednáškách v onom předmětu. Forma je stejná jako u první části předmětu – řešení úloh z minulých ročníků programovací soutěže a následná diskuse různých řešení studentů. Předmět je ukončen semestrální prací, která spočívá ve vytvoření zadání vlastní úlohy, napsání referenčního řešení a přípravě testovacích dat. Je zajímavé se podívat na věci i z té druhé strany.
[BI-GRA] Grafové algoritmy a základy teorie složitosti → B
Docela zajímavý oborový předmět zabývající se různými grafovými algoritmy, které mají v praxi široké využití, od hledání nejkratší cesty na mapě po optimální rozvržení přednášek do místností. Bojoval jsem s ním však do poslední chvíle. Testy na cvičeních během semestru mi přišly dost těžké, především tím, že se na ně nedalo moc připravit. Nakonec jsem ale body dohnal na dvou programovacích úlohách, teoretickém midtermu a první části zkoušky. Na druhou část zkoušky se totiž také moc připravit nedalo, úkolem bylo analyzovat problém a navrhnout algoritmus pro co nejefektivnější řešení. Problém byl ale dost nepřiměřený tomu, co jsme dělali v semestru. A nebyl to jen můj pocit, úplně správné řešení totiž neměl nikdo.
[BI-OSY] Operační systémy → A
Základní principy fungování všech operačních systémů – komunikace mezi procesy a vlákny, přidělování výpočetního výkonu vláknům, stránkování operační paměti, principy fungování různých souborových systémů. Součástí hodnocení byly 2 programovací úlohy – implementace vícevláknového programu typu producent–konzument a simulace stránkování paměti. U zkoušky pak počítací příklady zaměřené na přesné pochopení jednotlivých oblastí.
[BI-PJP] Programovací jazyky a překladače → A
Další oborový předmět, kde pochopíte, k čemu byla všechna ta teorie v BI-AAG. Výstupem je semestrální práce, jejíž náplní je implementace frontend části překladače pro zjednodušený jazyk Pascal – tedy vytvoření lexikální analyzátoru, syntaktického analyzátoru a překlad do abstraktního syntaktického stromu backendu gcc. Pro plné bodové hodnocení bylo potřeba v jazyce podporovat základní konstrukty jako deklarace a přiřazení proměnné, pole, podmínky, cykly, funkce s parametry a rekurzivní volání.
[BI-PSI] Počítačové sítě → B
Tady jsme se naučili, jak funguje internet a prošli detailně všechny vrstvy modelu ISO/OSI. V laboratořích jsme pak teorii procvičovali konfigurací Cisco routerů. Programovací úlohy spočívaly v napsání TCP klienta a UDP serveru.
Zbývá mi teoreticky poslední rok, ale už teď vím, že si studium ještě o rok prodloužím. Na další dva semestry totiž odjíždím studovat do zahraničí. O tom ale asi napíšu více v dalším článku.