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

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 několika kategorií. Každé kategorii přednášek budou vyhrazeny nějaké přednáškové sloty a v každé kategorii se tedy hlasuje nezávisle na ostatní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čí v pondělí 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

Datové struktury pro pokročilé [DS2]
Martin Mareš

Důmyslnější varianty vyhledávacích stromů: splay stromy, BB-α stromy, vícerozměrné stromy. Chytřejší haldy: binomiální, Fibonacciho, 2-3. Amortizovaná analýza složitosti. Též několik přátelských randomizovaných datových struktur: skip listy a treapy.

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.

Toky v sítích ("Když je v grafu povodeň, těsní?") [TOKY]
Jirka Setnička

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)
Geometrie a počítače ("Když to nejde vyřešit jinak, tak to zameteme velkým koštětem") [GEOM]
Jirka Setnička

Základní algoritmy pro řešení geometrických úloh – konvexní obal, dva nejbližší body v rovině, výpočet obsahu nekonvexního mnohoúhelníka, lokalizace bodu, scanline algoritmus a jeho použití, Voroného diagramy a souvislost s persistentními datovými strukturami.

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

Někdy potřebujeme najít podřetězec ve velkém množství textu. Stromeček trochu připomínající ten biologický aneb trie. Proč se ve vstupu vracet neboli Knuthův-Morrisův-Prattův algoritmus. Hledání více řetězců najednou podle Aha a Corasickové. Okénkové hešování Rabina a Karpa.

Sufixové stromy ("Jak obrátit řetězec naruby?") [SUFF]
Filip Štědronský, Martin Mareš

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.

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

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

Nejkratší a jiné cesty ("Všechny cesty vedou do Horní Dolní, jen některé přes Řím.") [CESTY]
Filip Štědronský, Jirka Setnička

O problému hledání cest v grafech trochu podrobněji. Obecné relaxační schéma, Bellmanův-Fordův a Dijkstrův algoritmus a jejich zrychlení pomocí různých datových struktur. Potenciálová redukce a heuristiky (třeba A*), zaokrouhlování délek hran. Souvislosti s násobením matic: transitivní uzávěr, Seidelův algoritmus, Kleeneho algoritmus a regulární výrazy.

Van Emde-Boasovy stromy [VEB]
Matej Lieskovský

Ukážeme si, proč není možné překonat rychlost vyhledávacích stromů v obecném případě, a pak předvedeme datovou strukturu, která sice pracuje jen s celými čísly od 0 do nějakého U-1, ale výměnou zvládne Insert, Find i Delete v čase jen O(log log U).

Cache-oblivious algoritmy ("Kešuješ, kešuje, kešujeme") [CACHE]
Martin Mareš

Dnešní procesory mají několik úrovní vyrovnávacích pamětí (cache), což způsobuje, že ačkoliv si jsou všechny části paměti rovny, některé si jsou rovnější. Jak taková cache funguje? Jak se procesor rozhodne, co si v ní zapamatuje a co vyhodí? Jak toho můžeme využívat při programování, aby naše programy běžely rychleji? Předvedeme kousek teorie i několik praktických ukázek s poněkud překvapivým chováním.

Předpoklady: Cachu oříšky

Teoretická informatika

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.

Evoluční algoritmy ("Já to dělat nebudu, ať to za mě udělají mravenci!") [EVA]
Karry Burešová, Jirka Setnička

Evoluční algoritmy se inspirují strukturami chování v přírodě a na jejich základě pak (optimalizačně) hledají řešení těžkých problémů. Ukážeme si obecné schéma genetického algoritmu stejně jako některé konkrétní způsoby, jak ho realizovat, a podíváme se na pár situací, kdy evoluční algoritmy dosáhly mnohem lepšího výsledku, než se čekalo.

Strojové učení ("Umí počítače přemýšlet?") [MACHINE]
Karry Burešová

