MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE A ALGORITMIZACE ÚLOHY 3 5) REKURZE 3 6) ZÁKLADNÍ DATOVÉ STRUKTURY 3 7) POKROČILÉ DATOVÉ STRUKTURY 3 8) PROCEDURÁLNÍ PROGRAMOVACÍ JAZYKY 3 9) ZÁKLADNÍ DATOVÉ TYPY 3 10) PŘEKLAD, LINKOVÁNÍ A INTERPRETACE 4 11) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ (DÁLE OOP) 4 12) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ OBJEKT JAKO PROMĚNNÁ 4 13) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ POLYMORFISMUS A DĚDIČNOST 4 14) KOMPONENTNÍ TECHNOLOGIE COM - ZÁKLADY 4 15) KOMPONENTNÍ TECHNOLOGIE COM PRAXE A PROVOZ V SÍTI 4 16) VISUÁLNÍ PROGRAMOVÁNÍ A ZPRACOVÁNÍ INFORMACÍ Z OKOLÍ 4 17) STRUKTURA PROGRAMU A PŘEKLAD V PROGRAMOVACÍCH JAZYCÍCH VB, C A C++ 5
18) PROGRAMOVACÍ JAZYK C A C++ - ZÁKLADNÍ DATOVÉ TYPY A UKAZATELE 5 19) PROGRAMOVACÍ JAZYK VISUAL BASIC (DÁLE VB) - ZÁKLADNÍ DATOVÉ TYPY A UKAZATELE 5 20) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ (DÁLE OOP) V C++ A VISUAL BASICU 5 21) STROJOVÝ KÓD ZÁKLADNÍ IDEJE 5 22) INTERNETOVÉ APLIKACE 5 23) STYLY V HTML, INTERNETOVÉ SERVERY 5 24) RELAČNÍ DATABÁZOVÉ SYSTÉMY 6 25) INFORMAČNÍ SYSTÉMY A SOFTWAROVÉ INŽENÝRSTVÍ 6 2
1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU a) zdrojový kód programu, vysokoúrovňový programovací jazyk, assembler (jazyk symbolických adres) základní terminologie: deklarace, definice, procedura, funkce b) kód cílového procesoru, vliv zvoleného programovacího jazyka na cílový kód c) kompatibilita na úrovni zdrojového kódu a na úrovni přeloženého kódu 2) HISTORIE TVORBY PROGRAMŮ a) historie tvorby programů, programování ve strojovém kódu, vysokoúrovňové programovací jazyky, objektové programování a komponentní technologie b) vliv zvoleného jazyka na náročnost tvorby programu, náklady na tvorbu programu c) životní cyklus programu, hodnocení náročnosti vývoje programu - metriky 3) SYNTAXE A SÉMANTIKA a) syntaxe a sémantika v programování b) proměnná, globální proměnná, lokální proměnná, souvislost se strojovým kódem c) dekompozice úlohy, vliv zvoleného jazyka na body a/, resp. b/ 4) SPECIFIKACE A ALGORITMIZACE ÚLOHY a) programování v týmu členové týmu pro velké projekty, specifikační dokument b) programování na papíře, vývojové diagramy, diagramy toku dat c) základní algoritmy třídění dat (selectsort, insertsort, bubblesort) 5) REKURZE a) vysvětlení pojmu rekurze, vliv na stabilitu programu, paměťová náročnost, rekurze přímá a vzájemná b) lokální a globální proměnné v kontextu rekurze, strojový kód a rekurze c) základní rekurzivní algoritmy faktoriál, Fibonacciho posloupnost, Hanojské věže 6) ZÁKLADNÍ DATOVÉ STRUKTURY d) užití datových struktur, pojem datové abstrakce, výhody užití OOP e) zásobník, fronta, tabulka užití, vlastnosti f) dynamická realizace datových struktur, řešení v jazyce C / C++ a Visual Basic 7) POKROČILÉ DATOVÉ STRUKTURY a) spojový seznam, binární strom, b-strom b) užití polí při realizaci datových struktur, alokace paměti, zhodnocení použití ukazatelů c) statická realizace datových struktur, řešení v jazyce C / C++ a Visual Basic 8) PROCEDURÁLNÍ PROGRAMOVACÍ JAZYKY a) historie vzniku procedurálních jazyků, procedurální jazyky a práce v týmu, nevýhody procedurálních programovacích jazyků objektivní kritika b) lokální a globální parametry procedur a funkcí, předávání parametrů a vracení výsledků c) parametry předávané hodnotou a odkazem 9) ZÁKLADNÍ DATOVÉ TYPY a) základní a odvozený datový typ, vliv technického vybavení (CPU) a programového vybavení (překladač, operační systém) na základní datové typy 3
b) datové typy jazyků C/C++, Visual Basic a ASSEMBLER (Jazyk Symbolických adres) ideové srovnání, uživatelem definovaný datový typ, struktura c) předávání parametrů při programování ve strojovém kódu 10) PŘEKLAD, LINKOVÁNÍ A INTERPRETACE a) zdrojový kód, OBJ kód, strojový kód, knihovny souvislosti s překladem kompilací a linkováním b) kompilace, linkování a interpretace u současných programovacích jazyků a skriptovacích jazyků (výčet + popis), zhodnocení výkonu c) programovací jazyk Java a byte-code, resp. prostředí dotnet a MIL 11) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ (dále OOP) a) motivace pro zavedení OOP, nevýhody klasického procedurálního programování b) základní postuláty OOP c) podpora pro OOP v programovacích jazycích Visual Basic (6, resp. 7) a C/C++ 12) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ OBJEKT JAKO PROMĚNNÁ a) základní pojmy objekt, objektová proměnná, třída a instance třídy, atributy, zprávy, metody b) konstruktor a destruktor objektu, dynamické datové struktury a dynamická práce s objekty c) práce s objekty v jazyce C++ / Visual Basic 6 / Visual Basic 7 základní postupy 13) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ POLYMORFISMUS A DĚDIČNOST a) dekompozice úlohy pro účely realizace metodikou OOP, vztah se softwarovým inženýrstvím? b) polymorfismus a jeho realizace v jazyce C++ / VB 6 / VB 7, užití při řešení reálných aplikací, přetěžování operátorů v C++ - idea c) dědičnost v kontextu přijímaní zpráv 14) KOMPONENTNÍ TECHNOLOGIE COM - základy a) vysvětlení pojmu, historický vývoj vzniku COM, chápání pojmu součástka b) tvorba programového vybavení s pomocí více jazyků možné komplikace a výhody c) rozhraní komponenty, metody a počítání referencí, instance komponenty výklad důsledků COM na práci s objekty ve VB6 (nová klíčová slova, management objektů) 15) KOMPONENTNÍ TECHNOLOGIE COM praxe a provoz v síti a) komponenty ve stávajícím aplikačním prostředí Windows (Office, VB, atd.), užití, výhody a nevýhody, přímo instancovatelná a vázaná komponenta (viz MS Excel), registrace komponent b) klient server aplikace a COM, postup při tvorbě komponent ve VB 6 srovnání rozdílů oproti vývoji OOP aplikací c) aplikace na lokálním stroji a aplikace v síti (proxy a stub), existující komplikace a jejich řešení 16) VISUÁLNÍ PROGRAMOVÁNÍ A ZPRACOVÁNÍ INFORMACÍ Z OKOLÍ a) řešení úloh s vazbou na okolí (vstup od uživatele myš / klávesnice, resp. práce s technickým vybavením počítače přídavné karty) v jazycích s podporou událostí a v klasickém procedurálním provedení 4
b) realizace sběru dat ve strojovém kódu c) dynamické datové alokace v jazyce C / C++ / VB 17) STRUKTURA PROGRAMU A PŘEKLAD V PROGRAMOVACÍCH JAZYCÍCH VB, C a C++ a) struktura programu v jazyce C, C++, VB 6, VB 7 základní rozdíly b) přechod od zdrojového kódu k běžící aplikaci v C / C++ a VB (preprocesor a jeho direktivy, kompilace, linkování interpretace) c) rozdíly v aplikacích dle interakce s uživatelem, vliv na kód ve VB / C / C++ 18) PROGRAMOVACÍ JAZYK C a C++ - ZÁKLADNÍ DATOVÉ TYPY A UKAZATELE a) základní datové typy, struktury a ukazatele, operátor sizeof, implicitní a explicitní typové konverze b) proměnná typu ukazatel, aritmetika ukazatelů, souvislost ukazatelů se strojovým kódem c) předávání parametrů do funkcí, vracení výsledků z funkcí 19) PROGRAMOVACÍ JAZYK VISUAL BASIC (dále VB) - ZÁKLADNÍ DATOVÉ TYPY A UKAZATELE a) základní datové typy, datový typ variant, datová náročnost jednotlivých datový typů, implicitní a explicitní typové konverze b) objektová proměnná, klíčové slovo set vazba na COM, srovnání ukazatelů v jazyce C / C++ a realizace v jazyce VB, ukazatele a objekty c) předávání parametrů do procedur a funkcí, vracení výsledků z funkcí 20) OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ (dále OOP) V C++ A VISUAL BASICU a) třída, instance třídy, objektová proměnná, deklarace a definice ve VB a C++ b) realizace dědičnosti a polymorfismu ve VB 6 / VB 7 / C++ c) kolekce v jazyce VB, modifikace integrovaného typu univerzální kolekce na speciální kolekci jednoho datového typu 21) STROJOVÝ KÓD ZÁKLADNÍ IDEJE a) základní idea strojového kódu, programátorský model CPU, zdrojový kód v jazyce symbolických adres, překlad programu, operační znak, direktivy preprocesoru b) kompatibilita, kompatibilita na úrovni zdrojového kódu a na úrovni přeloženého kódu, srovnání s procedurálními programovacími jazyky c) běh strojového programu v paměti strojový cyklus, přerušení a strojový kód 22) INTERNETOVÉ APLIKACE a) význam internetu, druhy aplikací, srovnání s vývojem neinternetových aplikací b) jazyk HTML rozdíl oproti VB / C / C++ atd., párové a nepárové tagy c) dynamické HTML, objektový model stránky, skriptovací jazyky a WWW stránka 23) STYLY V HTML, INTERNETOVÉ SERVERY a) kaskádové styly, motivace, realizace a užití, tabulkový layout, CSS layout b) možnosti současného trhu, licence a provoz aplikací z hlediska serveru c) internetová aplikace jako bezestavová transakce, session, cookies, idea ASP a ASPX 5
24) RELAČNÍ DATABÁZOVÉ SYSTÉMY a) tabulka, základní pojmy, relace b) jazyk SQL, selekce a restrikce v SQL c) operace skládání více tabulek do jedné operace JOIN 25) INFORMAČNÍ SYSTÉMY A SOFTWAROVÉ INŽENÝRSTVÍ a) informační systém, složky ekonomického informačního systému, architektura client/server a file/server, výkonnostní a cenové aspekty orientační přehled trhu, internet a IS (B2C, B2B) b) vývojové fáze softwaru životní cyklus, členové vývojového týmu, ISO a informační systémy / programování c) pravidlo 90:10, role nejlepších, vanová křivka, velikost vývojového týmu v čase 6