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.

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

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.