Krutá Smršť Přednášek 2018

Seznam přednášek – Karolínka

Před hlasováním se musíš přihlásit na Smršť!

Milý účastníku přednáškové Smrště, máš možnost vybrat si přednášky předem, aby se organizátoři mohli pořádně připravit již před akcí a přednášky byly co nejkvalitnější.

Přednášky jsou rozděleny do dvou kategorií: matfyzácké (témata z informatiky, matematiky či fyziky) a nematfyzácké (všechno ostatní). Hlasování v každé kategorii probíhá nezávisle a budeme se snažit o rozumně vyvážené zastoupení obou kategorií (obvykle to bývá poměr zhruba 2:1 ve prospěch matfyzáckých). Z každé kategorie vybíráme primárně přednášky s nejvíce body, ale bereme ohled i na možnosti a preference přednášejících.

Po přihlášení (do webového účtu, který Ti byl vytvořen při registraci, nebo který jsi již předtím měl) můžeš každé přednášce přiřadit 0 až 100 bodů a tím si ji vybrat. Body jsou kladná celá čísla nebo 0 a jejich součet přes všechny přednášky v kategorii musí být menší nebo roven 100. Doporučujeme nevyplýtvat vše na pár přednášek (či dokonce jednu).

Hlasování končí ve středu 14. 11. večer. Na samotné Smršti další hlasování o přednáškách již nebude. Kdyby se Tvá oblíbená přednáška nedostala do výběru nebo budeš chtít slyšet o něčem jiném, můžeš zkusit během Smrště přemluvit k přednášení někoho z organizátorů.

  • Matfyzácké přednášky
  • Nematfyzácké přednášky
Rozbalit všechny přednášky
(Kliknutím na název přednášky zobrazíte její detail)

Matfyzácké přednášky

V této kategorii sídlí přednášky týkající se informatiky, případně matematiky či fyziky.

Algoritmy a datové struktury

Umělá inteligence pro hry [AIGAME2]
Martin Dvořák

V roce 2016 došlo k nejvýznamnějšímu klání mezi člověkem a počítačem. Lee Sedol, nejlepší hráč Go na světě, se utkal s programem AlphaGo. Co musel tým vývojářů udělat, aby AlphaGo zvítězilo? Jak na to reagovala veřejnost? Kromě toho, že se na přednášce budeme bavit o zmíněném klání, si vysvětlíme, jaké existují algoritmy umělé inteligence pro hry a na jakých základních principech jsou založené. Probereme to od těch úplně nejjednodušších (Minimax) až po nejmodernější algoritmy (AlphaZero), jejichž síla a obecnost je činí ještě děsivějšími než je AlphaGo. Výklad bude prokládán promítáním pasáží z AlphaGo Movie.

Komprese dat ("Jnm idln kpln j nstlčtln.") [PRESS]
Filip Štědronský

Přehled základních kompresních algoritmů: triviální algoritmy (RLE), statistické metody (Huffmanovo a aritmetické kódování), slovníková komprese (LZ77, LZ78, LZW), Burrowsova-Wheelerova transformace (BZIP). Pokud zbude čas, tak i něco o ztrátové kompresi obrázků a zvuku (prediktory, wavelets, JPEG, MPEG, fraktály).

Hledání v textu (">>Vyšíváme v seníku!<< – kde jsem to jen viděl?") [REGEX]
Filip Štědronský, Ríša Hladík

Někdy potřebujeme najít podřetězec ve velkém množství textu. Základní řetězcové algoritmy a datové struktury (např. trie). Indexování: jak si pro velké množství textu předpočítat datovou strukturu (v našem případě sufixové pole), která umožní vyhledávat v něm rychleji než v lineárním čase? Další témata dle zájmu časových možností, např. regexy a vyhledávací automaty.

Suffixové stromy ("Jak obrátit řetězec naruby?") [SUFF]
Filip Štědronský, Martin Mareš, Ríša Hladík

Suffixový strom je zajímavá datová struktura, pomocí níž jde vyřešit většinu řetězcových problémů v lineárním čase. Podíváme se, jak suffixový strom vypadá, k čemu se hodí a jak ho sestrojit. Též prozkoumáme několik příbuzných zvířátek, jako třeba suffixové pole a suffixový automat.

Intervalové stromy ("Já bych ty intervaly nejradši... dal do stromu!") [ITREE]
Filip Štědronský, Ríša Hladík

Intervalový strom je datová struktura pracující s intervaly, se kterou se můžeme setkat v mnoha úlohách (zejména soutěžních). Řekneme si, co to intervalový strom je, jaké všechny druhy intervalových stromů existují a jejich použití si ukážeme na úlohách. Na závěr si představíme jednu „magickou“ datovou strukturu jménem Fenwickův strom.

Toky v sítích ("Když je v grafu povodeň, těsní?") [TOKY]
Ríša Hladík

K čemu je dobré, když grafem teče voda. Předvedeme si klasický problém toků v sítích a jeho všelijaké, mnohdy dosti překvapivé aplikace. Jak rozestavět n věží na šachovnici a jak ji místo toho pokrýt dominovými kostkami? Další souvislosti, jako třeba násobná souvislost grafů.

Předpoklady: Umět plavat (zejména v matematice)
Stromové algoritmy ("Půjdeme na to od lesa") [TREES]
Martin Mareš, Ríša Hladík

