Seriály
33. Počítačová grafika
Pojďme si hrát s barvami, náhodnými vzory, paprsky světla a podivnými objekty z hlubin matematiky! Tématem tohoto seriálu je počítačová grafika a generování obrazu pomocí shaderů. Přiblížime základní principy vykreslování, ale především ukážeme, že i z pár řádků kódu mohou vypadnout velmi zajímavé obrázky či animace a že experimentovat s nimi je velká zábava.
32. Velká data
Svět kolem nás je velký a složitý, ale ledacos v něm už umíme popsat počítači srozumitelnými daty: třeba mapami a jízdními řády. Některé z těchto souborů dat prozkoumáme a ukážeme, jak z nich počítat různé zajímavé věci.
31. Uživatelské rozhraní v QT
Prozkoumáme, jak se píší programy, které s uživatelem komunikují pomocí okének, tlačítek, myšítek apod. Předvedeme si to na Pythonu a knihovně QT, ale princip programů řízených událostmi je mnohem obecnější.
30. Assembler
Tentokrát se podíváme, co se děje uvnitř počítače. Budeme si užívat nízkoúrovňové programování v instrukcích procesoru, tedy v assembleru. Začneme jednoduchými příklady a dostaneme se až k tomu, jak funguje operační systém či víceprocesorových počítač. Vše si předvedeme na architektuře ARM.
29. Stromové algoritmy
Mnoho algoritmů se točí okolo zpracování stromů a lesů (grafů bez cyklů). Pojďme se podívat na základní techniky, na kterých jsou postavené: DFS číslování, reprezentace intervalovými stromy, ET-posloupnosti a dekompozice na cesty.
28. Umělá inteligence
Umělá inteligence je často skloňovaným pojmem, pod kterým se schovává mnoho zajímavých technik. Podíváme se na některé z nich: evoluční a genetické algoritmy, optimalizace pomocí hejna, základy strojového učení a neuronových sítí.
27. UNIX
Jednou z nejmocnějších součástí UNIXových operačních systémů je jejich shell (přespolními nazývaný příkazová řádka). Tento seriál ukazuje, jak se shell používá, jak se v něm programuje a jak ho používat k řízení ostatních programů.
26. Výpočetní modely
Krajinou Turingových strojů, přepisovacích pravidel a dalších teoretických modelů počítačů. Správné pochopení fungování těchto modelů nám může velmi pomoci třeba v dokazování fungování normálních programů, ve vymýšlení programovacích jazyků a v určování jejich výpočetní síly.
25. TeX
„Proč se mi jenom ta knížka tak dobře čte?“ S pomocí typografického systému TeX je možné hezky sázet nejenom knihy a matematické vzorce, ale prakticky cokoliv, co je menší než 5 × 5 metrů. A někdy i víc. :-)
24. Kombinatorická teorie her a herní algoritmy
Jakým způsobem získávají počítače náskok před lidským rozumem? Poziční hry (variace na piškvorky), Minimax, Alfa-beta prořezávání, transpoziční tabulky a jiná vylepšení Minimaxu. Nadreálná čísla a co na to pan Conway. V posledním díle jsme se vrhli na analýzu deskové hry Dvonn.
23. Regulární výrazy
Regulární výrazy jsou mocnými praktickými nástroji pro rychlou práci s textem.
22. (4., 5. série) APL
Prastarý vysokoúrovňový jazyk s odvážnou syntaxí, která se zaměřuje na rychlou práci s vektory a maticemi.
22. (1.-3. série) Erlang
Erlang je moderní funkcionální jazyk se silnou podporou paralelního zpracování.
21. RAPL
V tomto ročníku jsme si zavedli jednoduchý imperativní „Raw Abbreviated Programming Language“, jehož programy jsme se snažili různě zkracovat, zrychlovat a paměťově uskrovňovat.
20. Hradla
Jak funguje nejnižší úroveň zpracování informací v počítači? Tím se zabývá tzv. číslicová technika.
19. Prolog
Nechce-li se nám počítači předepisovat jak má co dělat, můžeme mu zkusit toliko přesně popsat situaci a doufat, že se tím nějak prokouše (čti: probacktrackuje) sám. Překvapivě se ukáže, že taková metoda klade na hlavu programátorovu daleko větší zátěž (čti: je to zábava!).
18. Kompilátory
Před dávnými časy se počítače programovaly přímo ve strojovém kódu – tj. programátor psal řady čísel. Napsat takto jakýkoliv rozsáhlejší program bylo samozřejmě velmi obtížné, o hledání a opravování chyb ani nemluvě. Proto se brzy objevily nástroje, které tuto činnost usnadňovaly.
17. Automaty a gramatiky
Automaty a gramatiky jsou teoretickým nástrojem pro popis posloupností symbolů (aritmetických výrazů, zdrojových kódů) a práci s nimi (kompilování, komprimování, vyhledávání).
16. Pravděpodobností algoritmy
Co to je? Inu je to vlastně obyčejný algoritmus, který ale navíc při svém běhu využívá náhodná čísla. Asi si řeknete: „K čemu nám jsou náhodná čísla dobrá?“ Ač to je možná na první pohled překvapivé, náhodná čísla mohou pomoci výrazně urychlit běh našeho algoritmu.
15. Haskell
Haskell je velmi moderní a krásný čistě funkcionální jazyk.
14. Turingovy stroje
Pro teoretické uchopení podstaty práce počítače se používá několik tzv. výpočetních modelů: Turingův stroj je jeden z nejstarších a nejznámějších.
13. LISP
LISP je starý funkcionální jazyk vynikající množstvím závorek a dialektů.
12. PRAM
„Parallel Random Access Machine“ je výpočetní model zachycující pojem paralelního počítače.