Bakalářská státnice - Informatika - Základy informatiky - obor Programování

Z ωικι.matfyz.cz
Přejít na: navigace, hledání

Súvisiace stránky: Státnice, Základy matematiky, Obecná informatika, Správa počítačových systémů

Tato stránka není kompletní a/nebo může obsahovat chyby!

Obsah

Základy teoretické informatiky[editovat | editovat zdroj]

Zkompilovaná verze textu ze SVN státnicových otázek (pozor, nemusí být nutně aktuální).

Požadavky:[1]

  • Logika
    • jazyk, formule, sémantika, tautologie
    • Rozhodnutelnost, splnitelnost, pravdivost, dokazatelnost
    • Normální tvary výrokových formulí, prenexní tvary formulí predikátové logiky
  • Automaty
    • Chomského hierarchie
    • třídy automatů a gramatik
    • determinismus a nedeterminismus

Logika - jazyk.[editovat | editovat zdroj]

Formule.[editovat | editovat zdroj]

Sémantika.[editovat | editovat zdroj]

Tautologie.[editovat | editovat zdroj]

Rozhodnutelnost.[editovat | editovat zdroj]

Splnitelnost.[editovat | editovat zdroj]

Pravdivost.[editovat | editovat zdroj]

Dokazatelnost.[editovat | editovat zdroj]

Normální tvary výrokových formulí.[editovat | editovat zdroj]

  • Věta o ekvivalenci. (zdroj: Štepánkův slajd 8 z VL3.pdf) (Jesliže jsou podformule A1..An fle A ekvivalentní s A'1..A'n a A' vytvořím záměnou těchto podformulí, je i A ekvivalentní s A')
  • Důkaz rozborem případů. (zdroj: Štepánkův slajd 15 z VL3.pdf) ( T mn. flí a A,B,C fle pak T,(A v B) |- C právě když T,A|-C a T,B|-C )
  • CNF a DNF. (zdroj: Štepánkův slajd 20 z VL3.pdf) (klauzule = disjunkce literlů, pak CNF je konjunkce klauzulí a DNF je disjunkce konjunkcí literálů)
  • Věta o normálních tvarech. (zdroj: Štepánkův slajd 22 z VL3.pdf) (Ke každé formuli lze sestrojit ekvivalentní formuli v CNF nebo DNF)

Prenexní tvary formulí predikátové logiky.[editovat | editovat zdroj]

Automaty - Chomského hierarchie.[editovat | editovat zdroj]

Třídy automatů a gramatik.[editovat | editovat zdroj]

Determinismus a nedeterminismus.[editovat | editovat zdroj]

  • Nedeterministický konečný automat. (zdroje: Bartákův slajd 4 z lecture03.pdf / wikipedie)
  • Deterministický zásobníkový automat rozeznává jen deterministické BK jazyky (podmnožina BK jazyků)
  • Turingův stroj: DTS = NTS
  • Konečný automat: DKA = NKA

Algoritmy a datové struktury[editovat | editovat zdroj]

Zkompilovaná verze textu ze SVN státnicových otázek (pozor, nemusí být nutně aktuální).

Základní algoritmy - třídění.[editovat | editovat zdroj]

Vyhledávání.[editovat | editovat zdroj]

  • Lineární vyhledávání. (zdroj: wikipedie)
  • Binární vyhledávání. (zdroj: wikipedie)
    • Interpolační vyhledávání. (zdroj: wikipedie)
  • Hledání k-tého největšího prvku. (zdroj: wikipedie)

Algoritmy vyhledávání v textu.[editovat | editovat zdroj]

Kombinatorické algoritmy.[editovat | editovat zdroj]

  • Lineární programování a simplexová metoda. (zdroj: Berkeley)
  • Rychlá Fourierova transformace. (zdroj: Berkeley)

Grafové algoritmy - nejkratší cesta.[editovat | editovat zdroj]

  • Dijkstrův algoritmus. (zdroj: wikipedie)
  • Bellman-Fordův algoritmus. (zdroj: wikipedie)
  • Floyd-Warshallův algoritmus. (zdroj: wikipedie)
slidy ze složitosti
skripta diskrétní mat. z všb

Minimální kostra.[editovat | editovat zdroj]

Prohledávání grafů.[editovat | editovat zdroj]

Barvení grafů.[editovat | editovat zdroj]

Časová a prostorová složitost algoritmů.[editovat | editovat zdroj]

NP-úplnost.[editovat | editovat zdroj]

Něco málo je popsáno na posledních slajdech na tomto odkazu (Čepek-ADS): [2] A o něco více na (zdroje: Čepkovy slajdy Složitost I od str.48)