Stromy jsou jednou z nejtypičtějších (a nejjednodušších) odrůd grafů. Ledacos pro ně umíme řešit mnohem rychleji než pro obecné grafy, tak se pojďme podívat, jak se to dělá. Předvedeme několik obecných technik pro práci se stromy: DFS očíslování, „vandalskou indukci“, intervalové reprezentace. Různé rozklady: heavy-light, Fredericksonův, separátorový a ST-stromy.

Splay stromy ("Lepší než uklízení je organizovaný chaos.") [SPLAY]
Martin Mareš

Zapomeňte na pracné vyvažování vyhledávacích stromů. Místo toho zavedeme triviální pravidlo: pokaždé, když pracujeme s nějakým prvkem, vytáhneme ho do kořene stromu. Ukážeme, že toto pravidlo stačí na dosažení logaritmické složitosti, tedy aspoň amortizovaně. Také dokážeme, že Splay strom je nejhůře konstanta-krát horší než libovolný jiný strom, a možná i spousta dalších magických vlastností.

Datové struktury ve volném stylu ("Všechno důležité jde spočítat v konstantním čase.") [DSX]
Martin Mareš

Pojďme spolu na výlet krajinou datových struktur. Vyšlapané cestičky lesem vyhledávacích stromů mineme a raději zahneme do opravdové džungle. Potkáme struktury pracující ve skoro konstantním čase, dynamické reprezentace grafů, roztodivné druhy hešováni a cokoliv dalšího, o co si průvodci řeknete.

ICO-Dict ("Chtěli jste si pořídit strom, ale zjistili jste, že na něj nemáte místo? Máme řešení!") [ICODICT]
Matej Lieskovský

Někdy v šedesátých letech byl objeven in-place heapsort a s ním implicitní halda (taková ta permutace prvků v poli, kde potomci i-tého prvku jsou na pozicích 2i a 2i+1) a následně byla položena otázka, zda by náhodou nešlo vyrobit i implicitní strom. Vydáme se tedy na cestu za datovou strukturou, která pozůstává jen z nějaké prapodivné permutace n prvků v poli, a která umí Insert, Find, Delete, Min, Max, Pred i Succ v čase O(log n). Jo a jen tak mimochodem to bude celé cache-oblivious.

Fourierova transformace [FFT]
Martin Mareš

Jak rychle umíte násobit n-ciferná čísla? My to umíme lineárně. Hodí se k tomu chytrý trik pana Fouriera, který už dávno patří k matematické a fyzikální klasice. Ukážeme, co je Fourierova transformace zač, jak ji rychle spočítat a k čemu je dobrá: rychlé násobení polynomů i čísel, digitální zpracování zvuku a obrazu (spektrální analýza či třeba komprese).

Předpoklady: Základy komplexních čísel

Složitost a vyčíslitelnost

Amortizace ("Celek bývá daleko menší než součet částí.") [AMORT]
Martin Mareš

Spousta algoritmů je mnohem rychlejší, než jak na první pohled vypadají. Šikovný způsob, jak takové chování zkoumat, je amortizovaná časová složitost. Předvedeme několik trochu překvapivých příkladů amortizace: dvojková a jiná počitadla, datové struktury založené na přebudovávání, vyhledávací stromy bez otravného vyvažování, dynamizace datových struktur, udržování historie.

Dlaždičková složitost ("Co je negace koupelny?") [TILES]
Martin Mareš

Nadefinujeme trochu netradiční počítač založený na dlaždičkách v koupelně. Prostudujeme, jak se různé druhy dlaždičkových počítačů chovají, a zjistíme, že to docela dobře odpovídá klasické teorii složitostních tříd. Jaké problémy má matematik, jehož koupelna je nekonečně velká?

Nerozhodnutelné problémy [VYCIS]
Martin Dvořák

Úvod do teorie vyčíslitelnosti. Jak je možné, že existují problémy, které nelze řešit žádným algoritmem, přestože jsou exaktně zadané? Tím nemám na mysli obdobu neřešitelné rovnice. Je to spíš jako rovnice, o které nedokážeme rozhodnout, zda má řeší. Vysvětlíme si problém zastavení (halting problem) a dokážeme si jeho neřešitelnost. Zmíníme také další problémy, které jsou úplně stejně neřešitelné jako problém zastavení, ale mají větší praktické důsledky.

Vyčíslitelnost a Gödelovy věty [VYCIS2]
Martin Mareš & Filip Štědronský

První Gödelova věta o neúplnosti je jedním z nejznámějších a nejpodivnějších tvrzení v historii matematiky. Říká, že v každé rozumné matematické teorii existují tvrzení, která jsou pravdivá, ale nelze je dokázat. Ukážeme si, že Gödelovy věty poměrně úzce souvisí s informatikou a ve světle informatiky si místo „Jak takováhle divná věc může platit?“, budete říkat „No to je naprosto jasné, že to musí platit, a nikdy by to nemohlo být jinak.“ Podíváme se i na další zajímavé partie teorie vyčíslitelnosti, třeba věty o rekurzi a Riceovu větu.

Předpoklady: VYCIS, případně základní přehled o Turingových strojích a Halting problému.

Programovací jazyky a filosofie

Jazyk Rust [RUST]
Standa Lukeš & Vašek Šraier

Rust je moderní programovací jazyk zaměřený na typovou a paměťovou bezpečnost, nekompromisní výkon, multithreading bez pastí. Zároveň přejímá nějaké vlastnosti funkcionálních jazyků se zachováním výborného výkonu, například iterátory jsou stejně rychlé jako for cykly. Ukážeme si základní principy jazyka. Jak se spravují objekty bez garbage collectoru a co nám to umožňuje (a co zakazuje).

