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

Seznam přednášek – Karolínka

Hlasování o přednáškách na Smršt již skončilo a Smršt již také proběhla.

Níže se alespoň můžeš podívat na seznam přednášek, může Ti být inspirací nebo motivací třeba pro příští Smršt.

  • Matfyzácké přednášky
  • Nematfyzácké 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é ("Haldy a jiné kupky.") [DS2]
Michal Vaner, 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.

Hledání v textu (">>Vyšíváme v seníku!<< – kde jsem to jen viděl?") [REGEX]
Filip Štědronský, Jirka Setnička, Karry Burešová, Vojta Sejkora

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ý strom a sufixové pole ("Umíš suffixový strom? Tak to už s řetězci umíš úplně všechno!") [SUFIX]
Filip Štědronský

Pomocí sufixového stromu lze většinu řetězcových problémů vyřešit v lineárním čase. Na přednášce si ukážeme, jak sufixový strom vypadá, jak se pomocí něj řeší problémy, jak souvisí se sufixovým polem a pomalu se budeme přibližovat k jeho konstrukci.

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

Dynamické programování ("Kampak jsem si to jenom schoval?") [DYNP]
Vojta Sejkora

Dynamické programování je programátorská technika využívající velice prostinkého nápadu: Proč něco počítat několikrát, když to mohu spočítat jednou a výsledek si uložit? Na této přednášce si ukážeme, že tento jednoduchý nápad může pomoci efektivně vyřešit i poměrně obtížné úlohy.

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

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.

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

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š

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, rozklad na lehké a těžké hrany, Fredericksonův rozklad a ST-stromy.

Intervalové stromy ("Já bych ty intervaly nejradši... dal do stromu!") [ITREE]
Jirka Setnička

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.

Geometrie a počítače ("Nerušte mé kruhy! (ani jiné kvadriky)") [GEOM]
Jirka Setnička, Martin Mareš

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.

Herní algoritmy ("Když nemáte na to, abyste vyhráli šachový turnaj...") [AIGAME]
Michal Pokorný, Martin Španěl

Povídání o tom, jak programovat počítačové soupeře do šachů a her jim podobným. Základní minimaxový algoritmus a jeho vylepšení neboli α-β ořezávání. Stále pomalé? Několik nápadů na efektivnější ořezávání. Ne u všech her však funguje hrubá síla (minimax) dobře, ukážeme si tedy, jak hru zanalyzovat.

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. Jak ale něco takového funguje uvnitř? Morfologická a syntaktická analýza, morfologické odvozování, korpusy, tabulky výjimek. Kontext, jeho reprezentace i ignorování. Ukážeme si stavební kameny a možná dojde i na existující výtvory z nich.

Rozpoznávání obrazu ("Počítačová grafika naruby") [ROZ]
Martin Španěl

Co si počít, když dostaneme obrázek a potřebujeme zjistit, co je na něm? Podíváme se na několik základních postupů a fíglů, jak toho zjistit co nejvíc. Ukážeme si nějaké úlohy, kde počítač prohraje i proti batoleti, ale i úlohy, které jsou pro lidi neřešitelné, zatímco počítače je zvládnou hravě. Nakonec ochutnáme trochu z neuronových sítí a dalších oborů umělé inteligence.

Teoretická informatika

Složitější složitost [SLOZ2]
Michal Vaner

Trochu hlouběji o složitosti. Přesná definice výpočetního modelu a velikosti vstupu. Složitost v nejlepším, nejhorším a průměrném případě; amortizovaná analýza. Jak dokázat, že úlohu nejde řešit rychleji, aneb dolní odhady. Porovnávání problémů pomocí redukcí, problémy NP-úplné a ještě těžší.

Předpoklady: SLOZ
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.

Jazyky, gramatiky a automaty [AUTO]
Michal Vaner, Michal Pokorný, Martin Španěl

