Softwarové a datové inženýrství - 30.6.2021

Vše o státnicích úspěšně završujících roky studia na naší alma mater.
Speedding
Matfyz(ák|ačka) level I
Příspěvky: 35
Registrován: 10. 1. 2017 19:32
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Softwarové a datové inženýrství - 30.6.2021

Příspěvek od Speedding »

Na začátku se zadá 5 otázek dle vybraných témat, co o nich napíšete, je v podstatě na vás.

Základy složitosti a vyčíslitelnosti [M. Kopecký] - Rozhodnutelné a částečně rozhodnutelné jazyky

Definice Turingova stroje a jeho variant, částečně rozhodnutelného a rozhodnutelného jazyka, Postova věta, univerzální jazyk, diagonální jazyk a náznak důkazu, že není částečně rozhodnutelný, a tedy co z toho plyne (v souvislosti s Postovo větou). Halting problém a náznak důkazu jeho nerozhodnutelnosti. Zhruba tohle stačí na jedničku, zkoušející se na konci jen doptával na souvislosti NTS a DTS, a jak je to se složitostmi v souvislosti se třídami P a NP (jenom taková btw otázka, jestli tomu člověk rozumí).

Datové struktury [M. Mareš] - Splay stromy

Zde na jedničku stačí definice, popis operací včetně druhů rotací, amortizovaná složitost a jak je definovaný potenciál. Zkoušející rovnou na začátku řekl, že rozhodně nepotřebuje důkaz věty o amortizované složitosti. Pak ho ještě zajímala nějaká praktická aplikace splay stromů, respektive kde se jeho použití nehodí. I zde bylo zkoušení velmi rychlé, zkoušející si přečetl mé poznámky a příliš se nedoptával.

Analýza a architektury software [J. Klímek] - UML a jeho využití

Základní informace o UML, k čemu to je. Doporučuji načrtnout pár diagramů, na tom se dobře ověřuje, že tomu člověk rozumí. Jmenovitě například nějaký class diagram, activity nebo sequence, a k čemu se jaký diagram hodí. Ještě jsem popsal, jaké má UML usecasy při jednotlivých fázích SDLC, zmínil jsem MDD. Nakonec jsme vedli diskuzi, jestli má UML vůbec nějaké nevýhody - špatně se diagramy udržují aktuální (v souvislosti se změnami v softwaru při jeho postupném vývoji). Tahle otázka byla přirozeně trochu víc o diskuzi než všechny ostatní, odměnou za rozumnou a konstruktivní debatu je známka za 1, i tak se ale dá zkoušení stihnout pod 10 minut.

Rozšířené programování [F. Zavoral] - Generika a šablony

Velké srovnání generiky v Javě, C# a C++. Ani ne tak syntaxí, jako spíš způsobem překladu a co z toho plyne. Tedy CIL kód od verze platformy 2.0 podporuje generiku tak, že generický parametr je přímo součástí definice typu/fieldu/metody a dosazování konkrétního argumentu probíhá až při JIT překladu. Java to kvůli zpětné kompatibilitě (generika se tam přidávala tuším až v Javě 5?) řeší obyčejným přetypováním (respektive kompilátor přidává do bytecodu instrukci checkcast na typ daného generického argumentu). Taky jsem zmínil kovarianci a kontravarianci, v případě Javy i k čemu je otazník. V závislosti na zkoušejícím doporučuji víc rozepsat jeho oblíbený jazyk, v mém případě to bylo C++. Podle jeho reakce pro něj zde bylo zásadní zmínit, jak se šablony překládají (až konkrétní využití) a že je tedy nutné distribuovat šablonovanou knihovnu na úrovni hpp souborů, což jsem samozřejmě na papíře měl. Pak jsem tam zmínil něco o parciálních specializacích a traitech, to jsem ukázal na přikladu. Nakonec jsem měl na papíře zmínku o politikách a SFINAE, to ode mě chtěl rozvést v rámci ústního dozkoušení (byl jsem líný to tam psát rovnou). U SFINAE mu stačila jedna věta, k čemu to je a proč je to potřeba, byla to ale spíš až bonusová otázka. Zkoušení opět rychlé (5 minut) s výsledkem 1.

Softwarové technologie [L. Peška] - MVC a Observer pattern

Za mě nejhorší otázka, protože jsem nečekal otázku na konkrétní návrhový vzor (čekal jsem spíš něco k virtuální paměti, nebo obecně k systémovým záležitostem). Observer jsem popsal celkem v klidu, jako příklad jsem uvedl eventy v JavaScriptu a jak k nim přidávat listenery. U MVC jsem moc nevěděl, co říct, tak jsem napsal jen rozdělení na 3 části a jaké mají části zodpovědnosti. Tady se mě musel víc ptát, chtěl po mě nakreslit takový ten klasický graf pro MVC a jaká část využívá jakou. To jsem původně chtěl nakreslit na papír rovnou, ale nebyl jsem si jistý, tak jsem to radši nedělal. Nakonec se mě ptal, v jakých částech MVC patternu by se mohl využít Observer, to jsem moc nevěděl. Výsledek za 2. Doporučuji se pořádně připravit i na otázky, o kterých si myslíte, že odpověď na ně určitě znáte a nemohou vás u zkoušky překvapit (jako mě překvapil MVC).

Zkoušku až na jednoho zahraničního studenta dali všichni (z 6), většina za 1, jeden člověk za 3.
Odpovědět

Zpět na „Magisterské SZZ“