Předpoklady: Schopnost programovat, tušení o nízkoúrovňových paměťových věcech.
F# [FSHARP]
Standa Lukeš

Něco mezi Haskellem a Perlem - striktní typový systém, primárně funkcionální, hromada syntaktických featur a dobrý na prasení build skriptů i složitější systémy. Ukážeme si jak funguje typesystém, nějaké zajímavé vlastnosti, nějaké funkcionální vychytávky nebo jak F# zkompilovat do Javascriptu (a že to není tak marný nápad).

Python ("print "Ffff".decode("rot13")") [PYTH]
Filip Štědronský

Python je jazyk, který svou jednoduchostí získává přízeň mnoha programátorů. Potkáte ho leckde, od kurzů programování pro malé děti přes matematické výpočty po umělou inteligenci. Pokud ho náhodou ještě neumíte, ukážeme si, že za 90 minut se ho zvládnete naučit taky.

Pokročilé povídání o Pythonu ("import antigravity") [PYTH2]
Filip Štědronský

Povídání o méně zmiňovaných částech Pythonu. Dekorátory, metaclasses, generátory, funkcionální styl programování v Pythonu. Jak napsat quicksort jako lambda funkci. Představení zajímavých modulů nejen ze standardní knihovny. Další témata dle přání účastníků: paralelní programování (asyncio, multiprocessing), síťová komunikace, GUI, matematické výpočty, propojení Pythonu s C, ...

Předpoklady: PYTH
Programování v jazyce C [C]
Filip Štědronský

Jazyk C patří k nejrozšířenějším jazykům, hodí se pro low-level programování i kusy kódu, které mají zejména být rychlé. Představíme si datové typy a běžné programové konstrukce, vysvětlíme si základy práce s ukazateli a také se seznámíme se standardními knihovnami jazyka C.

Perl 6 ("Slečno, mohu vám ukázat svou sbírku operátorů?") [PERL6]
Filip Štědronský, Martin Mareš

Je to Perl, a přitom to Perl není. Co je to? Aneb jak to dopadne, když se pokusíme navrhnout programovací jazyk budoucnosti a inspirovat se přitom filosofií Perlu. Typový systém, pokud zrovna chcete. Objekty, třídy a metatřídy. Periodická soustava (meta)operátorů. Definování jazyka v sobě samém. A co se to stalo s regulárními výrazy? Jak vypadají implementace P6 a kdy je prozatím lepší programovat na papíře. Praktické cvičení ve stavbě vzdušných zámků a bydlení v nich.

Jak se nestat vepřem ("/* You are not expected to understand this */") [STYLE]
Standa Lukeš & Martin Mareš

Tvrdí se, že číst kód je mnohdy těžší, než ho psát – dokonce i po sobě, stačí krátká doba. Je několik obecně uznávaných pravidel, jak kód psát a jak ne, aby byl hezký a dobře čitelný. Od základních (rozumná pojmenovací konvence, systematické odsazování), až po to, kdy opravdu použít goto, jak členit program na funkce a jak využít nějaké třídy, moduly a podobně. Jak napsat užitečný komentář nebo dokumentaci. A kdy se vyplatí se na všechna tato pravidla vybodnout.

Logické programování ("Mohu být svým vlastním dědečkem?") [LOGP]
Pali Rohár

Což takhle projednou neříkat počítači, jak má věci počítat, ale jenom mu zadat podmínky, které má výsledek splňovat? Neprocedurální programování vychází přesně z této myšlenky. Podíváme se na programovací jazyk Prolog, který vychází z formální logiky. Zjistíme, které problémy se v něm neobyčejně zjednoduší a které naopak programování promění v noční můru. Pokud jsi milovník rekurze, budeš u této přednášky nejspíš skoro celou dobu spokojeně vrnět.

Filosofie programovacích jazyků ("Your programming language sucks!") [YPLS]
Martin Mareš & Filip Štědronský

Společné filosofování nad programovacími jazyky a zejména nad tím, proč jsou všechny na draka, jen některé víc než jiné. Proč lze mít všechno na světě, jenže ne najednou. Proč je někdy lepší nechat programátora, aby si sedl na své vlastní vidle. Proč jsou některé vlastnosti jazyků na první pohled geniální, zatímco jiné (až) na ten druhý. Proč je důležitá hustota kódu a Huffmanův princip. Proč je někdy důležitější evoluce než revoluce.

Programátorské nástroje

Low-level debugování [GDB]
Jenda Hrach

Memory layout procesu, něco málo o alokaci paměti. Formáty souborů pro rychlé bastlení (NetPBM, Dot, pcap). Nástroje na hledání chyb (Sanitizers, Valgrind). To vše proloženo příklady bugů z praxe. Bude to hodně UNIXové a Cčkové.

Git a jiné systémy pro správu verzí ("U svatýho tučňáka, kdo sem napsal tohle? Ono to tvrdí, že JÁ?!") [GIT]
Pali Rohár

Jak vyvíjet program delší dobu a nezbláznit se u toho. Různé systémy pro správu verzí od diff/patch přes CVS a SVN až ke Gitu. Jak Git funguje: stromy, commity, větve, tagy. Merge mezi větvemi nebo mezi různými počítači.

Ako funguje Git ("Aj ten Git sa dá ovládnuť!") [GIT2]
Pali Rohár

