I2 - Softwarové inženýrství - 16. 6. 2015
Napsal: 19. 6. 2015 15:25
Tak se rozloučím se zdejším fórem svými otázkami u státnic:
1) Složitost a vyčíslitelnost: Algoritmická rozhodnutelnost (zkoušející mně neznámý). Popsal jsem halting problem, neformálně dokázal jeho nerozhodnutelnost (použitím intuitivních pojmů jako "program" a jeho "kód"), napsal formální definici halting problému coby jazyka a množiny, provedl formálnější důkaz, že ona množina (resp. její diagonála) není rekurzivní. Doplňující otázka na význam pojmů "rekurzivně spočetná množina" a "rekurzivní množina". Definoval jsem pro množiny a jazyky. Otázka, zda jsou i jiné nerozhodnutelné problémy. Napsal jsem Riceovu větu a popsal její důsledek pro obecnou rozhodnutelnost otázek ohledně algoritmů. Otázka, zda existují i nerozhodnutelné problémy, které se neptají přímo na vlastnosti algoritmů. Řekl jsem, že určitě ano, ale na žádný si nevzpomenu. Byl mi dán příklad takového problému, už si přesně nevzpomenu, šlo o cosi s existencí celočíselných kořenů nějaké rovnice.
2) Datové struktury: Třídění ve vnitřní a vnější paměti (zkoušející mně neznámý). Pohodová otázka. Přehledově jsem popsal všechny běžné algoritmy a jejich výhody a nevýhody. Stačilo ke spokojenosti zkoušejícího.
3) Formální základy softwarového inženýrství: Algebraické specifikace (Bednárek). Neformálně jsem popsal, co to je a k čemu to je, a ukázal na příkladu přirozených čísel a zásobníku. Diskuze nad možnostmi indikace chybového stavu (speciální zásobník "error" či poddruh "neprázdný zásobník"). Otázka na možnosti dokazování nad takovou specifikací, no moc jsem tomu nerozuměl, ale zkoušejícímu šlo o to, že některé ty operace se označí jako konstruktory a pak uvažujeme jedině hodnoty sestavené pomocí těchto konstruktorů a nad takto vymezenými hodnotami už lze odvozovat věci. Otázka, kde jsou algebraické specifikace nevhodné, řekl jsem, že pokud máme složitý globální stav, který se mění. Ještě chtěl slyšet, že nejsou vhodné pro modelování souběžných a časovaných procesů.
4) Analýza, návrh a management softwarových systémů: Validace, verifikace, testování (Kruliš). Volná rozprava na dané téma, včetně formální verifikace.
5) Vývoj softwarových systémů: Vývojová prostředí, nástroje pro ladění a testování výkonu, akceptační a produkční prostředí, distribuce a instalace SW (zkoušející mně neznámý). Volná rozprava na daná témata.
Známka za jedna, takže jsem byl spokojený. Své zkoušející jsem až na dva moc neznal, ale pohybovalo se mezi námi mnoho známých vyučujících a každý student měl svou unikátní permutaci zkoušejících.
Velmi děkuji ostatním za materiály (hlavně tento dokument, který posloužil jako osnova, a všechny materiály pohromadě a se zvýrazněním), hodně mi pomohly připravit se na státnice v šibeničním termínu 14 dnů, a to abych tak řekl "z nuly na sto", neboť jsem si již docela odvykl na učení a zkoušky. Pro informaci:
4 dny na Složitost a vyčíslitelnost (až na výjimky z vlastních výpisků)
4 dny na Datové struktury (až na výjimky z vlastních výpisků)
4 dny na zbylé 3 předměty (ale byly to hodně perné 4 dny v dost nouzovém režimu)
2 dny na opakování (ale ten první jsem si navíc musel připravit obhajobu diplomky a ten druhý ji absolvovat)
Prvních 12 dnů znamenalo tvorbu výpisků drobným písmem na listy A5 (celkem popsáno cca 70 listů), poslední 2 dny jejich opakované pročítání.
Byl to dost záhul, ale konec dobrý, všechno dobré.
1) Složitost a vyčíslitelnost: Algoritmická rozhodnutelnost (zkoušející mně neznámý). Popsal jsem halting problem, neformálně dokázal jeho nerozhodnutelnost (použitím intuitivních pojmů jako "program" a jeho "kód"), napsal formální definici halting problému coby jazyka a množiny, provedl formálnější důkaz, že ona množina (resp. její diagonála) není rekurzivní. Doplňující otázka na význam pojmů "rekurzivně spočetná množina" a "rekurzivní množina". Definoval jsem pro množiny a jazyky. Otázka, zda jsou i jiné nerozhodnutelné problémy. Napsal jsem Riceovu větu a popsal její důsledek pro obecnou rozhodnutelnost otázek ohledně algoritmů. Otázka, zda existují i nerozhodnutelné problémy, které se neptají přímo na vlastnosti algoritmů. Řekl jsem, že určitě ano, ale na žádný si nevzpomenu. Byl mi dán příklad takového problému, už si přesně nevzpomenu, šlo o cosi s existencí celočíselných kořenů nějaké rovnice.
2) Datové struktury: Třídění ve vnitřní a vnější paměti (zkoušející mně neznámý). Pohodová otázka. Přehledově jsem popsal všechny běžné algoritmy a jejich výhody a nevýhody. Stačilo ke spokojenosti zkoušejícího.
3) Formální základy softwarového inženýrství: Algebraické specifikace (Bednárek). Neformálně jsem popsal, co to je a k čemu to je, a ukázal na příkladu přirozených čísel a zásobníku. Diskuze nad možnostmi indikace chybového stavu (speciální zásobník "error" či poddruh "neprázdný zásobník"). Otázka na možnosti dokazování nad takovou specifikací, no moc jsem tomu nerozuměl, ale zkoušejícímu šlo o to, že některé ty operace se označí jako konstruktory a pak uvažujeme jedině hodnoty sestavené pomocí těchto konstruktorů a nad takto vymezenými hodnotami už lze odvozovat věci. Otázka, kde jsou algebraické specifikace nevhodné, řekl jsem, že pokud máme složitý globální stav, který se mění. Ještě chtěl slyšet, že nejsou vhodné pro modelování souběžných a časovaných procesů.
4) Analýza, návrh a management softwarových systémů: Validace, verifikace, testování (Kruliš). Volná rozprava na dané téma, včetně formální verifikace.
5) Vývoj softwarových systémů: Vývojová prostředí, nástroje pro ladění a testování výkonu, akceptační a produkční prostředí, distribuce a instalace SW (zkoušející mně neznámý). Volná rozprava na daná témata.
Známka za jedna, takže jsem byl spokojený. Své zkoušející jsem až na dva moc neznal, ale pohybovalo se mezi námi mnoho známých vyučujících a každý student měl svou unikátní permutaci zkoušejících.
Velmi děkuji ostatním za materiály (hlavně tento dokument, který posloužil jako osnova, a všechny materiály pohromadě a se zvýrazněním), hodně mi pomohly připravit se na státnice v šibeničním termínu 14 dnů, a to abych tak řekl "z nuly na sto", neboť jsem si již docela odvykl na učení a zkoušky. Pro informaci:
4 dny na Složitost a vyčíslitelnost (až na výjimky z vlastních výpisků)
4 dny na Datové struktury (až na výjimky z vlastních výpisků)
4 dny na zbylé 3 předměty (ale byly to hodně perné 4 dny v dost nouzovém režimu)
2 dny na opakování (ale ten první jsem si navíc musel připravit obhajobu diplomky a ten druhý ji absolvovat)
Prvních 12 dnů znamenalo tvorbu výpisků drobným písmem na listy A5 (celkem popsáno cca 70 listů), poslední 2 dny jejich opakované pročítání.
Byl to dost záhul, ale konec dobrý, všechno dobré.