O jazycích přirozených, počítačových a matematických, jejich popisu a rozpoznávání. Začneme těmi nejjednoduššími: regulární jazyky a výrazy, konečné deterministické a nedeterministické automaty. Pak budeme stoupat po příčkách Chomského hierarchie, kam až to půjde. Jak výpočetně silný je třeba takový automat na kafe?

Omezené třídy grafů ("Nejdelší cesta ve stromu? A co je za problém?") [OTG]
Michal Vaner

Některé problémy nad grafy jsou těžké, ale pokud si omezíme grafy, které můžeme dostat, hned je to jednodušší. Co je to graf omezené stromové šířky, a jak na něm najít hamiltonovskou kružnici v polynomiálním čase. Silně teoretická přednáška.

Předpoklady: GA, SLOZ2
Modely počítačů ("Nač Pentium? Máme Turingovy stroje!") [MODEL]
Michal Vaner, Jirka Setnička

HW se dozvíte, jak fungují „opravdové“ počítače, zde pro změnu na čem počítají teoretici. Všechny počítače jsou si rovny, jen některé jsou si rovnější. Turingův stroj obyčejný, vícepáskový, nedeterministický a univerzální. Random Access Machine (RAM) a Pointer Machine. Až nám začne být smutno, pořídíme si klidně N2 procesorů a spřáhneme je do paralelního počítače (PRAM). Rychlé paralelní slévání a třídění. Pokud zbude čas, ukážeme si buněčné a grafové automaty, nebo třeba dlaždičky v koupelně.

Paralelní výpočty ("Největším nepřítelem lidstva je trojrozměrný prostor.") [PARAL]
Michal Vaner

Když nestihne problém vyřešit jeden procesor, proč jich nepoužít víc? Zkusme na chvíli zavřít oči a představit si, že máme stroj, který umí například pro sečtení N čísel zapnout N procesorů... nebo rovnou N2, všechny se společnou pamětí a společným programem – teoretikové takovému počítači říkají PRAM. Ukážeme si rychlé paralelní algoritmy všeho druhu: aritmetiku, slévání a třídění, grafové algoritmy, vše v (poly)logaritmickém nebo dokonce konstantním čase. Po probuzení do reality všedního dne trocha praxe: SMP, NUMA, Connection Machine, clustery, koordinované screen savery, FPGA.

Programování s omezujícími podmínkami [CSP]
Michal Pokorný

Trochu jiný přístup k obtížným úlohám. Některé úlohy sice vypadají, jako by se za dobu existence vesmíru nedaly vyřešit, nicméně pro rozumně velké vstupy to přesto potřebujeme. Jak backtrackovat rychleji a radostněji – backjumping, backmarking, limited discrepancy search, a jak neprobírat úplné nesmysly – hranová konzistence, konzistence po cestě, bodová konzistence.

Přehled umělé inteligence [AI]
Michal Pokorný

Kdy se vyplatí nakoupit akcie? O čem je tenhle článek? Kde jsem nechal klíče? Počítače se musí prát s problémy, které jsou strašně těžké, ale někdo je stejně řešit musí. Jak to dělají? To se dozvíte na této přednášce. Ukážeme si reprezentaci vnějšího světa a automatické uvažování nad jeho obsahem, na což naváže vyhledávání ve stavovém prostoru a úvod do programování s omezujícími podmínkami. Následovat bude pár základních algoritmů strojového učení. Nakonec se můžou podávat speciality z oblasti zpracování přirozeného jazyka, umělého vidění, nebo třeba plánování a rozvrhování.

Evoluční algoritmy ("Ono se to nějak vyvine.") [EVA]
Karry Burešová

Často nám nějakou dobu trvá, než vymyslíme algoritmus. Co když se nám ale efektivní algoritmus dlouho vymyslet nedaří, a třeba jsme přesvědčení, že to ani nejde? Evoluční algoritmy pracují s nějakou množinou řešení, která různě upravují a kříží, až se (možná) dostanou k nějakému dobrému řešení. Povíme si o těchto algoritmech víc, kdy je použít (a kdy to nejde), jak se to dělá, na co si dát pozor. Reprezentace, operátory, hodnoticí funkce, výběr jedinců. Předčasná konvergence, stagnace, škálování. Zbude-li čas, inspirujeme se také u mravenců a včel.