Pokročilá prednáška o Gite pre tých, ktorí si ho už ošahali ale nerozumejú mu poriadne. Začneme základnými stavebnými kameňmi gitového repozitára a ako sú v skutočnosti súbory, adresáre a ich história reprezentované. Ďalej si popíšeme, čo presne jednotlivé gitové príkazy s repozitárom (a ďalšími súbormi) robia a prečo niekedy užívateľovi vynadajú. Vysvetlíme si a ukážeme si ako sa majú konflikty v Gite riešiť a ako sa im jednoducho vyhnúť. Ak bude čas ukážeme si aj mocné nízkoúrovňové gitové príkazy a napíšeme si pomocou nich vlastný príkaz git commit. Alebo na želanie hocičo iné.

Předpoklady: GIT
Testování a kvalita softwaru [QA]
Standa Lukeš

Výroba software není zdaleka jenom o programování. Ukážeme si, jak psát kód tak, aby nejenom fungoval, ale aby vyzařoval krásu a pokoj všem programátorům dobré vůle. Povíme si o různých způsobech testování, o tom jak udržet v kódu pořádek a dalších nástrojích, které pomáhají vyvíjet kvalitní software.

Předpoklady: Znát aspoň jeden příčetný programovací jazyk
Textový editor Vim ("Víš, jaký je nejlepší textový editor? Vim.") [VIM]
Filip Štědronský, Martin Mareš

Odložme na chvíli své myše a pojďme si vyzkoušet textový editor, který umí poslouchat na slovo. Pravda, budeme se ta slova muset chvíli učit, ale výsledek bude proklatě efektivní. Základní příkazy, práce s regulárními výrazy, makra, kouzla. Vimovité ovládání jiných programů, třeba webového prohlížeče.

Skriptování v shellu ("man 1 woman ... man 2 woman ... man group") [SHELL]
Filip Štědronský

Praktičtěji zaměřená přednáška než UNIX, zabývající se hlavně tím, jak efektivně používat příkazovou řádku. Ukážeme si na spoustě příkladů, jak nám může automatizace všedních činností ulehčit život a jak silné nástroje pro ni UNIXový shell (který navzdory svému názvu existuje i pro Windows) svou jednoduchostí a flexibilitou poskytuje. Budeme spojovat spoustu jednoduchých příkazů do mocných celků a s nimi plnit i na první pohled komplexní úlohy, jako třeba automatické stahování a parsování věcí z webu. Některé činnosti vyžadují lidskou nápaditost a vhled. Ty ostatní bychom měli přenechat strojům.

Shell pro shíllence [SS]
Filip Štědronský

Co vše se dá napsat za pomoci unixového shellu a spřízněných utilit. Webové aplikace, šablonovací systém, síťová komunikace, OOP, ... Proč to obvykle není dobrý nápad, ale občas taky ano.

Sítě, Internet, web, bezpečnost

IPv6 ("Viac adries znamená aj viac problémov") [IPV6]
Pali Rohár

Internetoví provideri nám pomaly začínajú ponúkať pripojenie do sveta IPv6 Internetu. Čo to IPv6 je? Čím sa líši od svojho staršieho kolegu IPv4? Prečo by sa o neho mal zaujímať aj obyčajný užívateľ? Pozrieme sa aké problémy IPv6 rieši, aké má výhody oproti IPv4 ako aj na súčasný stav podpory IPv6 v operačných systémoch. A hlavne s akými problémami sa človek bežne stretne než si bude môcť doma spraviť IPv6 sieť.

Předpoklady: Základní přehled o sítích
E-mail ("Drahoušek zákazník.") [EMAIL]
Pali Rohár

Co se stane s e-mailem, když jej odešlete? Kudy chodí a kudy jej čerti nesou? Jaké máte záruky, že přijde; proč občas přijde pozdě nebo vůbec. Problém formátů a kódování, chyby webových i jiných klientů. Protokoly SMTP, POP, IMAP a co se stane, když do nich přimícháme SSL/TLS. E-mailová bezpečnost, SPAM a (nefunkční?) obrana pomocí SPF, DKIM a DMARC. Nakonec se podíváme na ne zrovna triviální grafový problém, který je v emailech skrytý.

Webové UI funkcionálně [REACT]
Standa Lukeš

Vyrábět složitější aplikaci čistě v Javascriptu a HTML může být trochu peklo, tak si ukážeme, jak se v tom neutopit. Vyrobíme si totiž magickou abstrakci a z každé části stránky uděláme jenom funkci, která dostane stav svojí části a vrátí HTML, které nám prohlížeč zobrazí. Pomocí toho se dá v aplikaci udělat hezky pořádek, tak si ukážeme jak se v tomto modelu dá naprogramovat všechno potřebné.

Předpoklady: Znalost JavaScriptu
Hippo::Web ("Znovu vynalézáme kolo, ať konečně není hranaté.") [HIPPO]
Martin Mareš

Organizátoři KSPčka rádi dělají pokusy na sobě samých, a tak při vývoji nového webu semináře pohrdli všemi vyzkoušenými webovými frameworky a napsali si potvůrku jménem Hippo. Trochu netradiční, ale v mnoha ohledech velice příjemnou. Namátkově: HTML coby datová struktura, triky s kryptografickými tokeny, kombinování programovacích jazyků a tvorba dynamickych stránek, které jsou přitom skvěle kešovatelné. Případně také nahlédnutí do dalšího zákulisí KSPčka.

Kryptografie ("Gbgb arav zbp gnwan mcenin.") [CRYPT]
Filip Štědronský