Shrnutí složitosti algoritmů na WolframMathWorld

Metoda rozděl a panuj.[editovat | editovat zdroj]

Lineární struktury.[editovat | editovat zdroj]

  • Pole.
  • Množina.
  • Spojový seznam.
    • Dvousměrný spojový seznam.
  • Zásobník.
    • Oboustranný zásobník.
  • Fronta.
    • Oboustranná fronta.
    • Prioritní fronta.

Stromové struktury.[editovat | editovat zdroj]

Haldy.[editovat | editovat zdroj]

Hašování.[editovat | editovat zdroj]

(zdroj: Skripta Dat.Struktury - Koubek)

  • Hašovací funkce. (zdroj: wikipedie)
  • Hašovací tabulka. (zdroj: wikipedie)
  • Hašování se separovanými řetězci
  • Hašování s uspořádanými řetězci
  • Hašování s přemísťováním
  • Hašování se dvěma ukazateli
  • Srůstající hašování (LISCH, EISCH, LICH, EICH, VICH)
  • Hašování s lineárním přidáváním
  • Dvojité hašování
  • Univerzální hašování
  • Perfektní hašování

Databáze[editovat | editovat zdroj]

Zkompilovaná verze textu ze SVN státnicových otázek (pozor, nemusí být nutně aktuální).

Podstata a architektury DB systémů. Konceptuální, logická a fyzická úroveň pohledů na data.[editovat | editovat zdroj]

  • Architektura DB systémů. (zdroj: wikipedie, Architektury DB)
  • Architektura DB systémů a ostatně vše kolem databází (zdroj: [3])
  • Konceptuální, logická a fyzická úroveň pohledů na data. (zdroj: wikipedie)

Algoritmy návrhu schémat relací.[editovat | editovat zdroj]

Normální formy.[editovat | editovat zdroj]

Referenční integrita.[editovat | editovat zdroj]

Transakční zpracování.[editovat | editovat zdroj]

Uzamykací protokoly.[editovat | editovat zdroj]

  • Protokoly řízení konfliktů. (zdroj: wikipedie)
  • Plán, sériový plán. (zdroj: wikipedie)
  • 2-fázové zamykání. (zdroj: wikipedie)
  • Striktní 2-fázové zamykání. (zdroj: wikipedie)
  • Rigorózní 2-fázové zamykání. (zdroj: wikipedie)
  • Konzervativní 2-fázové zamykání. (zdroj: wikipedie)

Zablokování.[editovat | editovat zdroj]

ER-diagramy.[editovat | editovat zdroj]

  • ER-diagramy. (zdroj: wikipedie)
  • Entita.
  • Vztah.
  • Atribut.
  • Slabé entitní typy.
  • Integritní omezení (kardinality).
  • Dědičnost (ISA-vztah).
  • Druhy dědičnosti (partial / exclusive, total / overlapping).

Metody návrhů IS.[editovat | editovat zdroj]

  • Asi obecné informace o návrhu tabulek.

Základy SQL.[editovat | editovat zdroj]

Indexy.[editovat | editovat zdroj]

  • Index. (zdroj: wikipedie).
  • Manipulace s indexy v SQL.

Triggery.[editovat | editovat zdroj]

  • Trigger. (zdroj: Kopeckého slajdy na Databázové aplikace)
  • Manipulace s triggery v SQL.

Uložené procedury.[editovat | editovat zdroj]

Uživatelé.[editovat | editovat zdroj]

  • Manipulace s uživateli. (zdroj: SQL Zoo)

Uživatelská práva.[editovat | editovat zdroj]

Vícevrstevné architektury.[editovat | editovat zdroj]

(zdroj: Slidy VUTBR)

Srovnání architektur: http://www.sei.cmu.edu/str/descriptions/clientserver.html

Vazba databází na internetové technologie.[editovat | editovat zdroj]

  • Niesom istý, ale možno tým je myslené niečo takéto (zdroj: fit.vutbr)

Programovací jazyky a překladače[editovat | editovat zdroj]

Zkompilovaná verze textu ze SVN státnicových otázek (pozor, nemusí být nutně aktuální).

Principy a implementace objektově orientovaných jazyků a jazyků s blokovou strukturou.[editovat | editovat zdroj]

  • Třída.
  • Dědičnost.
  • Polymorfismus.
  • Obalení.
  • Virtuální funkce. (zdroj: Bednárkuv slide [4] a [5])

Běhová podpora vyšších programovacích jazyků.[editovat | editovat zdroj]

