Pg (pokročilí)

Prerekvizity

Zaprvé je nutné vědět něco o tématech, co se probíraly na semináři PgU. Není nutné, abyste v minulosti prošli seminářem PgU (sám jsem to tak udělal).

Pokud jste ale v životě neprogramovali nebo jste se nikdy v životě s informatikou nesetkali, není pro vás tento seminář bez absolvování PgU vhodný. Pokud se někdo takový ale najde a přesto by chtěl na seminář přicházet, napište mi a probereme možnosti.

Požadavky na úspěšné zakončení předmětu

Platí společná pravidla napsaná zde. Podtrženo sečteno musíte splnit následující:

  • Získat alespoň 50 % bodů (známkování naleznete zde)
  • Nepodvádět, protože to vám může vysloužit (N) na vysvědčení. Nedělějte to, nechce se mi to řešit.
  • Pro maturanty: odevzdat maturitní práci splňující požadavky určené maturitní vyhláškou MŠMT v termínu určeném ředitelem školy.

Kalendář důležitých událostí

DatumUdálost
1. záříZačátek školního roku
1. listopaduSchválené téma maturitní práce
2. dubnaPředvedení maturitní práce (může být WIP)
23. dubnaOdevzdání maturitní práce
první polovina květnaZpracování a rozeslání posudků
koncem květnaMaturitní zkouška

Maturita

Upozornění: v době maturitních zkoušek jsou tyto informace neoficiálního informativního charakteru. Vždy konzultujte školní web.

No, tohle je téma samo o sobě. hodně se tady toho objeví, až bude čas. Zatím se ale musíte soustředit na dvě věci — výběr témata maturitní práce a opakování témat ze semináře PgU.

Téma mi odevzdejte do 1. listopadu a to po konzultaci. Prosím vás, promyslete to a pokud si nebudete čímkoliv jisti (náročností tématu, nejistotou, apod.), napište mi.

Předběžné materiály k maturitní zkoušce:

Maturitní otázky s klíčovými slovy

1
Datové typy a jejich reprezentace: int, double, struktura, pole, objekt, ukazatel, serializace, YAML, CSV
Webové technologie: odkazy, MathML, stylování, skriptování, publikování, HTTP, selektor, kaskáda, preprocesor, sémantika
2
Databáze a SQL: tabulka, záznamy, datové typy, primární a cizí (foreign) klíče, index, SQL, SELECT, UPDATE & DELETE, CREATE & DROP
Hardware: periferie: sběrnice, protokoly, USB
3
Nástroje pro spolupráci při programování: mailing-list, Trac, Bugzilla, …
Zpracování aritmetického výrazu: lexer, parser, infixový a postfixový zápis, AST, CFG
4
Síťová komunikace: internet, TCP/IP, spolehlivost, adresování, socket
Textový procesor: styly, ODT, LibreOffice
5
Adresování na Internetu: IP & MAC adresa, port, proxy server, DNS, router, switch
Hardware: úložná zařízení: HDD, SSD, CD, kapacita-rychlost-cena
6
Počítačová grafika a barevné modely: barevné modely, princip uložení, BMP, PNG, JPEG, GIF, ODG, SVG
Modulární programování: knihovna, API, ABI, verzování knihoven, linker
7
Programovací jazyky: překladač, interpret, JIT, garbage collector
Alternativní textové formáty: Markdown & PanDoc, LaTeX
8
Virtualizace a cloud: virtualizace komponent (disk, síť, obrazovka), infrastruktura/platforma/software jako služba (IaaS/PaaS/Saas)
Historie hardware a software: relé, elektronky, děrné štítky, vícejádrové procesory, cloud, vzdálený přístup, internet
9
Verzovací systémy: revize, větev, repozitář, klon, fork, Git, Subversion
Číselné soustavy: Hornerovo schéma, převody
10
Kryptografie a ochrana informací: symetrické a asymetrické šifry, RSA, one-time pad, steganografie, solení (salt) hesel
Testování softwaru: unit testing, pokrytí kódu, druhy testů (funkční, výkonnostní, systémové, …), JUnit
11
Multimedia a jejich prezentace: kontejner, kodek, DVD, AVI, MP3, stopa, titulky, VGA, HDMI, DAC (D/A převodník)
Základy objektově orientovaného programování: zapouzdření, dědičnost, polymorfismus, rozhraní, emulace bez podpory překladače
12
Správa a zabezpečení počítačových systémů: VNC a SSH, firewall, aktualizace, hesla
Publikování na webu: protokoly, typy hostingů
13
Prohledávání do hloubky a do šířky: nalezení nejkratší cesty, průchod bludištěm, stavový prostor
Dávkové úlohy (práce v příkazové řádce): Bash, cURL, grep, sed
14
E-mail a instant messaging: protokoly, formát zpráv, SMTP, POP3, IMAP
Algoritmy třídění: bubble-sort, insertion-sort, quick-sort, složitost
15
Licencování softwaru a otevřený software: placený software, shareware, freeware, open source, GPL, BSD, CC, MIT
Specializované programovací jazyky: XSLT, R, JavaScript, shell, regulární výrazy, LaTeX
16
Hardware: CPU, paměť a architektura počítače: registry, cache, instrukční sada, jádra a vlákna, motherboard
Typografie: font, slitky, kerning, vdova, sirotek
17
Operační systémy a ovladače: souběh programů, ovladače, multitasking, uživatelské rozhraní
Uživatelská rozhraní a UX design: UX, uživatelské rozhraní, přístupnost
18
Grafy: graf, stupeň, posloupnosti vrcholů, strom, grafové algoritmy
Překladače a řízení překladu: front-end a back-end překladače, mezikód (bajtkód), make, npm
19
Dynamické datové struktury: binární strom, spojový seznam, paměťová náročnost
Nízkoúrovňové systémy a logika: hradlo, množina, logický obvod, mikrokontroler
20
3D tisk a CAD programy: FDM, SLA, SLS, materiály, troubleshooting tisku, modelování
Znak, řetězec a lokalizace: znakové sady, UTF, internacionalizace vs lokalizace, gettext