Kryptografie čili tajuplná nauka o šifrách, jejich konstrukci a hlavně o jejich luštění. Přísně tajné. Šifrovací systémy jako lego: základními kostičkami nám budou symetrické a asymetrické šifry a jednosměrné funkce, stavět z nich budeme kryptografické protokoly na bezpečný přenos, autentikaci, digitální podpisy a třeba i na házení korunou po telefonu. Předvedeme nerozluštitelnou šifru a dokonce to o ní i dokážeme.

Aplikace kryptografie ("6140 a184 c9a6 41f1 de99 e733 354a f451") [CRYPT2]
Filip Štědronský, Martin Mareš

Pokročilejší a občas nečekané aplikace základních kryptografických primitiv. Jak přesvědčit server, že známe heslo, aniž bychom mu ho posílali? Jak zajistit, aby útočník nemohl dešifrovat komunikaci, ani když dodatečně získá soukromý klíč? Jak funguje Bitcoin (decentralizovaná digitální měna) či Tor (protokol znemožňující komukoli po cestě vědět, kdo s kým komunikuje)?

Předpoklady: Základní povědomí o šifrování (CRYPT) a víra v existenci náhodných čísel
Praktická kryptografie ("A proč jsou všechny ty zámky na papírových dveřích?") [PCRYPT]
Martin Mareš

Programátoři si často myslí, že pro bezpečnou komunikaci stačí vybrat si z knihovny osvědčenou silnou šifru. Jak naivní! Navrhnout bezpečný protokol není maličkost a dá se při tom ledacos zpackat. Replay útoky (jak otevřít auto krabičkou za 30 dolarů), útoky na padding a na blokovou strukturu. Čí že je ten podpis? Jak nepoužívat RSA a jak nehešovat hesla. Jak náhodná jsou vaše čísla? Postranní kanály: časování, spotřeba, záření. K čemu se crackerům hodí termoska s tekutým dusíkem.

Pod pokličkou – hardware, operační systémy, formáty

UNIX ("UNIX gives you enough rope to hang yourself.") [UNIX]
Filip Štědronský

Unixové operační systémy (zejména Linux) dobývají svět. Jak fungují uvnitř a jaké nabízejí výhody? Unixová filosofie a historie. Proč je systém složený ze spousty malých a jednoduchých kousků stabilnější a bezpečnější? Proč ovládání prostřednictvím textových příkazů je často efektivnější než klikátka? Jaké to je mít svůj systém pod kontrolou a „vidět mu pod ruce“? V čem spočívá moc textových souborů?

Programování v Linuxu ("Všechno na světě je tak trochu soubor") [PLX]
Filip Štědronský

Jak vypadá rozhraní mezi jádrem Linux a uživatelskými programy. Co se doopravdy stane, pokud ve svém céčkovém programu zavoláme printf nebo malloc. Jak napsat program, který vůbec nepotřebuje standardní céčkovou knihovnu. Co všechno se umí chovat jako soubor a co jako signál.

Předpoklady: Schopnost přečíst a napsat jednoduchý program v C.
Filesystémy ("Aká až tučná môže byť FAT tabuľka?") [FS]
Pali Rohár

Ako sú dáta uložené na disku? Rozdelenie disku na partície pomocou MBR a GPT schémy. Ako funguje FAT (12, 16, 32) a jej rozšírenia VFAT, TFAT. Krok dozadu v podobe exFAT. Linuxové filesystémy EXT2 až EXT4. Multiplatformový UDF nielen na optické disky. Čo použiť na SSD? A ak ostane čas, tak niečo o UBIFS používaný na flash pamätiach bez radiču.

Formát PDF [PDF]
Martin Mareš

Jeden z nejrozšířenějších formátů na předávání dokumentů má za sebou spletitou historii i dokumentaci. Ukážeme si, jak vypadá uvnitř a co se do něj dá uložit: grafické objekty, text, fonty, odkazy, všelijaké anotace a meta-data, a dokonce i kryptografické podpisy. Zmíníme se o profilech, třeba PDF/X a PDF/A. Při troše štěstí si vytvoříme jednoduchý PDF soubor ručně a možná půjde i otevřít.

Databáze zevnitř [DBMS]
Standa Lukeš

Narozdíl od "normálních" jazyků se v SQL (a podobných) moc nepopisuje jak se má výsledek spočítat, jen kde se má sehnat. Co s tím tedy databáze bude dělat? Proč nebude mít 7mi hlavý JOIN hroznou složitost a proč možná ano. Co bude dělat když po ní budeme chtít transakce? Jak se dají ukládat data, aby byla bezpečně na disku a po ruce v RAMce?

Předpoklady: Alespoň trochu se s databázemi kamarádit
Jak funguje USB 2.0 [USB]
Tomáš „Jethro“ Pokorný

Co se děje, když připojíme USB zařízení k počítači, jak počítač pozná, zda je to fleška nebo tiskárna a jak na ni přenese data.

Návrh plošných spojů [PCB]
Tomáš „Jethro“ Pokorný

Jak sobě pořídit vlastní elektronické zařízení, od schématu a návrhu PCB přes výrobu a osazení k oživení.

Matematické a fyzikální přednášky

Základy teorie čísel [NUT]
Ríša Hladík

Rychlokurz teorie čísel pro začátečníky. Číselné obory. Dělitelnost a prvočísla. Modulární aritmetika (aneb počítání jako na hodinách, kde 10 + 9 + 8 = 3). Kongruenční rovnice. Malá Fermatova věta.