Programovací jazyky a nástroje

Perl ("Jak Pejsek a Kočička vymýšleli programovací jazyk") [PERL]
Pali Rohár, Kuba Maroušek

Jednoho dne se Larry Wall rozhodl, že nasype do jednoho velkého kotle spousty programovacích jazyků a unixových utilit, za stálého míchání povaří, posléze přecedí, přikoření a implementuje. Tak vznikl Perl, jazyk původně určený hlavně na zpracování textu, ovšem jak se ukázalo, též šikovný na spoustu dalších věcí. Asociativní pole, libovolně složité datové struktury za pomoci referencí, balíčky a objekty zdarma a hlavně regulární výrazy zde a všude. Zkrátka jazyk, který lze jedině milovat nebo nenávidět, nic mezi tím. Co se Perl 5 přiučil od Perlu 6.

Perl 6 ("Slečno, mohu vám ukázat svou sbírku operátorů?") [P6]
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.

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

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ý, Michal Pokorný

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

Ruby ("Jak při psaní webů záplatovat opice a mlátit kachny a přitom být rozumnější než PHP.") [RUBY]
Michal Pokorný

Ruby je super jazyk: je ohebný a snadno pochopitelný a navíc má okolo sebe skvělý ekosystém. Uvidíte jeho základy a snad i poznáte, proč si ho tolik programátorů zamilovalo.

Ruby on Rails ("Webíme bez španělských bot") [RAILS]
Michal Pokorný

V přednášce navazující na Ruby si ukážeme, jak se programují webové aplikace v jednom z nejpoužívanějších frameworků: jednoduché věci budou jednoduché, složité věci budou často jednoduché taky, a nad věcmi, které by měly být automatické, nebudeme muset ani přemýšlet. Hodí se mít ponětí o MVC.

Předpoklady: Ruby nebo jiný jazyk s OOP, nějaké zkušenosti s weby
Programování v jazyce C [C]
Filip Štědronský, Michal Pokorný, Vojta Sejkora

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.

Č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
Programování v jazyce Java [JAVA]
Vojta Sejkora

Java je jeden z nejrozšířenějších objektových programovacích jazyků za posledních deset let. Na přednášce se seznámíme s jeho myšlenkou a naučíme základy. Přednáška je dělaná pro posluchače, kteří umí alespoň základy jiného programovacího jazyka.

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.

Procesy a vlákna ("Koupil jsem dalších 15 procesorů, proč je to stále stejně pomalé?") [THREAD]
Michal Vaner

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
Logické programování v Prologu ("Mohu být svým vlastním dědečkem?") [LOGP]
Pali Rohár, Martin Španěl

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.

Haskell [HASKELL]
Michal Pokorný

Základní kurz Haskellu – moderního funkcionálního jazyka. Ukážeme si syntaxi, vysvětlíme typovou kontrolu a typový systém. Přičichneme k třídám, zrušíme výjimky a zavedeme zcela bezpečná vlákna. Řekneme si, proč v Haskellu nejde komunikovat s okolním světem a proč nám pomůže si okolní svět uložit do proměnné. A že vlastně v Haskellu žádné proměnné nejsou, jen visačky na datech.

Předpoklady: Sklony k algebraickému chápání vesmíru, odvahu tváří v tvář své vlastní tváři a rekurzi.
Základy psaní pro Android [ANDROID]
Michal Pokorný

Android se v našich mobilech, tabletech, netboocích a ledničkách zabydlel, a asi se v nejbližší době neodstěhuje. Na nějakém jednoduchém zadání si ukážeme, jak se pro něj programuje. Vlastní notebook s nainstalovaným Android SDK se může hodit.

Předpoklady: Aspoň pasivní znalost Javy.

