od pepelik » 27. 6. 2017 19:13
[Státnice informatika] sepsal Kuba:
Takže co tam dneska bylo: za každý okruh jedna otázka, celkem 9 otázek, z toho tři poslední se týkaly vybraného zaměření. Za každou otázku maximálně tři body, požadované minimum byla polovina bodů + polovina bodů z otázek ze zaměření. Žádné otázky se neškrtaly.
1. ADS: zadefinovat topologické třídění, popsat algoritmus a vysvětlit, jak pomocí něj najít počet různých cest z jednoho vrcholu do druhého.
2. Databáze: máme tabulku, která odpovídá rozvrhu na MFF s položkami jako ID předmětu, jméno předmětu, den v týdnu, čas, semestr, místnost, vyučující. Úkolem bylo převést do BCNF a napsat SQL, které vrátí vyučující, kteří mají v rozvrhu překryvy (stačilo udělat kartézský součin tabulky).
3. Autogramy: máme zjednodušený JSON, hloubka omezena na 3, klíč je vždy string a hodnota je buď číslo, nebo blok. hodnota v "config"/"version" musí existovat a být nastavena na 10. Napište na to gramatiku, určete, zda je LL(1) a rozhodněte, jestli takový JSON dokážete přijímat konečným automatem.
4. Programování: editor 2D vektorové grafiky, dokážeme v něm klikáním vybírat tvary (čtverec, kruh...) a umisťovat je na plátno. Navrhněte objektový model.
5. Sítě: Posíláte přes SMTP email s textem T a předmětem S z adresy A na adresu B. Vy jste na počítači s adresou P, server je na adrese Q. Popište přesně zprávy, ke kterým dochází při komunikaci. [Tohle mi přišlo hardcore, fakt si musíme pamatovat formát SMTP zpráv? Podle dotazů by nicméně stačilo i popsat přibližný proces odesílání.] Ještě chtěli vědět, jaký transportní protokol se používá.
6. Principy počítačů: Máme dva programy, které transformují string na vstupu a hned ho pošlou na výstup (pascalovský zdroják: while not eof do ReadLn; Transform; WriteLn). Spustili jsme Program1.exe < in.txt | Program2.exe > out.txt. Mohou Program1 a Program2 běžet alespoň zčásti paralelně? Šlo by zařídit, aby si nemuseli string předávat přes standardní vstup, ale přes část paměti? Pokud předpokládáme, že Program1 přidá na začátek řádku plus, Program2 na konec řádku vykřičník a podstrčíme jim na vstup binární obrázek (JPG, BMP...), budou s tím mít programy problém?
Počítač má jeden jednojádrový procesor.
Zaměření "softwarové inženýrství":
7. XSLT: dostanete nějaký stylesheet, který transformuje zadané XML do HTML, a máte napsat, jaký bude výsledek. Šlo o celkem triviální převod seznamu zaměstnanců do odrážkového seznamu.
8. C++: v zadání je třída Matrix, shromažďující prvky matice v lineárním vektoru. Pomocí traits a policy classes zajistěte, aby si uživatel mohl vybrat, zda chce v tom vektoru mít prvky řazené sloupec po sloupci, nebo řádek po řádku.
9. Návrhové vzory: pro univerzitu děláme nový SIS. Lidé ze školy jsou buď studenti, učitelé, nebo zaměstnanci a tyto typy se zřejmě nebudou rozšiřovat. Chceme být schopni jednoduše implementovat nové operace, protože rektorát vydává stále nové předpisy. Udělejte návrh business logiky (tj. neřešte frontend ani ukládání do databáze) a použijte k tomu nějaký návrhový vzor/vzory. Ukažte, co implementovat/změnit, pokud vytvoříme novou operaci, která má za úkol u studentů zjistit průměrnou dobu studia. Co je třeba změnit, pokud porušíme podmínku v zadání a přidáme nový typ člověka Knihovník?
===
Bylo to jednodušší, než jsem čekal, ale taky zdlouhavější. Začínali jsme v 8.45, odcházel jsem v 13.30 a to většina ještě psala. Pangrác byl z toho evidentně překvapený
[Státnice informatika] sepsal Kuba:
Takže co tam dneska bylo: za každý okruh jedna otázka, celkem 9 otázek, z toho tři poslední se týkaly vybraného zaměření. Za každou otázku maximálně tři body, požadované minimum byla polovina bodů + polovina bodů z otázek ze zaměření. Žádné otázky se neškrtaly.
1. ADS: zadefinovat topologické třídění, popsat algoritmus a vysvětlit, jak pomocí něj najít počet různých cest z jednoho vrcholu do druhého.
2. Databáze: máme tabulku, která odpovídá rozvrhu na MFF s položkami jako ID předmětu, jméno předmětu, den v týdnu, čas, semestr, místnost, vyučující. Úkolem bylo převést do BCNF a napsat SQL, které vrátí vyučující, kteří mají v rozvrhu překryvy (stačilo udělat kartézský součin tabulky).
3. Autogramy: máme zjednodušený JSON, hloubka omezena na 3, klíč je vždy string a hodnota je buď číslo, nebo blok. hodnota v "config"/"version" musí existovat a být nastavena na 10. Napište na to gramatiku, určete, zda je LL(1) a rozhodněte, jestli takový JSON dokážete přijímat konečným automatem.
4. Programování: editor 2D vektorové grafiky, dokážeme v něm klikáním vybírat tvary (čtverec, kruh...) a umisťovat je na plátno. Navrhněte objektový model.
5. Sítě: Posíláte přes SMTP email s textem T a předmětem S z adresy A na adresu B. Vy jste na počítači s adresou P, server je na adrese Q. Popište přesně zprávy, ke kterým dochází při komunikaci. [Tohle mi přišlo hardcore, fakt si musíme pamatovat formát SMTP zpráv? Podle dotazů by nicméně stačilo i popsat přibližný proces odesílání.] Ještě chtěli vědět, jaký transportní protokol se používá.
6. Principy počítačů: Máme dva programy, které transformují string na vstupu a hned ho pošlou na výstup (pascalovský zdroják: while not eof do ReadLn; Transform; WriteLn). Spustili jsme Program1.exe < in.txt | Program2.exe > out.txt. Mohou Program1 a Program2 běžet alespoň zčásti paralelně? Šlo by zařídit, aby si nemuseli string předávat přes standardní vstup, ale přes část paměti? Pokud předpokládáme, že Program1 přidá na začátek řádku plus, Program2 na konec řádku vykřičník a podstrčíme jim na vstup binární obrázek (JPG, BMP...), budou s tím mít programy problém?
Počítač má jeden jednojádrový procesor.
Zaměření "softwarové inženýrství":
7. XSLT: dostanete nějaký stylesheet, který transformuje zadané XML do HTML, a máte napsat, jaký bude výsledek. Šlo o celkem triviální převod seznamu zaměstnanců do odrážkového seznamu.
8. C++: v zadání je třída Matrix, shromažďující prvky matice v lineárním vektoru. Pomocí traits a policy classes zajistěte, aby si uživatel mohl vybrat, zda chce v tom vektoru mít prvky řazené sloupec po sloupci, nebo řádek po řádku.
9. Návrhové vzory: pro univerzitu děláme nový SIS. Lidé ze školy jsou buď studenti, učitelé, nebo zaměstnanci a tyto typy se zřejmě nebudou rozšiřovat. Chceme být schopni jednoduše implementovat nové operace, protože rektorát vydává stále nové předpisy. Udělejte návrh business logiky (tj. neřešte frontend ani ukládání do databáze) a použijte k tomu nějaký návrhový vzor/vzory. Ukažte, co implementovat/změnit, pokud vytvoříme novou operaci, která má za úkol u studentů zjistit průměrnou dobu studia. Co je třeba změnit, pokud porušíme podmínku v zadání a přidáme nový typ člověka Knihovník?
===
Bylo to jednodušší, než jsem čekal, ale taky zdlouhavější. Začínali jsme v 8.45, odcházel jsem v 13.30 a to většina ještě psala. Pangrác byl z toho evidentně překvapený