Úlohy, kterými se zabývá strojové učení. Co je to učení s učitelem a bez učitele? Ukážeme si základní postupy, jak počítač můžeme naučit rozpoznávat věci, které sami rozpoznat neumíme. Umí Facebook nebo Google poznat, co máme rádi, jakou máme náladu, nebo jestli jsme těhotní?

Celulární automaty [CELLAUT]
Martin Dvořák

Zajímá vás, jak pomocí velmi jednoduché sady pravidel vytvořit systém se zajímavým chováním? Fascinují vás fraktály? Připadá vám zajímavé uvažovat o tom, jaký nejjednodušší nástroj stačí k vyřešení zadaného problému? Nebo jestli existuje stroj, který dokáže vyrobit svoji vlastní kopii? Ve stručnosti si představíme konečné automaty a pak se ponoříme do pestré říše celulárních automatů.

Programovací jazyky a nástroje

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

Jak programovat v Pythonu a jak v něm „nepsat Cčko“. Syntaxe, datové typy, funkce, třídy, ... Na co si dát pozor, v čem se Python liší od ostatních jazyků a proč je mezi nimi tak oblíbený.

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

Povídání o méně zmiňovaných částech Pythonu. New-style classes, dekorátory, metaclasses, generátory, funkcionální styl programování v Pythonu. Jak napsat quicksort jako lambda funkci. Představení zajímavých modulů.

Programování v jazyce C [C]
Filip Štědronský, Jenda Hrach

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.

C for wizards ("1[x]+++++x[1]") [CWIZ]
Martin Mareš

Ponořme se do hlubin Céčka, snad až na samé dno. Typový systém: elementární typy, typové výrazy, automatické konverze a rozpad typů (pole vs. ukazatel). Pořadí vyhodnocování kontra pořadí side-efektů (priority, synchronizační body a volatile). Triky s preprocesorem. Návěští a příkaz switch. Všelijaké zrady (velikosti typů, zarovnání, (a+b)+c ≠ a+(b+c), ...). Dialekty Céčka od K&R až po novou normu C11 a různá nestandardní rozšíření jazyka. Proč jsou objekty potřebnější v mysli programátorově než v jazyce a proč je C lepší než C++ :–)

Předpoklady: Povšechná znalost jazyka C.
Černá magie v C++ ("Je dobré znát, co umí atomová bomba (a její datový typ), abychom ji nechtěli použít.") [CPP]
Filip Štědronský

Pokročilejší prvky C++ (šablony, přetěžování funkcí a operátorů, preprocesorové hacky, ...) a možnosti jejich (po|zne)užití. Jak s nimi vytvořit věci magické (smart pointers, lambda funkce), ale i na první pohled docela obyčejné, které si bohužel jinak pořídit nejde. Nahlédneme do vnitřností slavné knihovny Boost. Proč je třeba preprocesorem vygenerovat 512 šablonovaných typů jen, abychom mohli rozumně předávat pointery na metody? Jaká akrobacie je nutná pro obyčejnou statickou inicializaci seznamu? A mnohá další překvapení. Přednáška vás naučí psát v C++ složité věci a přesvědčí, že v něm nechcete psát ani jednoduché.

Předpoklady: základní znalost C++, staticky alokovaný kyblík
Jazyk SQL ("SELECT something FROM knowledge LIMIT 90min") [SQL]
Karry Burešová, Jenda Hrach

Představíme si SQL, jazyk databází. Ukážeme si základní příkazy i práci o kus složitější. Jak ušetřit skriptu práci a sobě čas, aneb jak se zeptat rovnou na to, co chci vědět. K čemu se hodí složený dotaz a klíčové slovo JOIN.

