PUTALA, M. Částečně paralelní hluboké zásobníkové převodníky a jejich aplikace [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.
Celkově hodnotím aktivitu studenta jako velmi dobrou. Mnohdy si zajiťoval literaturu samostatně. Dosažené výsledky ale nevyústily v žádnou publikaci ač je pravděpodobné, že jí bude dosaženo v budoucnu, např v navazující DP, kterou studentovi vedoucí silně doporučuje. Absence publikace jakož i malá snaha jí dosáhnout vede vedoucího k hodnocení B místo A.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Informace k zadání | Tato práce byla vypracována dle uvedeného tématu a postupu. Byla náročná, neboť vyžadovala studium cizojazyčné literatury. Práce překročila zadání. | ||
Práce s literaturou | Při získávání a využívání studijních materiálů k řešení práce byl student aktivní. | ||
Aktivita během řešení, konzultace, komunikace | Student se mnou komunikoval pravidelně elektronicky i osobně. V některých týdnech jsme komunikovali až čtyřikrát. Pracoval intenzivně. | ||
Aktivita při dokončování | Práce byla dokončena v dostatečném předstihu a její obsah byl osobně konzultován. | ||
Publikační činnost, ocenění | Není. |
Text práce obsahuje nezanedbatelné množství typografických chyb a nepřesností napříč kapitolami práce. Spolu s nedostatečně rozsáhlým testováním realizačního výstupu hodnotím tuto práci 66b, tedy stupněm D .
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Náročnost zadání | Cílem práce bylo seznámit se se sekvenčními hlubokými zásobníkovými automaty, navrhnout a definovat jejich rozšíření ve formě částečně paralelních hlubokých zásobníkových převodníků a implementovat a otestovat aplikaci demonstrující jejich fungování. Práce vyžaduje studium většího množství teorie ovšem literatura na toto téma je dostupná a samotná realizace aplikace by neměla být příliš složitá, zadání tedy hodnotím jako průměrně obtížné . | ||
Rozsah splnění požadavků zadání | Autor úspěšně demonstruje pochopení bezkontextových gramatik, automatů a převodníků včetně hlubokých zásobníkových převodníků. Jejich rozšíření bylo autorem popsáno a definováno nicméně v textu práce není uvedeno zcela korektně: autorovi se nepodařilo úplně korektně popsat definici stavové gramatiky v příkladu 3.5.1 str. 17 kde pravidla obsahují "jakási čísla," která nejsou v daném kontextu nijak popsána a nejsou ani platnou součástí definice relace P stavové gramatiky z definice 3.5.1. Kde tyto číslice a relace přechodů která je obsahuje, jsou vysvětleny až v prvním odstavci kapitoly 5.1 respektive v definici 5.1.1 na str. 27 v kontextu autorem navrženého rozšíření. Autorem provedené testování implementace je velmi krátké a to v rozsahu dvou spuštění v konzoli bez jakékoliv větší analýzy výsledků . | ||
Rozsah technické zprávy | Dle fakultní aplikace pro analýzu rozsahu PDF dokumentů ( https://app.fit.vut.cz/normostrany ) má odevzdaná zpráva zhruba 47 normostran včetně obrázků, 43 normostran bez obrázků. Celkový rozsah práce tedy splňuje pouze minimální požadavky. | ||
Prezentační úroveň technické zprávy | 71 | Text práce je rozdělen na logické části, které na sebe vhodně navazují. Text je čtivý, souvislý a srozumitelný, kapitoly jsou informačně bohaté a nechybí vhodné grafické znázornění ve formě derivačních stromů případně diagramů konečných automatů (kterých by mohlo klidně být více). Formátování definic je často nekonzistentní a některé odstavce a věty na sebe v kapitolách myšlenkově nenavazují (kapitola 3.2 str. 13 poslední odstavec) a nebo jsou ukončeny uprostřed věty (kapitola 3.2 str. 13 odst. 2, kapitola 3.4 str. 16 odst. 3, konec kapitoly 4.1 str. 20). Na obrázky, definice a příklady často není z okolního textu odkazováno (konkrétní příklady v sekci formální úprava). | |
Formální úprava technické zprávy | 62 | Práce obsahuje několik typografických chyb: příklady a definice často nejsou v textu práce referencovány a pouze "visí" mezi odstavci textu (kapitola 3.2 str. 11+, kapitola 3.4 str. 16, kapitola 3.5 str. 17, kapitola 4 str. 19+ aj.), chybějící čárky v některých větách s definicemi (čárky má: definice 4.1.1 str. 19, definice 3.5.1 str. 17, čárky nemá: definice 5.1.1 str. 27, definice 4.5.1 str. 24), titulek pseudokódu v algoritmu 1 je v české práci uveden anglicky "Algorithm 1" str. 38, text přetékající vymezenou šířku textu na stránce (kapitola 6.3 str. 37), chybějící úvody pod nadpisy sekcí (kapitola 5.1 str. 27). Technická zpráva je z jazykového hlediska v pořádku a neobsahuje prakticky žádné gramatické chyby či překlepy. Další drobné poznámky k obsahu textu práce: práce mezi textem obsahuje rozsáhlý JSON výpis (kapitola 6.2 str. 34-36) který by možná měl být součástí přílohy než samotného textu práce, výpisy i obrázky bez vlastních popisků (pouze titulky). | |
Práce s literaturou | 55 | Autor cituje 13 různých zdrojů: 6 vědeckých publikací, pouze 2 ze 4 doporučených základních literárních zdrojů ze zadání, 7 online/webových zdrojů: 5 z nich jsou různé materiály (přednášky či studijní opora) předmětu IFJ , které by téměř mohly být jednou citací Autor alibisticky cituje veškeré použité zdroje na úvodu kapitol : "Podklady pro tuto kapitolu byly čerpány z [12, 13, 11, 4, 7, 2]." (kapitola 4 str. 19, dále ale také kapitola 2 str. 5 či kapitola 3 str. 10) což je v rámci citačních pravidel zcela nevhodné. Další citace se na konkrétních místech v textu již prakticky neobjevují. Práci s literaturou hodnotím jako velmi slabou. | |
Realizační výstup | 64 | Vytvořená aplikace příliš nevyužívá principů OOP (jediná třída, využívání globálních proměnných) a je koncipována v duchu procedurálního programování , což je značná škoda — především při volbě programovacího jazyka jako je Python. Nicméně kód je úhledně a konzistentně formátován a velmi slušně dokumentován (prostřednictvím komentářů metod). Aplikace je relativně triviální a uživateli poskytuje pouze výpis seznamu v pořadí aplikovaných pravidel přechodů a nenabízí možnost například mnohem zajímavějšího pohledu na postupné krokování jednotlivých přechodů (či pokusů o ně) a aktuální konfigurace demonstrující samotnou činnost převodníků (tak jak je uvedeno např. v příkladu 4.5.1 str. 26). V případě neakceptování vstupu se aplikace ukončí bez výstupu. Vytváření vlastních definicí převodníků je v podobě JSON souborů značně zdlouhavé a zbytečně komplikované. Zvláště když je možné definici relativně jednoduše reprezentovat bez složitější struktury, například pouze seznamem pravidel tak jak je definováno v kapitole 4.5 (stranou s definicí startovacího a koncových stavů atd.) Součástí odevzdání jsou pouze dvě ukázkové definice převodníků bez seznamů (ne)akceptovaných řetězců jazyka přijímaného těmito převodníky. | |
Využitelnost výsledků | Realizovanou aplikaci je možné rozšířit a využít k dalšímu potenciálně rozsáhlejšímu testování možností zavedených (částečně) paralelních hlubokých zásobníkových převodníků. |
eVSKP id 141063