Hardware a operační systémy

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, Michal Pokorný

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]
Michal Vaner, Pali Rohár, Filip Štědronský

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.
Unixová černá magie [UBLACK]
Michal Vaner

Když se oprostíme od konvenčních postupů a raději si přečteme, co slibuje POSIXový standard, zjistíme, že je možné dělat mnoho zajímavých triků v jazyce C a podobných. Tak si můžeme vyrobit třeba vlastní implementaci swapu v uživatelském prostoru, kooperativní vlákna či chytrý pluginový systém. A stačí toho k tomu celkem málo, jen se nebát a číst mezi řádky manuálových stránek.

Předpoklady: UNIX
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.

Principy počítačů ("A opravdu uvnitř počítače běhají malí trpaslíci?") [HW]
Filip Štědronský, Jirka Setnička

Vydáme se do země skřítků, kteří pohánějí počítače. Počítačové architektury od hodinek po superpočítač od Craye, jejich křivolaká historie i současnost. Co je to procesor, jak se programuje a jak se chová. Různé druhy pamětí a jejich cacheování. Jak procesory komunikují s okolím – sběrnice, čipové sady, vstupní a výstupní zařízení. A co když je procesorů několik, nebo třeba pár tisíc? Přednáška bude praktická: pár počítačů při ní rozebereme a možná i nějaký postavíme.

Správa paměti ("Když má program sklerózu...") [MEM]
Michal Vaner

Po chvíli zjistíme, že nám lokální a globální proměnné nestačí a je potřeba paměť alokovat dynamicky. Co všechno si musíme udělat sami a co se děje programátorovi „za zády“. Mapování adresního prostoru, ruční alokování a vracení paměti a problémy s tím spojené (chyby programátora), počítání odkazů a daň s nimi spojená (a hele, cyklus), odklízeče odpadu (mark & sweep, kopírovací, generační a jiné triky).

Cache-oblivious algoritmy ("Kešuješ, kešuje, kešujeme") [CACHE]
Michal Vaner, Jirka Setnička, Michal Pokorný

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: Kešu oříšky

Sítě a bezpečnost

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

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.

Sítě II – protokoly a síťové útoky ("Jak si přečíst maily... sousedovy maily.") [NET2]
Michal Vaner

Volné navázání na NET. Budeme si povídat o tom, co za data nám po síti běhá a jaké se k tomu používají protokoly – DNS, FTP, HTTP nebo třeba i mailové 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.

Předpoklady: Základní povědomí o počítačových sítích
DNS ("Zeptej se toho serveru vedle") [DNS]
Michal Vaner

DNS je starý, a přesto moderní protokol. Stojí na něm infrastruktura celého Internetu. Slouží k překladu adres, ale nejen k tomu. Jak zajišťuje spolehlivost, jak bezpečnost. A proč si na něj ani Anonymous netroufnou. V čem je ČR první a co je to digitální lukostřelba.

Sledování sítě ("Nedivte se, že to padá, všichni koukaj na Dalas.") [SCAN]
Michal Vaner

Jak zjistit, co vám uživatelé dělají na síti. Jak chytit spamera, jak odhalit DDOS, a co jsou jen živelné katastrofy. Jak to dělat doma, v malé síti a jak na 100GBit lince. A co si ještě může administrátor dovolit sledovat v ČR a co v Americe.

Předpoklady: NET, tušení, co je statistika.
Kryptologie ("Gbgb arav zbp gnwan mcenin.") [CRYPT]
Filip Štědronský, Jirka Setnička

Kryptologie č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.

Počítačová bezpečnost prakticky ("K čemu je 4096bitový klíč, když si ho napíšu na papírek pod klávesnici?") [NSA]
Michal Vaner