Logické programování v Prologu ("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.

Od zdrojáku k programu ("Před spuštěním program přeložte. Stačí třikrát podélně?") [KOMP]
Filip Štědronský, Martin Mareš

Mezi programem v Céčku, který jste právě dopsali, a tranzistory uvnitř vašeho procesoru leží obrovské území obývané překladači, linkery, knihovníky, operačními systémy, loadery a jinými bájnými bytostmi. Pojďme zjistit, co jsou zač a co všechno s programem provádějí. Co udělá kompilátor za nás a co musíme naopak udělat my za něj.

Gdb a jiné ladicí nástroje ("Jak se ladí kytara, jak křišťálová koule a jak program (řazeno dle obtížnosti)") [GDB]
Filip Štědronský, Pali Rohár

Kdo píše programy, které vždy hned fungují, ať se přihlásí. A kdo ne, ať se přihlásí na tuto přednášku. Ladit programy vás nenaučíme, ale ukážeme několik nástrojů, které mohou pomoci z nejhoršího. Mezi nimi třeba gdb – řádkový debugger (odvšivovač), strace, valgrind a perf. Kdy je chceme použít, a kdy se naopak víc hodí printf a assert.

Systém pro správu verzí Git ("U svatýho tučňáka, kdo sem napsal tohle? Ono to tvrdí, že JÁ?!") [GIT]
Karry Burešová, Filip Štědronský, Pali Rohár, Jirka Setnička

Když se něco vyvíjí delší dobu, přijde vhod nějaký sofistikovaný nástroj. Na jeden takový, Git, se podíváme. Povíme si, jak Git ukládá změny, co jsou commity, větve, tagy a jak vypadá merge mezi větvemi. Nakonec možná předvedeme i nějaké kouzelnické triky: hledání bugů půlením historie, přepisování dějin.

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

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
Textový editor Vim ("Víš, jaký je nejlepší textový editor? Vim.") [VIM]
Karry Burešová, Filip Štědronský

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.

Hardware a operační systémy

Filesystémy ("Opravdu je FAT tabulka tlustá?") [FS]
Filip Štědronský, Martin Mareš

Povídání o tom, co leží mezi nulami a jedničkami na plotnách disku a přátelskou adresářovou strukturou našeho OS. Jak funguje FAT a jeho varianty (VFAT, FAT32). Tradiční Linuxové filesystémy od EXT2 k EXT4. Nadějný nový BtrFS, který je možná za pár let nahradí. Co se hodí na SSD.

Procesy a vlákna ("Koupil jsem dalších 15 procesorů, proč je to stále stejně pomalé?") [THREAD]
Filip Štědronský, Jirka Setnička

Jak vypadá víceprocesorové či vícejádrové PCčko a co to znamená pro programátora. Procesy, vlákna a úskalí komunikace mezi nimi. Jak se snese n kohoutů na jednom smetišti? Synchronizační primitiva: mutexy, semafory, podmínkové proměnné. Spinlocky, deadlocky a livelocky. Jde to i bez synchronizace: atomické operace, transakční paměť. Které jazyky nám pomáhají a které spíš škodí. Kdy je lepší vlákna použít a kdy ne.

Předpoklady: Trochu představy o hardwaru
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řednictí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ů?

Skriptování v shellu ("man 1 woman ... man 2 woman ... man group") [SHELL]
Filip Štědronský, Jirka Setnička, Jenda Hrach

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 ("mkfifo p;nc -lp80<psed -re "s/GET /tac</;s/ .*/;echo;echo& 200 OK/;q"sh|tac>p") [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.

Programování v Linuxu [PLX]
Filip Štědronský, Pali Rohár, Martin Mareš, Jenda Hrach

Jak si program pod Linuxem povídá s operačním systémem, když chce otevřít soubor, přečíst soubor, půjčit trochu paměti a jiná šprťouchlata. Předvedeme si, jaká existují v Linuxu systémová volání. Naučíme se namapovat si soubor rovnou do paměti, posílat a odchytávat signály, uspávat a probouzet proces, plodit děti a další. Pokud zbyde čas, můžeme si napsat démona a klienta a povídat si po síti.

Předpoklady: Schopnost přečíst a napsat jednoduchý program v C.
Linuxové jadro ("Čo sa skrýva pod povrchom?") [KERN]
Pali Rohár

Čo to vlastne ten linuxový kernel obsahuje, čím sa líši programovanie v kerneli od toho bežného. Ako kernel skompilovať, kde hľadať pomoc a akým spôsobom funguje samotný vývoj linuxového kernelu. Ako zmeniť zdrojáky nejakej komponenty, ako ich publikovať a ako ich dostať do „hlavnej“ verzie kernelu dostupnej pre všetkých. Doneste si svoje notebooky, ktorým nefunguje poriadne touchpad, rôzne Fn klávesy, prídavné tlačítka, podsvietenie displeja, klávesnice a pod. Skúsime to odladiť a opraviť, prípadne napísať pre nefunkčné zariadenia nové ovládače.

Sítě a bezpečnost

Sítě a Internet ("Sítě nejen na ryby.") [NET]
Jenda Hrach

Jak funguje Internet a počítačové sítě vůbec: od elektronů v drátech (fotonů v optických kabelech nebo elektromagnetických vln) přes packety a jejich routing až k jednotlivým síťovým službám. Adresace, internetworking a dynamický routing. Jak NAT zachránil i zničil Internet a proč se těšíme na IPv6. Budeme si povídat o běžně používaných protokolech – DNS, FTP, HTTP nebo třeba i mailových SMTP a IMAP. Zaměříme se více na ty nejpoužívanější (metody GET a POST v HTTP), nakousneme cacheování a nadlábneme se cookies. A pokud zbude čas, využijeme zranitelnosti některých protokolů a provedeme síťový útok.

Síťová (ne)bezpečnost ("Kdo si čte vaše emaily a jak?") [NEBEZP]
Jan Škoda, Jenda Hrach

Stručný úvod do fungování sítě. Praktické ukázky hackování běžné sítě od MITM po převzetí (třeba emailového) účtu. Pomůže nám HTTPS? Jak je to na WiFi? Zastaví nás heslo? Na jak dlouho? A konečně – jak se tomu všemu lze bránit, pokud to vůbec jde.

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: NET
Web uvnitř ("Error 402: Payment Required. Please insert a coin.") [HTTP]
Martin Mareš

Většina webu je dnes založena na protokolu HTTP, pojďme se podívat, jak funguje uvnitř. Metody GET, POST, ale třeba i PUT. Dohadování o typu dat. Cacheování, revalidace a transformace dat. Křupavé sušenky. Jak se vypořádat s dynamicky generovaným obsahem aneb protokol CGI. Mezi klientem a serverem aneb DNS a virtuální servery. Nakonec do toho všeho přimícháme SSL/TLS a máme HTTPS. Malá ochutnávka HTTP/2.0.

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

Kryptografie ("Gbgb arav zbp gnwan mcenin.") [CRYPT]
Filip Štědronský, Jirka Setnička

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
Bitcoin [BTC]
Jenda Hrach

Jak provozovat digitální měnový systém bez centrální autority – algoritmy blockchain, proof-of-work a jejich varianty. Datová struktura Merkle tree. A pak nějaké aplikace, uživatelské hledisko, motivace a výhled do budoucnosti.

Praktická kryptografie ("A proč jsou všechny ty zámky na papírových dveřích?") [PCRYPT]
Filip Štědronský, Martin Mareš, Jenda Hrach

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.

Matematické přednášky

Podmíněná pravděpodobnost [PPROB]
Martin Dvořák

Dokážeme rozeznat falešnou kostku? Úvod do Bayesovy teorie pro úplné začátečníky. Ukážeme si základní výpočty s podmíněnou pravděpodobností. Na závěr si řekneme pár zajímavostí o tom, jak lidský mozek zkresluje úvahy o pravděpodobnosti a statistice v každodenním životě.

Základy teorie čísel [NUT]
Martin Dvořá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]
Martin Dvořá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í.

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 :–).