Yaghobove slidy
  • Statická podpora a dynamická podpora.
  • Rozdělení paměti.
  • Stav paměti před spuštěním.
  • Konstruktory, destruktory globálních proměnných.
  • Volací konvence.

Oddělený překlad, sestavení, řízení překladu.[editovat | editovat zdroj]

slidy k přednášce PRG029 - Programování v C a C++

Makroprocesory, skriptovací jazyky.[editovat | editovat zdroj]

Neprocedurální programování.[editovat | editovat zdroj]

  • Neprocedurální, logické a funkcionální programování.
  • Prolog.
  • Haskell.
  • Lisp.

Struktura překladače, lexikální, syntaktická analýza.[editovat | editovat zdroj]

  • Lexikální analýza (token, pattern, lexém) (slidy Principy překladačů)
    • Pomocí konečného automatu
      • Chyba lexikální analýzy nastává když je ukončeno v nepříjmacím stavu (špatný vstup)
      • Řešení: ignorovat chybu, domyslet správn správný vstup
    • LA zdlouhavá -> Bufferování vstupu
    • Pro přenositelnost stačí měnit jen v LA
    • výstup - token (=vstup do syntaktické analýzy (=terminál))
    • pattern - regulární výraz, popisuje množinu řetězců pro určitý token
    • lexém (lexikální element) - odpovídá nějakému patternu nějakého tokenu
TokenLexémregulární výraz
whilewhilewhile
relop<,<=,=,<>,>,>=\<|\<=|=|\<>|>|>=
uint0, 123[0-9]+
  • Syntaktická analýza.
    • Pomocí zásobníkového automatu (BKG)
    • Zjišťuje, zda jsou slova na vstupu ze vstupního jazyka
    • Staví derivační strom, odstraňuje nejednoznačnosti jazyka (dangling else).
  • Sémantická analýza.
  • Generování mezikódu.
  • Optimalizace mezikódu.
  • Generování kódu.
  • Obsluha chyb.
  • Druhy jazyků (LR(0), LR(1), LR(k), SLR, LALR, GLR, LL(1), LL(k)).
slidy k přednášce principy překladačů
skripta k podobnému předmětu na slu.cz

Interpretované jazyky[editovat | editovat zdroj]

(slidy Principy překladačů (9))

  • Překlad do kódu abstraktního stroje.
  • Abstraktní stroj může běžet na různých OS (=přenositelnost)
  • Je to ale pomalejší
  • Překlad JIT (Just-in-time)
  • Dynamická alokace jen s garbage collectorem
  • Dnes typicky Java

Generické programování a knihovny[editovat | editovat zdroj]

Návrhové vzory.[editovat | editovat zdroj]

  • Diplomová práce na téma návrhové vzory [6]

Architektura počítačů a operačních systémů[editovat | editovat zdroj]

Zkompilovaná verze textu ze SVN státnicových otázek (pozor, nemusí být nutně aktuální).

Architektury počítače[editovat | editovat zdroj]

Procesory, multiprocesory[editovat | editovat zdroj]

Sběrnice, protokoly[editovat | editovat zdroj]

Vstupní a výstupní zařízení[editovat | editovat zdroj]

Architektury OS[editovat | editovat zdroj]

História OS

Monolitický systém (Linux, windows), virtuálne stroje (Java, AS400), Mikrokernel

slidy (Yaghob)
slidy z Mississippi College
Wikipedia - operační systém
Wikipedia - Jádro

Vztah OS a HW, obsluha přerušení[editovat | editovat zdroj]

Druhy prístupu k HW (port CPU, memory-mapped)

Druhy zariadení (blokové / znakové)

Prístup (sekvenčný / náhodný)

Synchrónnosť (disk vs. sieťovka)

Zdieľanie (sieťovka vs. tlačiareň) + spooling

Rýchlosť, smer dát (RO/RW...)

V sw: abstrakcia, jednotné pomenovanie, mount, obsluha chýb

Prerušenie, polling, DMA

Vrstvy I/O (hw -> obsluha prerušenia -> ovládač -> IO subsystém -> userspace IO)

Obsluha prerušenia (uloženie kontextu cpu, potvrdenie radiču, obsluha prerušenia, preplánovanie, obnova kontextu)

slidy (Yaghob)

Procesy, vlákna, plánování[editovat | editovat zdroj]

Definície, vlastnosti, rozdiely.... (win vs. lin)

Stavy procesu, súvislosť s prerušeniami

Plánovanie ((ne)preemptívne) - ciele, kritériá, priority

Plánovacie algoritmy: FIFO, Round robin, Viacero front so spätnou väzbou; SMP, Realtime; Win. vs Linux