Nejslabším článkem bezpečnosti téměř vždy bývá člověk. Na co si dát pozor, když si chráníte data a když posíláte zprávu. Co je to trust model a komu můžete (ne)věřit. Jak udělat bezpečné přihlášení. Co dělat ve chvíli, kdy jsou nějaká data kompromitovaná. A proč zamykat dveře a školit zaměstnance, aby za sebou zavírali a nikoho nepouštěli. Kam data neukládat a jaká data neukládat vůbec.

Předpoklady: Paranoia
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, viry, phishing, BFU a kde koupit levnou viagru. Nakonec se podíváme na ne zrovna triviální grafový problém, který je v emailech skrytý.

Web uvnitř ("Error 402: Payment Required. Please insert a coin.") [HTTP]
Karry Burešová, 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.

Základy psaní webů [WEB]
Michal Pokorný, Karry Burešová, Kuba Maroušek

Chcete se naučit psát webové stránky? Tady se dozvíte, jak na to. Naučíme se běžnou podmnožinu HTML, jak stránky obarvit a vytvarovat v CSS a možná i jak pomocí nich sbírat a zpracovávat informace.

JavaScript [JS]
Michal Pokorný

Každá chytrá webová aplikace musí dneska mít aspoň trochu JavaScriptu. Ukážeme si, jak v něm psát, rozhýbeme pomocí něj webovou stránku a předvedeme si pár běžných knihoven, které nám to usnadní. Co umí JavaScript současnosti a budoucnosti s HTML5.

Předpoklady: WEB
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.

Výměna dat [DTX]
Michal Pokorný

Jak se programy domlouvají mezi sebou? Komunikace v rámci jednoho počítače, uvnitř datacentra nebo přes celý svět: RPC mechanismy jako DBus, JSON-RPC, XML-RPC, SOAP, nebo gRPC. REST, WebSockets. Univerzální formáty dat s různou strukturovanosti: CSV, JSON, YAML, XML, Protocol Buffers. Scraping aneb jak ukrást, co nám nepůjčí. Na pár praktických příkladech si ukážeme, jak s pomocí cizích služeb psát užitečné programy.

Programovací nástroje a techniky

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

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. Kouzelnické triky: hledáme bugy půlením historie, přepisujeme dějiny. Jak se liší správa zdrojáků v projektech o jednom, deseti a tisíci programátorech. Udržujeme patche k cizímu programu aneb quilt a StGit.

Ako funguje Git ("Aj ten Git sa dá ovládnuť!") [GIT2]
Pali Rohár, Karry Burešová, 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]
Filip Štědronský, Michal Pokorný, Karry Burešová

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.

Testování a kvalita softwaru [QA]
Michal Pokorný

Programování 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í a dalších nástrojích, které pomáhají vyvíjet kvalitní software.

Předpoklady: Aspoň jeden jazyk s OOP
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.

Grafika a typografie

Počítačová grafika ("Namaluj mi beránka...") [GFX]
Jirka Setnička, Vojta Sejkora

Kreslení a zpracování obrazu na počítači. Co vše obnáší vykreslení obyčejné čáry, aby to bylo rychlé a pěkně vypadalo. A co teprve, když ta čáry zatáčí! Vyplňování n-úhelníků a křivkou ohraničených oblastí, flood fill. Také maticové filtry pro zpracování fotek (zaostření, rozmazání), anti-aliasing a dithering. Pokud se stihne, tak navíc základy 3D vykreslování.

MetaFont, MetaPost ("Teď ten obrázek takhle zkroutím a pak ho přeložím.") [MF]
Jirka Setnička

Lehké nakousnutí jazyka, ve kterém můžete opravdu kreslit planimetrické obrázky, ale i třeba písma nebo piktogramy do zadání a řešení KSP. V MetaPostu se obrázky „programují“ a díky tomu se dá vytvořit cokoliv od šachovnice, přes grafy goniometrických funkcí až po fraktály. Podíváme se i jak s fonty zachází TeX a jak vypadají třeba CM fonty.

OpenGL ("Je libo krychličku nebo díru do ní?") [GL]
Michal Vaner