Základy algebry [ALGEBRA]
Ríša Hladík

Jak matematici dokáží vzít „obecné“ a ještě více jej zobecnit. Lehký úvod do grup. Ukážeme si, jak zkoumat matematické operace, aniž bychom řešili, jestli se bavíme o sčítání, násobení, nebo skládání zobrazení.

Hausdorffův zvěřinec ("Jaký objem má π-rozměrná koule?") [HAUS]
Martin Mareš

Možná vás už také zarazilo, že některé fraktály nejsou ani dvourozměrné, ani třírozměrné, ale něco mezi tím. Pojďme se podívat, co to znamená. Cestou potkáme různé zajímavé partie matematiky (jako třeba metrické prostory a teorii míry) a různá podivuhodná zvířátka: Cantorovo diskontinuum, von Kochovu vločku a Hilbertovu křivku.

Catalanova a Fibonacciho čísla ("1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, ?") [CAT]
Martin Mareš

Kolik existuje binárních stromů? Kolika způsoby jde uzávorkovat výraz? A kolika způsoby projít čtvercovou mřížku, aniž bychom překročili úhlopříčku? Kam oko pohlédne, všude se skrývají Catalanova čísla. Kromě případů, kdy za ně zaskakují čísla Fibonacciho. Povídání o dvou zajímavých posloupnostech a jejich početném příbuzenstvu. Dlouhá cesta od hezkého vzorečku k rychlému algoritmu.

Samoopravné kódy ("f y cn rd ths, y wll b gd cmptr prgrmmr!") [KODY]
Markéta Calábková

Jak komunikovat po lince, která průměrně každý k-tý bit přenese špatně? Jak funguje diskové pole odolné proti selhání k disků? K tomu se hodí teorie samoopravných kódů, která nás naučí: vzdálenost slov a jejich souvislost s detekcí a opravou chyb, paritní a lineární kódy, perfektní kódy, Reed-Solomonovy a vůbec polynomiální kódy a několik dolních odhadů nádavkem. A jak s teorií kódů souvisí třeba čeština?

Meta-matematika ("Tato věta sem nepatří.") [METAM]
Martin Mareš

Pokud budeme v životě věřit všemu, co je „přeci zřejmé“, dostaneme se brzy do potíží a v matematice to platí dvojnásob. Přírodní vědy si vymyslely opakovatelné pokusy a matematici axiomatický přístup. Ukážeme, jak z jednoduché sady axiomů vybudovat takřka celou matematiku. Dokonce tak, že správnost důkazů za nás ověří počítač, aspoň když mu trochu pomůžeme. Nadšení trochu ochladí Gödelova věta: ať děláme, co děláme, vždy zbude nějaké nerozhodnutelné tvrzení. Pomůže přidávat axiomy? Asi ne, ale za odměnu získáme mnoho různých matematik. A dá-li bůh, stihneme dokázat jeho existenci i neexistenci :–).

Barevné systémy ("Co je na konci duhy?") [COLOR]
Martin Mareš

O podstatě světla a barevného vidění a různých pokusech o reprezentaci barev v počítačích, fotoaparátech, televizích a podobných zařízeních. Systémy RGB, CMY(K), HSV, XYZ, Lab s jejich výhodami i neduhy. „Systém“ Pantone. Reálné kontra imaginární barvy aneb proč nejde vyfotit duha.

Kvantové počitání ("return 0.5*dead + 0.5*alive; ") [QC]
Martin Mareš

Stručný úvod do kvantového počítání. Kvantová superpozice stavů výpočtu a její kolaps při měření. Základní kvantové operace: negace, řízená negace, permutace, Hadamardovo hradlo, Tofolliho hradlo. Groverův algoritmus na hledání v odmocninovém čase. Kvantová Fourierova transformace a Shorův algoritmus pro faktorizaci.

Předpoklady: Znalost komplexních čísel je nutností, znalost lineární algebry výhodou.
Kombinatorika ("Nemám rád faktoriály. Faktoriály nemám rád. Rád nemám faktoriály...") [KOMB]
Martin Mareš

Při navrhování algoritmů a počítání jejich složitosti narazíme na celou řádku zajímavých a ne úplně triviálních kombinatorických problémů, a tak se naučíme, jak na ně. Základní triky s faktoriály a kombinačními čísly, sčítání konečných a občas i nekonečných řad, rekurentní rovnice a princip inkluze a exkluze. Možná se také potkáme s Dlouhým, Širokým a poněkud zmatenou šatnářkou.

Pasivní radiolokace [RADIOLOC]
Jenda Hrach

Možnosti zaměřování vysílačů - úhel příjmu (Angle of Arrival), Dopplerův posun, rozdíl v času příjmu (Time Difference of Arrival). Ukázka implementace pasivního radaru na běžně dostupném hardwaru.

Ostatní

Osobní cloud po domácku [DIYCLOUD]
Vašek Šraier

Jak synchronizovat soubory, posílat maily, zálohovat, mít přitom všechna data pod kontrolou a nezbláznit se ze správy serverů? Ukážeme si, jak mít stejná data na všech svých chytrých zařízeních (Syncthing), jak si snadno pořídit mail server a "cloudové" úložiště (Mailinabox), vlastní VPNku, aby bylo vše hezky přístupné a aby poskytovatelé připojení nemohli šmírovat (WireGuard). Jak při tom všem nepřijít o data a pohodlně zálohovat.