slidy (Yaghob)

Synchronizační primitiva, vzájemné vyloučení[editovat | editovat zdroj]

Aktívne vs. pasívne čakanie, podmienky;

Aktívne: Petersnove riešenie, TSL

Pasívne: Zámky, monitory, semafory, správy (mutexy)

Obedujúci filozofovia, Problém ospalého holiča

slidy (Yaghob)

Zablokování a zotavení z něj[editovat | editovat zdroj]

Druhy prostriedkov (odnímateľné? ...), práca s nimi, Coffmanove podmienky,

Riešenie zablokovania: Pštrosí algoritmus, Detekcia a zotavenie, vyhýbanie sa, prevencia

slidy (Yaghob)

Organizace paměti, alokační algoritmy. Principy virtuální paměti, stránkování, algoritmy pro výměnu stránek, výpadek stránky, stránkovací tabulky, segmentace[editovat | editovat zdroj]

Hierarchia (veľkosť vs. rýchlosť)

Swapping, Preklad adries

Algoritmy prideľovania: first fit, best/worst fit, buddy systém

Virtuálna pamäť, stránkovanie (viacúrovňové)

TLB, (inverzné) stránkovanie, segmenty (stránkovanie+segmenty), použité tabuľky

Výpadky => výmena: Optimálna stránka, NRU, FIFO, druhá šanca, Hodiny, LRU, random [7]

slidy (Yaghob)

Systémy souborů, adresářové struktury[editovat | editovat zdroj]

Vlastnosti súborov, pomenovanie, štruktúra (lineárne vs. stromy vs. sekvenčné)

Prístup k súborom (sekvenčný, priamy, memory mapping)

Operácie so súbormi (copy, move...)

Adresáre (hierarchia: stromy, DAG, obecný graf)

Alokácia miesta pre súbory

NTFS, INODE, ext2...

slidy (Yaghob) / Technická univerzita Ostrava

Plánování pohybu hlav disků[editovat | editovat zdroj]

FCFS, SSTF, LOOK, CLOOK

RAID (pěkné vysvětlení RAIDů je na [8])

slidy (Yaghob)

Bezpečnost[editovat | editovat zdroj]

Ceile útokov, útočníci, autentikácia, vnútorné útoky (vírusy, trojany...), kryptografia (hash, crc, šifrovanie)

slidy (Yaghob)

Sítě a internetové technologie[editovat | editovat zdroj]

Zkompilovaná verze textu ze SVN státnicových otázek (pozor, nemusí být nutně aktuální).

ISO/OSI vrstevnatá architektura[editovat | editovat zdroj]

TCP/IP.[editovat | editovat zdroj]

Bezpečnost, firewally.[editovat | editovat zdroj]

Spojované a nespojované služby, spolehlivost[editovat | editovat zdroj]

Modulace, kódování[editovat | editovat zdroj]

Broadband Druhy kódování Manchester kód Modulácia Modulačná rýchlosť Prenosová rýchlosť Šírka pásma Shannonuv teorém

Topologie sítí[editovat | editovat zdroj]

HW a SW technická zařízení pro propojování sítí.[editovat | editovat zdroj]

Bezpečnost[editovat | editovat zdroj]

  • IPSec (zdroj: earchiv Jiřího Peterky) (Pozor! zdroje od profesora Peterky nejsou dostačující, pokud vás zkouší pan Galamboš!)

FUQS (frenquently unexpected questions) od p. Galambose:
- Jaký port používá IPSEC? - žádný, funguje nad síťovou vrstvou.
- Jak uzel A pošle uzlu B packet, když mezi nima stojí gateways, musí uzel A se nějak domlouvit s gateway, aby gateway zajistila IPSEC? - ne, prostě se gateway pošle natvrdo IPSEC packet a gateway podle hlavičky rozpozná, co má dělat.
- jiný zákeřňáky... doporučuju si přečíst slidy p. Galaboše z jeho stránek!(Soubor bohuzel uz neexistuje, zajimavy text jsem nasel tady:
An Illustrated Guide to IPsec ) (edit [4.9.2008]: súbor existuje, akurát je nutné ho zťahovať zo strojov v doméne mff.cuni.cz)
- pri googleni som našiel video z prednášky o IPSec(ČVUT 15.11.2003), možno to niekomu uľahčí učenie

  • principy fungování AH, ESP
    • transport mode
    • tunnel mode
  • firewall

Internetové a intranetové protokoly a technologie[editovat | editovat zdroj]

značkovací jazyky (XML, HTML)[editovat | editovat zdroj]