Základy OpenGL, jak vytvořit 3D svět. Kreslení trojúhelníků a jiných úhelníků. Barvy, textury a světlo. Průhlednost a triky s ní. A triky bez ní. Jak udělat žulový náhrobek s vyrytým reliéfním nápisem na 6 obdélníků a hladkou kouli na 16. Jak udělat oheň či vodotrysk jako živý. Náznaky, co vše může dnešní grafická karta dělat a jak moc jsou výrobci her lemry líné.

Předpoklady: GFX
Typografie ("What You See Is all What You've Got!?") [TYPO]
Karry Burešová, 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.

TeX [TEX]
Radim „Rumcajz“ Cajzl, 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í. Probereme základy TeXu, jeho využití při psaní řešení KSP, ale třeba také povídek, ročenky, slajdů pro prezentaci nebo zpěvníku.

Matematické přednášky

Derivace a integrály pro zelenáče [DIFF]
Radim „Rumcajz“ Cajzl, Michal Pokorný, Kuba Maroušek

Rychlokurz derivování a integrování. Rychle prolétneme limity, nadefinujeme si derivace a procvičíme jejich výpočty. Dále si řekneme, co je to integrál, jak se definuje a počítá. Na závěr si ukážeme, k čemu je to všechno dobré v reálném či středoškolském světě – „rychlé“ odvozování fyzikálních vzorců, grafy funkcí, všemožné optimalizace.

Komplexní čísla ("1=sqrt((-1)2)=(sqrt(-1))2=i2=-1. WTF???") [COMPL]
Radim „Rumcajz“ Cajzl

Ukážeme si, co se stane, když začneme počítat s čísly mimo reálnou osu: co je to imaginární jednotka a jak se s ní počítá, komplexní čísla a počítání s nimi v algebraickém, goniometrickém a exponenciálním tvaru, dále převod mezi těmito tvary. Zobrazení a výpočty v Gaussově rovině. Také si řekneme, k čemu se komplexní čísla dají použít v praxi. Pro fajnšmekry lze doplnit o výpočet (reálných!) integrálů pomocí komplexní roviny a reziduové věty.

Základy numerické matematiky [NUM]
Radim „Rumcajz“ Cajzl

Jak s pomocí počítače odhadnout integrál, aniž bychom počítali primitivní funkci? Jak naprogramovat řešení diferenciálních rovnic? Stručně se podíváme na metody numerické integrace (deterministické i Monte Carlo), jednokrokové metody řešení obyčejných diferenciálních rovnic a analýzu jejich vlastností. Na závěr ukážeme aplikace ze simulací reálného světa.

Předpoklady: DIFF
Teorie nemožného ("Neexistence důkazu není důkazem neexistence. Dokažte.") [NONEX]
Martin Mareš

Existenci slona v Africe snadno dokážete tím, že ho přivedete. Jak ale ukázat, že tam žádný slon není, případně že sice je, jenže ho nejde najít pomocí pravítka, kružítka a jeepu? Přímo se to dělá těžko, ale existuje spousta krásných triků, jak neřešitelnost problémů dokazovat. Nesložitelné hlavolamy, nerozvázatelné uzly, nepopsatelná čísla, neroztřetitelné úhly, nealgoritmické problémy a jiné slasti nekonstruktivní matematiky. Jak naopak ukázat, že něco existuje, aniž bychom věděli, jak to vypadá?

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.

Základy algebry [GALG]
Michal Pokorný

Hledáme eleganci každodenní matematiky. Množina s jednou binární operací a přirozenými axiomy: od grupoidu přes monoid a pologrupu k celogrupě. Počítání modulo x aneb cyklické grupy. Eulerova funkce φ a proč jsou prvočísla krásná. Dělitelnost jak ji neznáme a Euklidův algoritmus. Plus mínus krát rovná se okruh, okruh plus děleno rovná se těleso, a těleso je buď nekonečné, nebo elegantně jednoduché. Obecná algebra: zobecnění zobecnění. RSA.