TeX ("No pages of output. Ask a TeXnician.") [TEX]
Ríša Hladík, Martin Mareš

Z předchozí přednášky máme představu o tom, jak vypadá pěkná sazba. K její výrobě nám pomůže typografický systém TeX. Praktická přednáška s ukázkami použití TeXu od hladké sazby knihy až po zběsilosti hraničící s programováním. Jak do TeXu vkládat obrázky a jak to raději nedělat. Kde shánět další informace: TeXbook, TeXbook naruby a další zajímavá literatura. Praktické rozdíly mezi různými dialekty TeXu. Všelijaká rozšíření: pdfTeX, eTeX, LuaTeX.

(Kliknutím na název přednášky zobrazíte její detail)

Nematfyzácké přednášky

Hornictví [MINING]
Jenda Hrach

Základní přehled toho, jak se vyhledávají, těží a upravují suroviny.

Tance – cherry pick matematika [DANCES]
Katka "Lasivia" Lorenzová

Výběr tanců, které pohledem matematika „fungují jinak“, než momentálně masověji tancované tance v ČR. Speciální nabídka s dobrým poměrem zábavnosti ku náročnosti (testováno na lidech po dobu minimálně několika generací). O tancích bude dopředu známa jejich anotace a časová náročnost na naučení. Volba konkrétních tanců, které se opravdu naučíme, proběhne účastníky 5 minut před začátkem přednášky. Kdo přijde pozdě, nevolí.

Ekonomie prakticky ("S trochou reklamy ty akcie prodám i za dvojnásobek, ne?") [BUYME]
Standa Lukeš

Ekonomika je process výroby, spotřeby a hlavně směny zboží a peněz. Děje se toho ale hromada, tak se v tom zmatku zkusíme trochu zorientovat a vymyslet jak tyto věci modelovat. Ukážeme si co jsou peníze, trh, akcie, dluhopisy, burzy a hlavně k čemu je to dobré? Jak funguje nabídka a poptávka na spotřebitelském trhu, jak to ovlivňuje marketing nebo jak toto funguje burzách. Kdo určuje cenu másla a kdo cenu Bitcoinu. Nebo třeba co je to suplement a komplement a proč firmy vyvíjí open source.

Cestování [TRAVEL]
Vašek Šraier

Cestování po české i zahraniční přírodě, občas s nějakou kulturou. Jak rozumně levně přespávat, jíst a přesouvat se? Co je fajn vzít si sebou, co s sebou radši nebrat? Jak to celé naplánovat? A kam se vlastně podívat? Na všechny tyto otázky si pokusíme odpovědět, podíváme se při tom také na fotky z pěkných míst (máte-li také nějaké hezké, které chcete ukázat, napište mi a domluvíme se).

Biologická evoluce ("Ale vždyť je to jen teorie!") [EVOL]
Filip Štědronský

Evoluční teorie je asi jedním z největších převratů v lidském náhledu na svět. Jak se na takovou věc vůbec přišlo, proč to tak dlouho trvalo a proč si myslíme, že je to pravda? Jak si to vše alespoň trochu představit? Mnoho nečekaných překvapení, informatické a fyzikální souvislosti. Proč jsou stromy vysoké, jak souvisí pohlavní rozmnožování s počítačovou bezpečností, co má evoluce společného s Windows a co s halting problémem?

Předpoklady: Základní přednáška nevyžadující předchozí biologické znalosti.
Racionalita ("Pokud je tvrzení X pravdivé, chci věřit, že je pravdivé. Pokud ne, chci věřit, že je nepravdivé.") [RAT]
Filip Štědronský

Naše přesvědčení o světě jsou jako mapa nějakého území. Měli bychom se snažit, aby mapa co nejlépe odrážela skutečnost, neustále ji upravovat podle nově objevených faktů. Přesto se lidi často spíš snaží přesvědčit ostatní i sebe, že jejich názor je správný, než aby věnovali veškeré úsilí nalezení názoru nejlépe kopírujícího realitu. Odhlížíme od nepříjemných pravd. Proč? Jak se naučit své názory absolutně podřídit realitě, přijímat svět, jaký je? Jaké systematické chyby v uvažování lidský mozek dělá a jak nám jejich znalost (ne)může pomoci? K čemu se hodí znát teorii pravděpodobnosti či úvahy z oblasti umělé inteligence?

Efektivní altruismus [EFFALT]
Filip Štědronský

Chtěli jste někdy podpořit nějakou charitu a přispět na dobrou věc? (Nebo vás zastavil někdo na ulici a chtěl to po vás?) Ale možností je hrozně moc, jak si vybrat? Přemýšleli jste někdy o tom, co se děje s vašimi peněži poté, co je darujete, a jaký mají reálný dopad? Přesně tyto otázky si klade hnutí efektivního altruismu, které se snaží vědeckými metodami zkoumat účinnost jak konkrétních charitativních organizací, tak obecně různých druhů pomoci / „dělání dobra“. Efektivita se mezi nimi často liší i o několik řádů. Jak se taková věc zkoumá a na co se přišlo? Kolik stojí zachránit jeden život?

Animal welfare [ANIWELF]
Filip Štědronský

