Popis:
		Datové struktury a jejich aplikace
- Typy a charakteristika datových struktur (pole, spojové seznamy, tabulky, stromy). Prohledávání a práce s daty v datových strukturách.
- Využití datových struktur v operačních systémech, databázích, grafice apod.
- Implementace datových struktur objektově orientovaným přístupem.
- Implementace datových struktur v knihovnách objektově orientovaných tříd.
- Praktický příklad vlastního využití vybrané datové struktury.
1. Typy a charakteristika datových struktur (pole, spojové seznamy, tabulky, stromy). Prohledávání a práce s daty v datových strukturách.
- Datové struktur nesou informace, nebo data.
Typy a charakteristika:
• Statické - struktury, které vzniknou na začátku programu a jejich rozsah, délka se během programu nemění (pole, statická proměnná). Po celou dobu programu se chovají stejně počínaje jejich deklarací.
• Dynamické - jsou to sturktury, které se vytvářejí za běhu programu. Jejich délka v operační paměti se během programu mění. Můžeme měnit jejich rozsah v závislosti běhu programu.
		
        
    
    Klíčová slova:
		
		  		  programování
		  		  operační systémy
		  		  datové struktury
		  		  aplikace
		  		  objektově orientované programování
		  		  algoritmy
		  		  operační systém
		  		
		
				
		
		Obsah:
		
				- 1. Datové struktury a jejich aplikace
 ̶ Typy a charakteristika datových struktur (pole, spojové seznamy, tabulky, stromy). Prohledávání a práce s daty v datových strukturách.
 ̶ Využití datových struktur v operačních systémech, databázích, grafice apod.
 ̶ Implementace datových struktur objektově orientovaným přístupem.
 ̶ Implementace datových struktur v knihovnách objektově orientovaných tříd.
 ̶ Praktický příklad vlastního využití vybrané datové struktury.
 
 2. Návrh sítě
 Návrh lokální počítačové sítě Jako odpověď se očekává:
 ̶ Konkrétní návrh propojení do LAN sítě splňující požadavky níže.
 ̶ Srovnání potenciálních OS a hardwarových prostředků.
 Informace o vytvářené síti:
 Máme 20 PC rozmístěných ve 4 sousedících místnostech, z nichž každá má délku stěny 15 metrů. Výše zmíněná PC nejsou nijak propojena. Navrhněte vhodný způsob propojení PC s cílem mít možnost sdílet data navzájem a z nově pořízeného souborového a aplikačního serveru, a sdílet připojení k Internetu. Návrh musí obsahovat:
 • druh hardwaru (např. síťové adaptéry, aktivní síťové prvky) použité k propojení (včetně uvedení příslušných standardů, které má hardware splňovat)
 • protokoly (od síťové vrstvy po aplikační) použité pro komunikaci PC mezi sebou;
 • síťové adresy, které budou použity, a způsob jejich získání/určení;
 • způsob zajištění individuálního nastavení dostupnosti Internetových služeb pro jednotlivá PC;
 • způsob zabezpečení dat v síti před neoprávněným přístupem.
 Návrh možných technologií/protokolů (student nemusí využít):
 • IEEE 802.3, IEEE 802.11, IEEE 802.1q (VLAN), IPv4, IPv6, TCP, UDP, DHCP, NAT, ARP, HTTPS, SSH, …
 
 3. Základy objektově orientované programování
 ̶ Objektově orientované paradigma.
 ̶ Základní přínosy objektově orientovaného přístupu a jejich aplikace (stabilita návrhu, znovu použitelnost, třída, objekt, jev, koncept).
 ̶ Dědičnost a skládání objektů, praktické použití (výhody a nevýhody).
 ̶ Knihovna tříd, rozhraní, implementace, praktické použití.
 
 4. Návrh a využití objektově orientovaného přístupu
 ̶ UML a jeho diagramy, diagram tříd, praktické využití.
 ̶ Kompozice a agregace objektů, praktické použití.
 ̶ Návrhové vzory a jejich použití (singleton, přepravka atd).
 ̶ Polymorfismus, polymorfní objekt, příklad praktického využití.
 
 5. Architektura operačních systémů a počítačových sítí
 ̶ Základní typy a charakteristika operačních systémů, jejich vazba na počítačové sítě.
 ̶ Hierarchická struktura operačních systémů.
 ̶ Správa procesů (multitasking, multithreading).
 ̶ Metody přidělování paměti procesům. Struktura paměťového prostoru procesu. Jejich vliv na použití dynamických proměnných v programech.
 ̶ Souborové systémy (MS Windows, Linux).
 
 6. Algoritmy
 ̶ Charakterizujte základní vlastnosti algoritmů, jejich návrhu a zápis.
 ̶ Srovnejte a charakterizujte algoritmy třídění a vyhledávání. Na praktických příkladech uveďte jejich nejvhodnější využití.
 ̶ Rekurzivní algoritmy a jejich použití.
 ̶ Implementace algoritmů v knihovnách (instanční a třídní metody).
 
 7. Administrace a bezpečnost počítačových sítí a operačních systémů
 Zadání úkolu: Navrhněte pro malou (např. domácí) LAN síť popsanou dále možné způsoby zabezpečení dat před neoprávněným přístupem zvenčí i zevnitř. Návrh musí obsahovat potřebný software, použité operační systémy a jejich konfiguraci.
 Popis sítě: síť 2 PC, 3 notebooky a 5 mobilních zařízení (smartphone, tablet apod.) propojená zčásti sítí 100BaseTX, zčásti sítí podle IEEE 802.11b/g se sdíleným přístupem k Internetu. Návrh musí obsahovat:
 • způsob, jak zajistit individuální nastavení dostupnosti Internetových služeb pro jednotlivé uživatele (nikoli zařízení!);
 • možné způsoby ochrany dat podle vrstev RM ISO/OSI;
 • použité protokoly pro zabezpečení alespoň na 2 vrstvách RM ISO/OSI, povinně na aplikační vrstvě alespoň pro aplikace WWW, el. pošta, FTP;
 • návrh použitých síťových adres a jejich přidělení;
 • můžete uvést také protokoly a opatření pro bezpečnou administraci síťových zařízení (např. router, switch, AP - jejich rozmístění a topologii si navrhněte sami).
 Návrh možných technologií/protokolů (student nemusí využít):
 • WEP, WPA, WPA2, IEEE 802.1q (VLAN), SSL, SSH, S-MIME, HTTPS, DES, AES, RSA, certifikáty, ...