Kombinatorika ("Nemám rád faktoriály. Faktoriály nemám rád. Rád nemám faktoriály...") [KOMB]
Martin Mareš

Středoškolská kombinatorika bývá otravnou „zoologií“ plnou pojmů a vzorečků. My si místo toho ukážeme přístup k počítání založený na elegantních úvahách. 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 a rekurentní rovnice. Také zajdeme na návštěvu k Dlouhému a Širokému a za poněkud zmatenou šatnářkou.

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.

Ostatní

Uživatelská rozhraní ("Nákup potvrďte stiskem tlačítka s černou lebkou.") [UX]
Karry Burešová

Co mají společného automat na jízdenky, velké červené tlačítko v jaderné elektrárně a KSPácké webové stránky? Jsou to rozhraní, jejichž pomocí lidé něco ovládají a plní nějaké úkoly. Jak taková rozhraní navrhovat a jak je následně testovat? Proč raději nenavrhovat to, o co si lidi řeknou, a proč nevadí, že Vim by v běžném testování určitě neuspěl? A je opravdu nejdůležitější poučka „Zapomeňte na poučky“? Projdeme celý proces návrhu uživatelského rozhraní, pojmenujeme zdánlivě samozřejmé, a přece často opomíjené zásady a upozorníme na časté prohřešky.

