Krutá Smršť Přednášek 2019
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
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
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.
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)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.
V rámci této přednášky se budeme zabývat problémy tak těžkými, že nikdo na světě pro ně neumí vymyslet efektivní (rozuměj polynomiální) algoritmus. Spousta lidí dokonce věří, že to vůbec možné není. Abychom mezi tyto problémy pronikli, seznámíme se s pojmy NP-úplnosti a NP-těžkosti. Především si však konkrétní těžké úlohy ukážeme a naučíme se i některé těžké úlohy rozpoznat. Závěrem si řekneme, jak se s těžkými úlohami vypořádat v praxi.
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ý 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.
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).
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í.
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.
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 číselNa pomezí mezi lineární algebrou a teorií grafů se nachází algoritmus PageRank. Jedná se o zajímavé dílo Larryho Page, na kterém ve svých začátcích stál celý Google. Povíme si o tom, co jsou to vlastní vektory, co to má společného s Markovovskými procesy a proč občas může fungovat definice kruhem.
Programovací jazyky a filosofie
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.
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.
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.
import antigravity
")
[PYTH2]
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: PYTHVyrá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é.
Jak nečekat až se něco stane, ale místo toho reagovat až když se to opravdu stane. Jak pracovat s událostmi, jak programovat událostmi řízené systémy. Ukážeme si jaké problémy za nás řeší Promises a vrátíme se od řešení událostí k normálnímu programování. Jak se nezbláznit z toho, že se děje několik věcí současně.
Složitost a vyčíslitelnost
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.
Podívejme se, na jakých počítačích programují čistokrevní 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. Trocha minimalismu aneb stroj s počítadly. 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ě.
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á?
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: Základní povědomí o vyčíslitelnosti, přinejmenším co je Turingův stroj a halting problém.Programátorské nástroje
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.
Používáte Git pro všechny své programy a k svačině místo novin čtete commit logy svých oblíbených projektů? V tom případě pojďme nahlédnout pod pokličku, jak Git funguje uvnitř. Reprezentace historie pomocí hešování grafů. Pracovní strom, index, commity a jejich adresy, větve. Pack files jako elegantní způsob komprese dat na disku i na síti. Kouzelnické triky: hledáme bugy půlením historie, přepisujeme dějiny, automaticky konvertujeme soubory. Git v praxi: 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 StGit.
Předpoklady: GITKdo 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. Ukážeme si několik nástrojů, jak si pomoci z nejhoršího. Mezi nimi
třeba gdb, řádkový debuger (odvšivovač), strace, nebo valgrind. Kdy je použít a kdy se více hodí
printf
. Proč assert
je tak užitečná věc.
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.
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Čtení cizího kódu se na přednášce spíš nenaučíte, tak se na to zkusme podívat více prakticky. Projdeme si nějaké kousky kódu a zkusíme se v nich vyznat, zjistit co dělají a co by třeba dalo opravit/zlepšit.
Předpoklady: Pošlete nám prosím nějaký kousek kódu, ať se můžeme zabývat něčím co vás zajímá :)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
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.
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.
Vysypeme z rukávu, jak se dá vyrobit procesor, a půjdeme ho zrychlit. Proč nejde jednoduše zvýšit frekvenci, a jak to teda udělat. Jak ušetřit čas při přístupu do paměti, na co je ta slavná predikce skoků a jak se dá spouštět víc instrukcí najednou a si přeházet program podle toho jak se to zrovna procesoru hodí.
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? Jak se procesory poperou o jednu RAMku. Komunikace pomocí sdílední dat a sdílení dat pomocí komunikace. Atomické operace, zámky, semafory, komunikační kanály. Jak fungují vlákna v různých jazycích. Kdy je lepší vlákna použít, a kdy ne.
Předpoklady: Trochu představy o hardwaruSítě a bezpečnost
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ý.
Pod skratkou VOIP sa označuje prenos hlasu cez internet. Na tejto prednáške sa budeme venovať protokolu SIP a pridruženým protokolom SDP a RTP, ktoré sú azda najviac rozšírené. Takmer všetky dnešné pevné a internetové linky, ktoré poskytujú telefónni operátori zákazníkom, sú práve na protokole SIP. Ako prebieha priame volanie na IP adresu telefónnu, ako sa volá cez prostredníka (proxy server) a ako do PSTN siete. Ako sa riešia problémy s NAT a prečo je SIP ALG taký zlý. Akým spôsobom sa dá prenášať FAX, textová správa, video hovor alebo konferenčný audio/video hovor. DNS záznamy pre verejné telefónne čísla (ENUM) a prečo sa to neujalo.
Předpoklady: NETInternetoví 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: NETMít router s automatickými aktualizacemi zní skvěle. Co se stane, když budeme chtít release před vydáním otestovat?
Dosť často sa programy nepíšu iba na jedno spustenie, ale sa používajú dlhé roky. Veľa z nich naviac bude používať úplne niekto iný. Na tejto prednáške sa pozrieme na časté chyby v programoch a ako im predchádzať. Ako klasifikovať či chyba je závažná a bezpečnostná. Ďalej si povieme, čo robiť v prípade, ak nájdeme nejakú (možno bezpečnostnú?) chybu. Komu ju oznámiť a komu radšej nie.
Většina webu je dnes založena na protokolu HTTP, pojďme se podívat, jak funguje uvnitř. Na první pohled vypadá jako triviální textový protokol na stahování souborů, ale ve skutečnosti umí docela hodně. Metody GET, POST, ale třeba i PUT. Dohadování o typu dat, jazyce, kompresi. Cacheování a revalidace. Křupavé sušenky. Jak vlastně fungují URL adresy. Ukážeme si nějaké webové útoky a jak jsou od sebe izolované různé weby. Nakonec do toho všeho přimícháme SSL/TLS a máme HTTPS. Malá ochutnávka nových verzí HTTP.
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.
Django je framework (sada knihoven a nástrojů) výrazně zjednodušující psaní webových aplikací v Pythonu. Řeší za vás „otravné“ nízkoúrovňové detaily, jako práce s databází či vytváření a zpracování HTML formulářů, taky vám třeba (polo)automaticky vytvoří administrační rozhraní. Vy se tak můžete soustředit na to, co vaše aplikace dělá užitečného a psát co nejméně zbytečného kódu. Ukážeme si přehled funkcionality Djanga, jak napsat jednoduchou aplikaci a jak ji nasadit na webový server.
Chtěl sis někdy vytvořit vlastní webovou stránku, ale ručně psát HTML a CSS tě otravuje? Zajímalo by tě, jak z Markdownu generovat pěkně vypadající, databázemi a jinou havětí nezatížené webové stránky? Nerozumíš názvům zbylých přednášek v tomhle slotu? Pokud jsou tvé odpovědi na některé z těchto otázek ano, pak je tato přednáška právě pro tebe! Ukážeme si, jak si pomocí Jekyllu vytvořit, spravovat a v neposlední řadě také publikovat webovou stránku.
Prolétneme klasickou historií šifrování a utajení informace od starověku až do relativně nedávné minulosti. Toto bude spíše přehledová přednáška z rychlíku, žádnou hlubokou teorii nečekejte.
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 číselProgramá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
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.
Srdcem mnoha dnešních technických hraček je mikrokontrolér. To je čip, na kterém je integrovaný nejen procesor, ale i paměť a spousta zajímavých periferií. Ukážeme si, jak se mikrokontroléry programují, jaké periferie typicky obsahují a jak je používat ke komunikaci s okolním světem. Něco si vyzkoušíme i prakticky na STM32.
Předpoklady: Hodí se základní znalost jazyka C.V čem programovat STM32, pokud vás neláká Arduino ekosystém, ale nechcete si to celé psát sami. Budeme se držet jazyka C, ukážeme si oficiální HAL knihovnu včetně toho, jak si většinu periferií naklikat a komunitní knihovnu libopencm3, která je stručnější a podporuje více mikrokontrolérových rodin.
Mezi programem ve vašem oblíbeném příčetném programovací jazyce, který jste právě dopsali, a tranzistory uvnitř vašeho procesoru leží obrovské území obývané překladači, JITy, 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.
Matematické a fyzikální přednášky
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.
Pokračování teorie čísel, které nás dovede až k RSA – asi nejpoužívanějšímu asymetrickému šifrovacímu algoritmu dnešní doby. Počítání modulo složené číslo a Eulerova věta. Jak RSA funguje, proč funguje a jestli bude ještě fungovat. Generování klíčů, faktorizace kontra testování prvočíselnosti. Časová složitost aritmetiky.
Věty o rozložení prvočísel jsou tradičně považovány za jednu z nejmysterióznějších oblastí teorie čísel. Zde ukážeme, jak některé z nich odvodit snadným pozorováním vlastností kombinačních čísel: rozbor časové složitosti Eratosthenova síta, Bertrandův postulát („Mezi n a 2n je aspoň jedno prvočíslo.“), hustota prvočísel.
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í.
Teorie grafů trochu teoretičtěji. Různé druhy grafů a jejich vlastnosti. Stromy a lesy. Kreslení grafů jedním tahem. Princip sudosti a skóre grafu. Jaké speciální vlastnosti mají rovinné grafy a jak je lze obarvit šesti nebo možná i pěti barvami. Jak poznat, že dva grafy (ne)jsou isomorfní. Mosty, artikulace a ušaté lemma. Párování, střídavé cesty a Hallova věta.
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.
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.
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 :–).
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.
return 0.5*dead + 0.5*alive;
")
[QC]
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.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.
Když se řekne „krychle“, spousta lidí si představí těleso. Tady se budeme bavit o grafech, a grafové krychličky mají spoustu hezkých vlastností, které se uplatňují v mnoha oblastech matematiky. Můžou se hodit základy lineární algebry, ale žádné složitosti nečekejte.
Ostatní
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.
Pokročilejší přednáška o TeXu pro ty, kdo ho už nějaký čas používají. Budeme v TeXu programovat, kreslit obrázky, otáčet text, používat různé podivné fonty a třeba si i vysázíme odstavec ve tvaru kolečka.
Nematfyzácké přednášky
Oddychová interaktivní přednáška o historii a vzniku metalu a jeho subžánrů. Slavné i neslavné příběhy různých interpretů. V případě zájmu můžeme dát několik důležitých rad jak přežít metalový festival. Dozvíte například se co je to blastbeat nebo breakdown. Budeme si dělat srandu z metalových stereotypů. Bude i živá ukázka obskurdních hudebních nástrojů a možnost si je vyzkoušet. Ale hlavní otázka zůstává stejná... BUT DOES IT DJENT ?!
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.
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é.
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.
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 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, ...
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.
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í.
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.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?
Altruismus znamená použití nějakého množství vlastních zdrojů (peněz, času, talentu, ...) na pomoc ostatním lidem a světu. Ale svět má mnoho problémů a k jejich řešení je možné přispět mnoha různými způsoby. Jak si vybrat? Většina lidí si vybere něco, co je jim emocionálně blízké. Ale to nemusí být úplně nejšťastnější. Ukazuje se totiž, že různé způsoby pomoci se výrazně liší efektivitou – tím, kolik reálného užitku (např. zachráněných životů) můžeme získat s daným množstvím vložených zdrojů. Často i o několik řádů. Jaké jsou nejvýznamnější problémy světa a nejefektivnější způsoby jejich řešení? Kdy je lepší finančně podpořit nějakou charitativní organizaci (a jak si vybrat kterou), dobrovolničit či přímo pracovat na řešení nějakého problému? Jak si vybrat kariéru s ohledem na pozitivní přínos světu? Efektivní altriusmus je rostoucí celosvětové hnutí, které se snaží vědeckou metodou hledat odpovědi na tyto a další otázky.
Ukážeme si, jak jednoduché principy z matematické disciplíny teorie her vysvětlují mnoho na první pohled zvláštních jevů v lidské společnosti i přírodě – poškozování životního prostředí, monopol vědeckých časopisů, jaderné zbrojení, úspěch Facebooku, předražené zboží a další. Povíme si o známém vězňovo dilematu a problému obecní pastviny. Seznámíme se s pojmem Nashova ekvilibria – aneb proč někdy všichni hráči dělají rozhodnutí, které vede na pro ně nepříznivý výsledek, ale nikdo není motivován své rozhodnutí změnit. Ukážeme si, že se občas paradoxně vyplatí omezit si vlastní možnost volby. Další aplikace: aukce, vyjednávání, volební systémy, ...
V první části projdeme způsoby aktivního i pasivního zaměřování všech možných věcí, zejména letadel a počasí. Ve druhé části ukážu, jak jsem z obyčejných USB klíčenek pro příjem televize postavil pasivní radar pro zaměřování vysílačů pracující na stejném principu jako Tamara. Funkcionalitou a citlivostí se sice nemůže skutečné Tamaře rovnat, ale opravdu funguje a dokáže zaměřit reálné rozhlasové a televizní vysílače.
Crashcourse do fungování organismů, zejména od DNA přes RNA k proteinu a všechno co s tím souvisí. Co je to DNA? Co znamená „GMO“ na obalu od kukuřičných lupínků? Jak buňka ví, co má dělat? Jak se čte genetický kód?
Kreslíte plošňáky fixou, krabičky vyřezáváte z překližky ručně a konektory krimpujete kombinačkami? V dnešní době je spousta věcí jednodušších, jen o nich vědět. Přednáška o tom, co si kde dnes můžete relativně levně nechat udělat, co si udělat sami a jaké na to použít nástroje a nářadí.
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í). Volné pokračování minulého roku.
Popis fyzické vrstvy (solid i wireless), nejpoužívanější protokoly a problematika opravy chyb. Jako vždy bude prostor si probírané technologie vyzkoušet.
Program vytvářený účastníky
Prostor pro minipřednášky (cca 3-10 min každá) z řad účastníků na libovolná témata. Pro tento blok hlasujte pouze, pokud byste si nějaký lightning talk chtěli připravit.
Neorganizovaný prostor pro sdílení nástrojů, postupů a triků, které používáte pro šetření času a zlepšení produktivity či jiných aspektů života. Od skriptů a automatizace přes zefektivnění každodenních činností po zlepšení soustředěnosti.
Prostor pro sdílení doporučení na knihy, které vám přijdou zajímavé – jak odborné ze všech možných oborů, tak beletrie. Představení bude probíhat formou lightning talks: každý dostane cca 3 min na představení jedné knihy. V případě dostatku času možno představit i více knih.