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, ...