Zpracování přirozeného jazyka ("Jsou bramborové knedlíky plněné bramborami?") [NLP]
Karry Burešová

Přednáška spíše motivační a hravá, o tom, co se stane, když se střetne svět matematiky se světem divných, neexaktních a nejednoznačných lidských jazyků. Podíváme se na vlastnosti přirozených jazyků a zaměříme se na to, jak moc komplikují jejich počítačové zpracování. Pojmenujeme odlišnosti mezi kontrolou pravopisu, automatickým překladem a konverzací s uživatelem, a zbude-li čas, naznačíme, co se umí a osvědčuje používat.

Strojový překlad ("TyTrubko!") [TRANSL]
Karry Burešová

Strojový překlad udělal za posledních pár let obrovský pokrok, a přestože není těžké počítače nachytat, překlady mezi mnoha dvojicemi jazyků už produkují použitelné výsledky. Na překlad půjdeme od konce, tedy od vyhodnocování. Jak poznat dobrý překlad? Jak funguje BLEU, de facto standard hodnocení překladu? Jaké má problémy a alternativy? A jak že ten překlad vlastně vzniká? Povíme si o různých přístupech, podíváme se na určování významu i morfologickou analýzu. A na závěr se třeba pobavíme nad některými autentickými výstupy.

TeX ("No pages of output. Ask a TeXnician.") [TEX]
Jirka Setnička, Martin Mareš

Donald E. Knuth napsal TeX před desítkami let proto, že mu nikdo nebyl schopen vysázet matematický text podle jeho požadavků. Od té doby se hojně používá pro sazbu nejrůznějších publikací. V této spíše praktické přednášce si ukážeme použití TeXu od hladké sazby knihy až po zběsilosti hraničící s programováním. Pozornost věnujeme i zdrojům informací a rozdílům mezi různými dialekty TeXu.

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.

Jak jsme crackovali GSM [GSM]
Jenda Hrach

V přednášce bych chtěl zevrubně popsat postupy a techniky implementované v projektu Deka, který dokáže zlomit klíč na skutečné síti během několika sekund. Prozkoumáme chyby v implementaci šifrování v GSM, zhodnotíme možnosti útoků na různé LFSR šifry, a nakonec navrhneme implementaci útoku, která využije potenciálu moderního hardware (SSD, grafické karty a vektorové jednotky). Obsahuje demo programování grafických karet, což kupodivu s balíčkem PyOpenCL není žádná magie.

Softwarově definované rádio ("Rádio bez ladění cívek") [SDR]
Jenda Hrach

SDR je poslední dobou velmi populární technologie. Umožňuje pomocí jednoho univerzálního hardware přijímat různé druhy rádiových signálů a jejich zpracování nechat na softwaru. Vysvětlíme si princip fungování SDR. Podíváme se, jaké signály kolem nás létají, a uděláme si jednoduchý přijímač FM rádia v GnuRadiu.

