Začátek konce

Ve třetím ročníku Computer Science na Cambridge musí každý provést a napsat “Part II Project”, čímž se tu nazývá Bakalářská práce. Jelikož mi právě kvůli tomuto projektu ubývá mnoho času ze života, tak jsem se rozhodl mu tento blogový příspěvek věnovat.

Bakalářská práce v oboru Computer Science je docela prakticky zaměřená. Projekt musí obsahovat nějakou hardwarovou či softwarovou implementaci, a poté se v bakalářské práci popíše celý proces praktické části - co a jak jsem udělal, včetně odůvodnění a konečného ohodnocení výsledků. Paradoxně je text práce ta nejdůležitější část, přestože nad ním člověk stráví asi pětinu času, co na praktické části. Zdrojový kód se sice také musí odevzdat, ale je to pouze příloha, a ve většině případů se na to hodnotitelé ani nepodívají, o spouštění programu ani nemluvě.

Já si osobně myslím, že je to skvělé, mít takový praktický projekt jako hodnocenou část studia. V minulých letech jsme měli za úkol splnit všelijaká programovací zadání, ale u těch vždy platil systém vyhověl/nevyhověl, u čehož je laťka nastavena tak nízko, že se očekává, že projde úplně každý. Podle mě je takový systém skoro zbytečný ve výuce praktické části tohoto předmětu, jelikož se žádná snaha navíc necení. Je pak samozřejmé, že každý udělá absolutní minimum, aby prošel, a věnuje svůj čas příjemnějším věcem. Ale jelikož se tentokrát kvalita oceňuje, je k práci mnohem silnější motivace, což je podle mého názoru poněkud efektivnější způsob výuky.

Možná nejobtížnější částí celého projektu jsou první kroky: vybrat téma a najít školitele, což musí být splněno před začátkem školního roku. Většinou to bývá velký boj, jelikož je školitelů v oboru  poměrně málo, a z těch je nutné najít takového, kterého zvolené téma zajímá. Já jsem s velkým štěstím nemusel hledat dlouho, než jsem našel skvělého, který náhodou už měl připravený  projekt pro studenta, kterého by zajímal.

A tak jsem přišel ke svému tématu. Můj projekt se bude zabývat automatickým generováním komutativních diagramů, což jsou druhy grafů, které se používají v odvětví matematiky - teorie kategorií. Cílem je vyrobit pomůcku, která velice usnadní hezké zobrazení těchto grafů, dnešní metody jsou totiž docela pomalé. Ta část projektu, která mne nejvíc zajímá, je použití umělé inteligence k tomu, abychom našli optimální rozložení grafu s cílem maximalizovat určité metriky “hezkosti”. Do jaké míry se to podaří teprve uvidím, ale teoreticky už mám nejtěžší část za sebou.