Fyzikální přednášky

Úvod do kvantové mechaniky ("Policista Heisenbergovi: „Víte, jak rychle jste jel?“. Heisenber: „Netuším, ale zato vím naprosto přesně, kde jsem.“") [QM]
Radim „Rumcajz“ Cajzl

Podíváme se na chování našeho světa v rozměrech menších než je atom, kdy je třeba opustit klasické představy a vše popisovat kvantově. Zavedeme vlnovou funkci a pokusíme se ji interpretovat, podíváme se na Schrödingerovu rovnici popisující její vývoj a relace neurčitosti. Jak nahlížet na paradoxy jako je Schrödingerova kočka či kvantové tunelování. Stručně se podíváme na kvantové počítače a kvantové výpočty molekul.

Úvod do fyzikálních modelů [MOD]
Radim „Rumcajz“ Cajzl

Motivační přednáška o tom, jak se programují fyzikálně věrohodné modely reality. Stručně projdeme úlohy mechaniky kontinua (proudění tekutin, pružnost), molekulární dynamiku, kvantovou mechaniku či jejich kombinaci, úlohy v mechanice těles, optimalizace a další. Některé modely na místě vytvoříme a podíváme se, jak fungují.

Předpoklady: Letmá představa o tom, co je derivace
(Kliknutím na název přednášky zobrazíte její detail)

Nematfyzácké přednášky

MFF UK aneb co obnáší matfyzákem býti ("Maminko, ptá se tatínka, kdy už budu matfyzákem?") [MFF]

Nezávazné povídání o Matfyzu a základním matfyzáckém folkloru. Určitě si přečteme matfyzáky sepsaný Úvod do matfyzáka a zazpíváme pár matfyzáckých písní. Zbytek už bude záležet na tom, co budete chtít slyšet.

Horolezectví teoreticky ("Bacha dole, padám") [ROCK]
Michal Vaner

Trocha teoretického vyprávění o tom, jak je lezení po skalách a výškách zajímavé i po technické stránce. Ukážeme si, jaké uzly se hodí znát, jaké raději zapomenout, či jak vyrobit štand (a co to vlastně je). Povíme si o skládání sil, o nosnostech částí jistících systémů a pevnostech v různých směrech. A že je třeba nosit helmu, nebo vám na hlavě přistane vepřová kost. A že nejen správci sítě znají termín „redundance“.

Předpoklady: Základní představy o fyzice.
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.
Svoboda a soukromí v digitálním světě [DRIGHTS]
Filip Štědronský

Kdo, proč a jak se nás o ně snaží připravit? Co o vás ví Google, Facebook, Apple či NSA a jakou nad vámi mají moc? Kdo může z vašeho telefonu vzdáleně číst a mazat data? Čím hrozí „kyberzákony“ a mezinárodní dohody? DMCA, SOPA, ACTA, TT(I)P a další. Bude Hollywood rozhodovat o tom, co (ne)smíte vidět na internetu a Microsoft o tom, jaký software (ne)smíte používat? Proč je často protizákonné upozornit uživatele na bezpečnostní chyby? A kdy váš to vše může stát život?

Investice a akcie [STOCK]
Michal Pokorný

Ach ne, co se všemi těmi penězi? Tady se dozvíte, jak a kde se dá dneska smysluplně investovat a co od toho můžeme očekávat. Řekneme si, co je to inflace, dluhopis, komodita, akcie, opce, index a dividenda. Na příkladech poznáme běžné charakteristiky cenných papírů a jak je výhodně používat.

Kariéra [WORK]
Michal Pokorný

Povídání o různých aspektech živení se softwarem. Jak se pracuje v malých, středních a gigantických firmách, jak si vybrat a jak se do nich dostat? Jak může vypadat 15 let kariéry? Vyprávění zkušeností z Googlu a z Dropboxu, o startupech, o Křemíkovém údolí a vůbec.

Organizování ("Ten dělá to a ten zas tohle aneb co obnáší organizátorem býti") [ORG]
Jirka Setnička