Začínáme s elektronikou ("Bastlím, bastlíš, bastlíme") [ELE]
Jenda Hrach

Jak se vrhnout do světa elektroniky? Ukážeme si zapojení od úplných základů (co je to vlastně napětí a proud) a běžné stavební funkční bloky a praktické aplikace (proudový zdroj, nabíjení akumulátoru). Samozřejmě si také řekneme, co je ke startu bestlířské kariéry potřeba a jak vzniklé věci debugovat. Přednáška je zaměřena na začátečníky s různými MCU kity typu Arduino.

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

Nematfyzácké přednášky

Výběr vysoké školy ("Tady prý dobře vaří!") [VS]
Karry Burešová

Vybrat si vysokou školu může být náročný úkol. Čím se vlastně jednotlivé školy liší a čím z toho se obvykle moc nevytahují? Na co je dobré se při výběru ptát a co je spíš drobný detail? Souvisí nějak náročnost studia a vlídnost vyučujících? Povídání o rozdílech mezi školami od někoho, komu byla jedna škola málo.

Religionistika prakticky [RELIG]
Karry Burešová

Ať věřící či nevěřící, s projevy náboženství se setkáváme dnes a denně. Kde se ale taková věc vzala? Může být náboženství jen projevem nevyspělé techniky, nebo je za tím mnohem víc? Je srovnatelné pohanství dávných Slovanů a víra dnešních indiánů? A co má společného křesťanství s východními náboženstvími? Ne každý muslim je fanatik, ale každý fanatik je muslim. Nebo ne? A jak má člověk brát vážně křesťany, když se dohadují o blbostech? Co mají společného a čím se liší bohoslužby napříč jednotlivými monoteistickými náboženstvími i napříč jednotlivými církvemi? Pojďme si popovídat o tom i o mnohém dalším.

Znakové jazyky [SIGN]
Karry Burešová

Znakové jazyky byly dlouhou dobu považovány za méně důležité než ty, které mají mluvenou podobu. V polovině 20. století ovšem Wiliam Stokoe ukázal, že americký znakový jazyk má podobnou strukturu jako mluvený jazyk. Jeho dílo odstartovalo množství výzkumů, díky kterým dnes víme, že znakové jazyky jsou plnohodnotnými lidskými jazyky a že se v mnoha ohledech chovají stejně jako ty mluvené. Které ohledy to vlastně jsou a co se od znakových jazyků můžeme naučit o naší řeči? Přednáška převážně teoretická, ale v případě zájmu můžeme vytáhnout i pár znaků z českého znakového jazyka.

Hudba z pohledu matematiky, fyziky a informatiky [MUSIC]
Martin Dvořák

Co dokáže a co už nedokáže rozpoznat lidský sluch? Na čem je založená libozvučnost z pohledu fyziky? Jak spolu souvisí zlatý řez a koncertní sály? Co se děje při digitalizaci hudby? A na čem závisí kvalita jejího přehrávání?

Zamrzlá evoluce [FROZEVO]
Martin Dvořák

Proč nejsilnější a nejpřizpůsobivější většinou nepřežijí, zatímco suboptimální se drží věky? Bude nás zajímat, proč se biologové domnívají, že pohlavní rozmnožování brzdí a následně úplně zastavuje evoluci a proč nakonec i přesto sexuální druhy tolik potkáváme v přírodě. Na přednášce nejprve ve stručnosti nastíníme, jak měnily biologické pohledy na evoluci, a pak se vrhneme na teorii zamrzlé plasticity, za kterou byl Jaroslav Flegr „oceněn“ Bludným balvanem.

Naturalismus ("Tuto hypotézu jsem nikde nepotřeboval.") [NATUR]
Filip Štědronský

