Seriály
35. Lineární algebra
Ponoříme se do světa vektorů a matic, které elegantně popisují geometrické objekty a operace s nimi. Lineární algebra vládne vědeckým výpočtům, a to i v oblastech, které s geometrií nemají téměř nic společného. Nabídne nám algoritmy na problémy, které se jinak řeší těžko, a mnoho dalších algoritmů pomocí jejích triků dokážeme zefektivnit.
- 35-1-S Lineární rovnice
- 35-2-S Lineární zobrazení
- 35-3-S Vektorové prostory
- 35-4-S Skalární součin
- 35-5-S Determinant
34. Manim
Animace jsou lepší než obrázky, ať už se jedná o prezentování zajímavého nápadu či vizualizaci běhu algoritmu. Proto je šikovné umět pěkné animace vytvářet, nejlépe programaticky. Právě k tomu slouží Pythoní knihovna Manim. Pojdme se naučit, jak se s ní zachází.
- 34-1-S Manimujeme – úvod
- 34-2-S Manimujeme – skupiny, transformace a updatery
- 34-3-S Manimujeme – kamera a grafy
- 34-4-S Manimujeme – 3D a grafy
- 34-5-S Manimujeme – vlastní animace a pluginy
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.
- 33-1-S Z hlubin fraktálů
- 33-2-S Šumy
- 33-3-S Světlo a stín
- 33-4-S Raytracing
- 33-5-S Globální iluminace a path tracing
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ší.
- 31-1-6 Hroznýšovo okno
- 31-2-6 Hroznýš v událostech
- 31-3-6 Model–ViewController
- 31-4-6 Kde je hroznýš? Kuk!
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.
- 30-1-7 Assembler
- 30-2-7 Paměť očima assembleru
- 30-3-7 Funkce očima assembleru
- 30-4-7 Překřikující se procesory
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.
- 29-1-7 Stromy kolem nás
- 29-2-7 Strom ve stromu
- 29-3-7 Stromoví předci
- 29-4-7 Rozebíráme stromy
- 29-5-7 Stromy v pohybu
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í.
- 28-1-8 Programování podle Darwina
- 28-2-8 Genetika vs. procházení krajiny
- 28-3-8 Inteligence hejna
- 28-4-8 Strojové učení
- 28-5-8 Neuronové 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ů.
- 27-1-7 Učíme se s UNIXem
- 27-2-7 Shellové skripty
- 27-3-7 UNIXové déjà vu
- 27-4-7 Nástroj pro zpracování textu
- 27-5-7 Shellová automatizace
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.
- 26-1-8 Turingova strojovna
- 26-2-8 Továrna na přepisování
- 26-3-8 Zdivočelá počítadla
- 26-4-8 Dlaždičky
- 26-5-8 Automatizovaný graf
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. :-)
- 25-1-8 Sázíme v TeXu
- 25-2-7 Zaléváme dokument
- 25-3-8 Tabulatika
- 25-4-8 TeXgramy
- 25-5-8 Boxy, z TeXu ven!
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.
- 24-1-8 Pojďte pane, budeme si hrát
- 24-2-8 Alfa-beta ořezávání a piškvorky
- 24-3-8 Sčítáme hry s panem Conwayem
- 24-4-8 O hrách a číslech
- 24-5-8 Jak hraje deskovky počítač?
23. Regulární výrazy
Regulární výrazy jsou mocnými praktickými nástroji pro rychlou práci s textem.
- 23-1-7 Regulární výrazy
- 23-2-7 Regulomaty
- 23-3-7 Automaty stokrát jinak
- 23-4-7 Bratrstvo Seda a Grepa
- 23-5-7 Perlím, Perlíš, Perlíme
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.
- 21-1-6 Nejkratší vyhrává
- 21-2-6 Nejkratší opět vyhrává
- 21-3-6 Pan Cowmess
- 21-4-6 Nejtěžší číslo
- 21-5-6 Kržnc
20. Hradla
Jak funguje nejnižší úroveň zpracování informací v počítači? Tím se zabývá tzv. číslicová technika.
- 20-1-6 Hrady, hrádky, hradla
- 20-2-6 Hrady, hrádky, hradla
- 20-3-6 Hrady, hrádky, hradla
- 20-4-6 Hrady, hrádky, hradla
- 20-5-6 Hrady, hrádky, hradla
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.
- 18-1-6 Kompilované komplikátory
- 18-2-6 Dominující komplikátory
- 18-3-6 Komplikovanější komplikátory
- 18-4-6 Komplikátorový fígl
- 18-5-6 Profilování
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í).
- 17-1-5 Jazykozpytcův poklad
- 17-2-5 Jazykozpytcova pomsta
- 17-3-5 Jazykozpytcova naděje
- 17-4-5 Jazykozpytec vrací úder
- 17-5-5 Jazykozpytec se loučí
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.
- 16-1-5 Pravděpodobnostní algoritmy
- 16-2-5 Král Popleta
- 16-3-6 Matematikova sonda
- 16-4-6 Šikmá věž v Kocourkově
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.
- 14-1-5 Turingovy stroje
- 14-2-5 Turingovy stroje
- 14-3-5 Turingův problém
- 14-4-5 Turingovy stroje
- 14-5-4 Turingovy stroje
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.