Volné povídání o tom, co se všechno skrývá za organizováním různých seminářů a podobných akcí, primárně pak KSPčka. Jaká práce, jaké radosti a jaké starosti s sebou organizování nese, co se přitom člověk může naučit a také pár cenných rad do života. Jak se z toho nezbláznit a pár bláznivých příhod k tomu.

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

Technika ve sci-fi ("Scotty, beam me up") [SCIFI]
Jirka Setnička

Technické objevy v různých sci-fi (Star Trek/Gate/Wars i dalších) a pohled na ně z perspektivy dnešních fyzikálních znalostí. Proč se v Hollywoodských filmech ozývá ve vesmíru zvuk laserů, i když je tam vakuum, a je možné cestovat rychleji než světlo? Také možná zabrousíme do některých filozofických otázek – primární směrnice o nevměšování ve Star Treku a jiné.

Jazykohraní ("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo.") [LANG]
Karry Burešová, Martin Mareš

Pojďme si společně hrát s jazyky. Pokusíme se rozluštit útržky více či méně obskurních (a více či méně existujících) jazyků; přelouskáme také pár korektních, ale hlavu motajících konstrukcí v jazycích pro nás zcela běžných. U toho probereme některé zajímavé vlastnosti, které jazyky mají, a přihodíme různé perličky, kterými se exotičtější jazyky liší od těch pro nás méně exotických. To vše zejména prakticky a hravě.

Železnice [RAIL]
Karry Burešová, Martin Mareš

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

Počítač bez myši ("Může počítač trpět fóbií z hlodavců?") [KEYB]
Karry Burešová

Ruce programátora patří na klávesnici, přesto se spousta věcí běžně dělá pomocí myši. Pojďme se podívat na programy, které s ovládáním klávesnicí počítají, a triky na ty ostatní. Spíše diskuse než přednáška, postřehy a zkušenosti všech zúčastněných jsou vítány.

Sebeorganizace ("Ten úkol bych měl udělat ideálně včera.") [SELFMGM]
Karry Burešová

Běžný člověk má spoustu práce a úkolů a někteří lidé mají také spoustu starostí s tím, jak to všechno zvládat. Návod na štěstí vám nedáme, ale ukážeme vám kupu prostředků, které jiní s úspěchem používají (a jiní je nechápou). Malé ztrácející se papírky, velké neztrácející se papíry. GTD, myšlenkové mapy. Pomodoro. Časové snímky. SMART, KARAT a další zásady. Pár slov na téma lenora versus prokrastinace. To vše tedy od člověka, který by měl úkoly dělat ne včera, ale před týdnem.

Reálné souboje herního typu [BATTLE]
Radim Cajzl, Vojta Sejkora

Workshop pro odreagování z přednášek. Vysvětlíme si pravidla řeckořímského zápasu a „šermu“ s „dřevárenskými“ zbraněmi, povíme si, jak se při soubojích nezranit a oboje vyzkoušíme v praxi. Zájemci nechť přijdou v oblečení, které může přijít k újmě na celistvosti.

Předpoklady: Žíněnky nebo suchý venkovní plácek
Hudební nauka pro smrtelníky ("Stupnice se skládá ze sedmi trpaslíků, nebo dvanácti měsíčků?") [MUSIC]
Kuba Maroušek

Vše o hudební teorii, co jste ve škole nechápali a báli jste se zeptat. Ve svižném tempu si zadefinujeme tóny, intervaly a stupnice a ukážeme si, jak to celé souvisí s matematikou. Po troše nadávání na klasickou hudební notaci se přesuneme k akordům a základům harmonizace v evropské hudbě. Zahrajeme si pár čtyřakordových písniček a třeba složíme i nějakou vlastní. Vhodné jak pro hráče na hudební nástroje, tak ostatní, pro které byla hudba dosud velkou záhadou.

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š, Jirka Setnička

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.

Rozbalit všechny přednášky