Naturalismus je teorie, že svět řídí neměnné přírodní zákony, které mají poměrně jednoduchý matematický charakter, jsou celkem lhostejné k lidským osudům, měří stejně dobrým i zlým. Že život není magická vitální esence, nýbrž sada komplexních chemických interakcí. Že myšlení je výpočetní proces jako každý jiný. Naturalismus není axiomem vědy, nýbrž jedním z jejích největších objevů. Proč si dnes myslíme, že je nejspíš pravdivý? Jak vypadala mnohasetletá bolestivá cesta k němu a proč se z ní svým způsobem vzpamatováváme dodnes? Jaký vliv to má na naše vnímání hodnot, života a jeho smyslu?

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?

Základy první pomoci ("Jak někomu zachránit život a jak málo k tomu stačí") [ZDRAV]
Jirka Setnička

Pobavíme se o základech první pomoci. Jak správně vyhodnotit situaci a kdy je potřeba volat pomoc? Jak se postarat o člověka v bezvědomí, jak kontrolovat životní funkce a jak člověka stabilizovat do příjezdu pomoci? 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ě.

Lockpicking ("Jak si odemknout, když si náhodou my (nebo soused) zapomeneme klíč :-)") [PICK]
Jirka Setnička

Jak fungují dnešní zámky, co jsou to stavítka a jak vlastně fungují klíče. A jak se pomocí jednoduchých nástrojů dají využít výrobní nedokonalosti zámků k jejich odemčení. Použití planžet, napínáků, praktické ukázky odemykání, nastínění technik bumpingu a dalších postupů, jak se dostat přes zamčené dveře.

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.

Čá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, ...

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.

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

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 cacheovatelné. Případně také nahlédnutí do dalšího zákulisí KSPčka.

Molekulární biologie pro programátory [MOLBIO]
Jenda Hrach

Jak přečíst DNA, zkompilovat z toho bílkovinu a jak získané znalosti využít.

Sekvenování aneb čtení DNA ("Pojďme si číst (nejen) v lidské DNA jako v knize") [DNA]
Evča Matoušková

Podíváme se na to, jak se vlastně na čtení DNA přišlo, jak funguje Sangerovo sekvenování a jak se od svého vzniku vylepšilo. Povíme si, jaká magie stojí za 454, Illuminou a řekneme si něco i o alternativních metodách, které se tolik nepoužívají. Nakonec zabrousíme i do novějších metod, například Nanoporu. Povíme si taky, kterak se dá číst DNA na oběžné dráze a že kapesní trikodér ze Star Treku možná není až tak daleko.

QGIS ("A můžeš mi to ukázat na mapě?") [QGIS]
Tomáš „Jethro“ Pokorný

Co je to geoinformační systém a na co všechno se dá použít. Základy použití, jak si vyrobit vlastní mapu, jak vizualizovat vlastní procházku či připravit mapu na hru v lese či ve městě.

Jak přispívat do OpenStreetMap ("A proč mi tady vede dálnice skrz dům?") [OSMMAP]
Tomáš „Jethro“ Pokorný

Jak přispívat do mapy světa OpenStreetMap. Co se dá mapovat bez GPS, jak mapovat s GPS, jak mapovat turistické trasy. K čemu využít kameru v autě / na řídítkách. Jak se na své výtvory podívat.

Jak využívat data z OpenStreetMap ("Pokud jste prvky nějaké relace, pak musíte mít danou roli") [OSMDATA]
Tomáš „Jethro“ Pokorný

Jak využívat data z OpenStreetMap – jaký je datový model, co z toho vyplývá, jaké jsou nástroje, co všechno se v datech nachází. Kde najít vrstevnice a jak s tím vším pracovat a nezbláznit se.

Co vám v tanečních neřekli o neuronových sítích [DANCENN]
Katka „Lasivia“ Lorenzová

Vše si ukážeme ryze prakticky, celou dobu si budeme hrát s neuronovými sítěmi, jen k tomu budeme potřebovat taneční boty. Nebo alespoň pohodlné boty bez podpatků. Celá naše snaha bude mířit k pochopení názvu přednášky, tzn. co jsou to neuronové sítě a co u svatého tučnáka mají společného s tancem.

Předpoklady: někdy jsem viděl tancující pár alespoň na obrázku OR tancuji nerad