Utrpení zvířat způsobené lidmi je celkem rozsáhlý a velmi přehlížený problém. Zkusíme se na tento problém podívat ve faktech a číslech. Zaměříme se převážně na zemědělské velkochovy, kde je problém největší rozsahem (cca 20 miliard zvířat celosvětově), ale přijde řeč i na další situace (kožešinové farmy, laboratoře, útulky). Jak vypadají životní podmínky různých druhů zvířat v různých situacích a kolik jich je. Legislativní ochrana zvířat či spíš její absence. Možná řešení a jejich úskalí: tlak na zlepšení podmínek (legislativní, spotřebitelský, corporate outreach), vegetariánství/veganství/reduktariánství, ekologické zemědělství. Zdravotní, ekologické a ekonomické aspekty výroby a spotřeby živočišných produktů. Něco málo o utrpení zvířat v divoké přírodě. Trocha filozofování o vědomí a vnitřním životě zvířat.

Základy první pomoci ("Jak někomu zachránit život a jak málo k tomu stačí") [ZDRAV]
Filip Štědronský

Základy první pomoci. Co dělat s člověkem v bezvědomí? Co dělat s člověkem, který nedýchá (a jak to poznáme)? Kdy a jak volat záchranku? Psychologie a bystander effect, aneb proč musíte zasáhnout vy a nikdo z čumilů kolem to za vás neudělá. Ukážeme si, jak málo stačí k záchraně života a naučíme se nebát se první pomoci. A také, že naše bezpečí je v každé situaci na prvním místě.

Typografie ("What You See Is all What You've Got!?") [TYPO]
Martin Mareš

Jak na počítači text nejen napsat, ale také vysázet tak, aby pěkně vypadal a aby (což je důležitější) se i příjemně četl. Jak se sází pohádka, jak báseň a jak vzorové řešení KSP plné komplikovaných vzorců. Jak jde dohromady staleté umění typografické a moderní technika. Přineste knihy i letáky, zkritizujeme sazeče, co se do nich vejde.

Lingvištika ("Přísudek je v této větě podmět.") [LING]
Martin Mareš

Převážně nevážné a mírně nepřed-vídatelné po-vídání o jazyku i jazyce. Základní jazykové rodiny a jejich podobnosti i odlišnosti. Co má společného čínština s angličtinou a co nikoliv. Proč jeden jazyk potřebuje 15 pádů, zatímco jiný se bez nich obejde úplně. Jak se jazyky vyvíjejí a jak se navzájem ovlivňují. Kde se berou jazyková pravidla. Kde se vzalo písmo a proč se mluvený a psaný jazyk tolik liší. Jak se na jazyk dívá matematik a jak se na matematiku dívají lingvisté.

Fonetika ("Pojďte, zachrochtáme si spolu!") [FON]
Martin Mareš

Malá inventura zvuků, které lidé dovedou vytvářet, a jejich použití v komunikaci. Různé způsoby vytváření a modulace zvuku. Kolik různých B dokážete říci? Fonetické kontrasty a co si z nich různé jazyky vybraly. Rázy, polosamohlásky a jiní obyvatelé polosvěta. Přízvuk kontra délka. Asimilace, přehlasování a další „principy líné huby.“ Vše prakticky procvičíme.

Orientace [ORI]
Martin Mareš

Jak ze neztratit v terénu a jak se neztratit na moři. Vývoj umění navigace. K čemu je důležité slunce a hvězdy, ale proč mořeplavcům nestačí, alespoň dokud neobjevíme hodinky. Použití mapy, busoly a GPSky. Orientace bez pomůcek a použití Ariadniny nitě. Bleskový úvod do sférické astronomie a časomíry čili jak (ne)postavit sluneční a třeba i měsíční hodiny. Jak reprezentovat mapu v počítači a jak raději ne. Jak zapisovat polohu místa na Zemi (přestože Země má tvar podivně nakousnuté hrušky) a kolika způsoby to jde. Různé druhy map a jejich (z)kreslení. Jak se neztratit v kartografii. Praktické cvičení v terénu.

Čárové kódy ("Jak naučit počítače číst láhve od Coly") [BAR]
Martin Mareš

Čárové kódy dnes potkáváme na každém kroku, ale jak doopravdy fungují? Prozkoumáme klasické jednorozměrné kódy (UPC, EAN, Code39, Code128), jakož i novější dvojrozměrné (QR, Aztec, DataMatrix). Kódovací a dekódovací algoritmy plus trocha matematiky okolo zabezpečení proti chybám. Další počítačem čitelné značky: RFID, bíle křížky na asfaltu, ...

Čaj ("Jak vypadá odvar z nezralých pražců?") [TEA]
Martin Mareš

Pojďme usednout k šálku lahodného čaje a povídat si o tom, co se v něm skrývá. Kde se čaj vzal, kde se pěstuje, jak se zpracovává a jak ho připravovat. Trocha čajového zeměpisu, dějepisu i čajové chemie a čajové kultury. Též o všelijakých substancích čaji podobných.

Železnice a kolejová doprava ("Vlak bude opožděn z důvodu ztráty lopatky na uhlí.") [RAIL]
Martin Mareš & Pavel Turinský

Cestování po železnici už dlouho patří do života mnoha z nás. Kolik o ní ale víme? Trocha historie, zajímavosti z předpisů, pár pohledů za hranice. Jak se staví trať, jak vlak a jak to všechno, když už to je hotové, skloubit do fungujícího systému. Čím se zajišťuje bezpečnost (a jak může z pohledu systému vlak prostě odletět) a k čemu jsou všechna ta návěstidla u tratí.

Elektroinstalace ve vlaku [RAILELE]
Tomáš „Jethro“ Pokorný

Jak a kudy vedou ve vlaku kabely, jak se propojují mezi sebou a mezi vozy a co si z toho vzít do života bastlíře.