Jarní soustředění KSP 2016

Seznam přednášek – Karolínka

Přihlásit

Milý účastníku jarního soustředění KSP, máš možnost vybrat si přednášky předem, aby se organizátoři mohli pořádně připravit již před soustředěním 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 toho, který již existoval) 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), podle Tvého hlasování se budeme pokoušet uspořádat Tebou vybrané přednášky, aby měly co nejmenší překryv.

Hlasování končí v neděli 20. 3. ve 20h. Na hlasy se pokusíme brát ohled i později, ale čím později zahlasuješ, tím menší bude vliv na výběr přednášek. Na samotném soustředění 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 na soustředění přemluvit k přednášení někoho z organizátorů.

  • Základní přednášky
  • Pokročilé přednášky
  • Půlnoční přednášky
Rozbalit všechny přednášky
(Kliknutím na název přednášky zobrazíte její detail)

Základní přednášky

Mezi těmito přednáškami jsou věci, které by měl každý začínající programátor umět. Bez pochopení většiny věcí přednášených na těchto přednáškách se budete na pokročilých přednáškách, které na ně navazují, jen obtížně chytat. Doporučujeme proto nejdříve zvládnout tyto přednášky a osvěžit si nějaký základní programovací jazyk, než se pustíte do pokročilejších věcí.

Základy programování ("Má x=x+1 řešení?") [ZAKL]

Úvodní trojdílná přednáška pro ty, kteří mají s programováním jen malé, nebo dokonce žádné zkušenosti. Vysvětlíme si od základů problematiku programování, jako je zápis cyklů, podmínek a funkcí, ukážeme si základní datové typy (n-tice, seznamy, slovníky), datové struktury (fronta, zásobník) a zkusíme si prakticky naprogramovat několik základních algoritmů. Vše se bude ukazovat hlavně na jazyku Python, který je jednoduchý na naučení a přesto zároveň velmi mocný. Jednotlivé přednášky se budou prolínat s přednáškami ZALG.

Základy algoritmizace, složitosti a datových struktur ("Co by měl každý programátor znát.") [ZALG]

Základní vícedílný kurz algoritmů a datových struktur, který se bude prolínat se ZAKL. Jak poznat který algoritmus je efektivnější? Přehled základních algoritmů. Co je to datová struktura a několik jejích ukázek. Vše si procvičíme na příkladech.

Grafy & algoritmy I ("Pokud jste ještě neslyšeli o informatických grafech, tak tato přednáška je právě pro vás.") [GA1]

Úvod z teorie grafů a použití grafů při řešení algoritmických problémů. Naučíme se hledat nejkratší cestu v bludišti, pochopíme základní princip, jak funguje GPS navigace a mnohé další. Vše si procvičíme na konkrétních příkladech.

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

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.

Základy teorie čísel a geometrie v algoritmech [TEGE]
Karel Tesař, Jirka Setnička, (Jenda Hadrava)

Jak spočítat obsah mnohoúhelníku? Co je to konvexní obal? Jak se efektivně počítá k-tá mocnina čísla n? Jak efektivně v úlohách počítat modulo prvočíslo? A mnohé další.

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

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.

Základní programovací jazyky a techniky

Programování v jazyce C [C]

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.

Python [PYTH]
Michal Pokorný, Martin Šerý, Dominik Macháček, Jirka Setnička, (Karry Burešová)

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

C++ a objektově orientované programování ("I život je objektový, tak proč ne programování...") [OOP]
Michal Pokorný, Ondra Hlavatý, Jirka Setnička

Každý odrostlý programátor by měl umět programovat objektově! Vysvětlíme si, co to znamená a k čemu nám to pomůže. Povíme si, co je to objekt a co třída, ukážeme si základní vlastnosti objektů (hlavně dědičnost a zapouzdření) a různé další speciality jazyků s OOP. Ze speciálnějších věcí se zmíníme třeba o virtuálních a abstraktních metodách, pozdní vazbě a polymorfismu nebo překrývání metod. Dá-li čas, možná se stihne i pár návrhových vzorů. Vše budeme předvádět na C++, ale pokusíme se i o porovnání s jinými jazyky.

Předpoklady: Znalost programování, nejlíp v něčem podobném C.
(Kliknutím na název přednášky zobrazíte její detail)

Pokročilé přednášky

Tyto přednášky by měly jednak dále rozvíjet znalosti ze základních přednášek, ale také nabízet další zajímavé programátorské techniky a technologie, které se mohou každodenně hodit.

Algoritmizace

Intervalové stromy ("Já bych ty intervaly nejradši... dal do stromu!") [ITREE]
Karel Tesař, Karry Burešová, Jirka Setnička, (Jenda Hadrava)

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

Toky v sítích ("Když je v grafu povodeň, těsní?") [TOKY]
Petra Pelikánová, Kuba Maroušek, Jenda Hadrava, 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ů.

Datové struktury pro pokročilé ("Pojďme na procházku binárním lesem") [DS]
Martin Mareš, Ondra Hlavatý, Jenda Hadrava, Karry Burešová, (Vojta Sejkora)

Přehled šikovných datových struktur, které se nevešly do ZALG. Vyhledávací stromy a různé způsoby jejich vyvažování a „ozdobení“. Hešování aneb hledáme v téměř konstantním čase. Líné datové struktury a amortizovaná složitost.

Geometrie a počítače ("Nerušte mé kruhy! (ani jiné kvadriky)") [GEOM]
Martin Mareš, Jenda Hadrava, Karel Tesař, 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.

Herní algoritmy ("Když nemáte na to, abyste vyhráli šachový turnaj...") [AIGAME]
Jenda Hadrava, Karry Burešová, (Vojta Sejkora)

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.

Parsing čili analýza textu ("1+2*4 = 12") [PARSE]
Vojta Sejkora, Martin Mareš, Karry Burešová, Jirka Setnička, (Jenda Hadrava)

Často potřebujeme načíst nějaký složitý textový vstup: matematický výraz, webovou stránku v HTML, zdroják programu, .... Ukážeme si, jak texty analyzovat (neboli parsovat), aniž bychom v nich zabloudili: rozdělení na lexikální a syntaktickou vrstvu, železničářský algoritmus na parsování výrazů, popis syntaxe pomocí regulárních výrazů a gramatik.

Těžké problémy [HARD]

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.

Strojové učení ("Umí počítače přemýšlet?") [MACHINE]
Karel Tesař

Ú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í? V přednášce půjdeme více do široka, abychom viděli různé ideje. Detailům se budeme věnovat méně.

Další programovací jazyky a techniky

Programování v jazyce Java [JAVA]
Michal Pokorný, Kuba Maroušek, Karel Tesař, (Vojta Sejkora, Karry Burešová)

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.

Programování v jazyce C# ("Co se stane, když strčíme Céčko za mříže?") [CIS]
Michal Pokorný, Jirka Setnička, (Dominik Macháček)

C# je moderní objektově orientovaný jazyk, který za patnáct let svého bouřlivého vývoje dostal do vínku některé funkcionální rysy. Mimo popisu základních konstrukcí si projdeme také nejzákladnější vestavěné třídy.

Perl ("Jak Pejsek a Kočička vymýšleli programovací jazyk") [PERL]
Kuba Maroušek, Martin Mareš, Karry Burešová, Jirka Setnička

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.

C++ [CPP]
Ondra Hlavatý, Jirka Setnička, (Jenda Hadrava)

Pro znalé základů nabízíme středně hlubší seznámení s C++. Určitě přijdou na řadu reference, přetěžování operátorů, metaprogramování pomocí templatů a mechanismus výjimek. Pokračovat se bude běžně používanými funkcemi standardní knihovny jazyka, jako jsou například I/O streamy nebo užitečné datové struktury a algoritmy. Nakonec můžeme za odměnu ukázat některé novinky ze standardu C++14.

Předpoklady: C, OOP
Prolog ("Co s jazykem bez přiřazovacího příkazu?") [LOGP]
Jenda Hadrava, (Dominik Macháček, Karry Burešová)

Proč psát dlouhé a složité programy, když stačí dostatečně přesně popsat situaci a pak se prostě zeptat? Toť princip logického programování, který si ukážeme na Prologu.

Webové stránky [WWW]
Michal Pokorný, Kuba Maroušek, Martin Mareš, Karry Burešová

Co se děje za oponou, když do prohlížeče zadáte adresu svých oblíbených stránek? A jak si takovou stránku taky pořídit? Přelet nad protokolem HTTP, seznámení s HTML a předvedení kaskádových stylů. Jak fungují dynamické stránky od formulářů až po JavaScript běžící v prohlížeči.

Jazyk SQL ("SELECT something FROM knowledge LIMIT 90min") [SQL]
Michal Pokorný, Martin Mareš, Karry Burešová

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.

JavaScript [JS]
Michal Pokorný, Jirka Setnička

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
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
Počítačová grafika ("Namaluj mi beránka...") [GFX]
Vojta Sejkora, Martin Mareš, Jenda Hadrava, Jirka Setnička

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

Hardware, operační systémy a další technikálie

Principy počítačů ("A opravdu uvnitř počítače běhají malí trpaslíci?") [HW]
Martin Mareš, Ondra Hlavatý, Jenda Hadrava, Karry Burešová, 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.

Hradla ("(A NOR B) NAND (A XOR B) = 1") [HRAD]
Jenda Hadrava, (Karry Burešová)

Krátký úvod do historie, nástin vnitřností, schémata, schematické značky, konvence. Povíme si něco z teorie, o Booleově algebře a De Morganových zákonech. Podíváme se na spojitost s digitálními obvody. V neposlední řadě si ukážeme, jak rychle a efektivně umíme problémy hradly řešit.

Od zdrojáku k programu ("Před spuštěním program přeložte. Stačí třikrát podélně?") [KOMP]
Martin Mareš, Ondra Hlavatý, Jenda Hadrava, (Karry Burešová)

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.

UNIX ("UNIX gives you enough rope to hang yourself.") [UNIX]

Kamarád u černobílého textového okna září blahem. Chcete poznat, proč? Jak UNIX vznikl, k čemu je dobrý a k čemu třeba není. UNIXová filosofie. Kouzlo skriptů. Kouzlo speciálních souborů. Kouzlo propojování programů. Kouzlo nechtěného. UNIX byl napsán v C a C vzniklo pod UNIXem.

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

Jak funguje Internet a počítačové sítě vůbec. Lokální sítě s dráty i bez nich a různé způsoby, jak je mezi sebou propojovat. Protokoly rodiny TCP/IP a nad nimi postavené aplikační protokoly: DNS, SMTP, HTTP a celý zvěřinec dalších. Bezpečnost sítí a všelijaké útoky na ni. Pár taktů hudby budoucnosti: IPv6, multicasting, přenos v reálném čase atd.

Komunikace po síti ("Napíšeme si vlastní Apache!") [COMM]
Ondra Hlavatý

Co to ve skutečnosti znamená otevřít si socket a jak pohádku o Alici a Božetěše převést na řádky kódu. Jak si povídat mezi dvěma programy v Céčku pod UNIXem. Zahrajeme si na instalatéry a protlačíme data trubkou. Nakonec si ukážeme standardní návrh síťových programů. Notebook s linuxem sebou.

Systém pro správu verzí Git ("U svatýho tučňáka, kdo sem napsal tohle? Ono to tvrdí, že JÁ?!") [GIT]
Martin Mareš, Jenda Hadrava, Karry Burešová, 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.

Aplikace informatiky

Počítačová lingvistika ("Jsou bramborové knedlíky plněné bramborami?") [CMPLING]
Karry Burešová, (Dominik Macháček)

Zejména motivační přednáška o počítačové lingvistice a počítačovém zpracování přirozeného jazyka. 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 ukážeme si, co se zatím umí používat.

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.

TeX ("No pages of output. Ask a TeXnician.") [TEX]
Martin Mareš, Jirka Setnička, (Kuba Maroušek, Karry Burešová)

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.

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.

Komprese dat ("Jnm idln kpln j nstlčtln.") [ZIP]
Martin Mareš, 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).

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

Matematické přednášky

Pravděpodobnost [PST]
Dominik Macháček

Jak matematici zacházejí s náhodou? Co je to pravděpodobnost, náhodná veličina, střední hodnota, k čemu je ten kloboukový graf a lemma o džbánu, kterému se ucho utrhne? Podíváme se na odvětví matematiky zkoumané původně kvůli karbaníkům a gamblerům a také na to, jak se dá pravděpodobnost využít v programování: výpočet čísla π a algoritmy Monte Carlo.

Kryptologie ("Gbgb arav zbp gnwan mcenin.") [CRYPT]
Martin Mareš, Jenda Hadrava, Jirka Setnička, (Karry Burešová)

Kryptologie se zabývá šiframi, jejich konstrukcí a zejména jejich luštěním. Začneme se symetrickými a asymetrickými šiframi a jednosměrnými funkcemi. Z nich pak vybudujeme složitější kryptografické protokoly na bezpečný přenos, autentikaci a digitální podpisy. Vymyslíme dokonce, jak si hodit korunou po telefonu, a také předvedeme nerozluštitelnou šifru.

Diskrétní matematika ("O Dlouhém, Širokém a šatnářce") [DM1]
Martin Mareš, Jenda Hadrava, Karel Tesař

Úvodní minikurz diskrétní matematiky (to je opak matematiky spojité, čili mimo jiné kombinatorika). Seznámení s relacemi a jejich vlastnostmi. Dozvíte se také něco o uspořádaných, nezávislých a jiných množinách. S pomocí kombinatoriky možná vyřešíme problém zmatené šatnářky. Hallova věta nám pomůže určit, jestli má cenu snít o perfektním párování.

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á?

Derivace a integrály [DIFF]
Kuba Maroušek, Jenda Hadrava

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á. Hlavně si však 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.

Lineární algebra ("Vektorový prostor je místo, kde žijí vektory.") [LA]
Petra Pelikánová, Martin Mareš, Jenda Hadrava, (Martin Šerý)

Lineární algebra vznikla jako formalizace geometrie a tuto souvislost si ukážeme. Popíšeme vektorové prostory, které se skládají z vektorů. Jaké operace s nimi umíme provádět a co všechno musí splňovat? Kdy jsou vektory závislé a kdy nezávislé? Co je to lineární kombinace, obal a generátor? Co je to dimenze vektorového prostoru a jaké má souvislosti s předchozími pojmy?

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
(Kliknutím na název přednášky zobrazíte její detail)

Půlnoční přednášky

Aneb přednášky přednášené (nejen) o půlnoci na různá zajímavá témata nejen o informatice. Pokud nějaká z nich nebude oficiálně vypsaná, je možné si konkrétního organizátora ve volné chvíli chytit a přesvědčit ho k přednášení.

Teorie množin ("Jablka a hrušky se dají nejen sčítat, ale třeba i násobit.") [TEMNO]
Martin Mareš, Ondra Hlavatý

Základoškolský přístup „množina je kupříkladu miska jablíček“ nabízí spoustu otázek: Když jablíčka přesuneme do sáčku, bude to stále tatáž množina? A co když kousek jablíčka ukousneme? V rámci této přednášky se pokusíme o vybudování teorie množin od základů (rozuměj axiomů) a to v duchu Zermelo-Fraenkelovském. Pak uvidíme, jak na teorii množin vystavět zbytek matematiky.

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.

Počítač bez myši ("Může počítač trpět fóbií z hlodavců?") [KEYB]
Michal Pokorný, Martin Mareš, 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.

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

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. Jak se jazyky vyvíjejí a jak se navzájem ovlivňují. Kde jsme přišli k pravidlům a jaký je jejich smysl. Existují synonyma? Proč je jazyk nejednoznačný a proč je to dobře. Jak se na jazyk dívá matematik a jak se na matematiku dívají lingvisté. Jak vzniklo písmo? A jak otazník? Jak zapsat zachrochtání a jak třeba mlasknutí &c.

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

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.

Orientace [ORI]
Martin Mareš, (Karry Burešová)

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.

Základy první pomoci ("Jak někomu zachránit život a jak málo k tomu stačí") [ZDRAV]
Ondra Hlavatý, Karry Burešová, 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ě.

Auto z pohledu technika ("Co mi to vrčí pod kapotou a proč bliká ta kontrolka?") [CAR]
Jirka Setnička

Nahlédneme do tajů starších i novějších aut. Podle zájmu se můžeme pobavit o tom, jaký je rozdíl mezi benzínovým a naftovým motorem, či proč se auta staví zrovna tak, jak se staví. Na praktické ukázce probereme (a trochu rozebereme) auto a co nejvíce si ukážeme – z pohledu běžné údržby i jednoduchých oprav. Určeno pro každého, koho čeká autoškola, nebo ho jen baví mechanika.

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.

Autonomní roboti ("Proč se točí na místě, když má jet rovně!?") [ROBOT]
Jenda Hadrava

Jak postavit robota a jak jej naprogramovat? Povídání na pomezí virtuálního a reálného světa. Čím robot vidí okolí, jak určuje svoji pozici a jak se pohybuje? Povíme si také, kterak chytrý software může nahradit špatný hardware (a naopak).

Počítačové vidění ("Na fotce je zcela jistě přechod – pokud to není pouhý stín.") [VISION]
Jenda Hadrava

Co potřebujeme k tomu, abychom naučili počítač vidět? Povíme si o předzpracování obrazu, vylepšování, dokreslování a transformacích. Podle čeho počítač rozeznává význačné body a objekty? Uvidíme, co všechno se už dnes umí řešit strojově, a kdy ještě stále potřebujeme člověka.

Vektorizace obrázků ("Jak se rodí hroši?") [SVG]
Petra Pelikánová

Každý hezký text se neobejde bez obrázků. Dozvíte se jak se z hlavy někoho kreativního dostane obrázek hrocha až na leták KSP. Jak a proč z náčrtku tužkou udělat vektorový obrázek a v čem se dá tvořit vektorová grafika.

Programování 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. Formou přednáško-workshopu si pro něj něco napíšeme.

Předpoklady: Aspoň pasivní znalost Javy.
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čí. Jak s pomocí cizích služeb psát megaužitečné programy.

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.

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

Studium v zahraničí ("Chcete do Bradavic?") [ZAHRANICI]
Zuzka Drázdová

Povídání o studiu střední školy v zahraničí. Dozvíte se o různých možnostech, kam se vydat po Evropě i za oceán. Uvidíte, co obnáší přihlašování, jak to funguje s vízem a také jak získat stipendium. A dojde i na to nejdůležitější, tedy úvahu a debatu, proč něco takového vůbec podnikat a jaké jsou celkové klady a zápory.

Matfyz z pohledu prváka ("Tedy vlastně prvačky") [MFF]
Zuzka Drázdová

Jak vypadá první den studia na Matematicko-fyzikální fakultě? Jsou všechny ty vtipy a historky o matfyzácích pravda? A co pro studium na vysoké škole (ne)dělat už na střední? Prostě zážitky a dojmy z několika měsíců plných spousty matematiky, informatiky a schodů.

Školní časopis ("Tipy a triky pro vydávání nejen školních časopisů") [CASOPIS]
Zuzka Drázdová

Příběh jednoho občasníku, na kterém si ukážeme základní pravidla pro nadpisy, formát a styl textů. Uvidíte také ukázku práce s programem pro sazbu dokumentů Scribus. Na závěr probereme možná témata, o kterých psát, a nezapomeneme ani na motivaci, proč se něčemu takovému věnovat.

Rytíři v moderní době ("Improvizační divadlo bez publika") [LARP]
Martin Šerý

Chtěli jste někdy být někdo jiný, žít v jiné době, na jiné planetě nebo dokonce v jiném světě, kde platí jiné fyzikální zákony? Všeho se dá docílit s dostatečnou dávkou fantazie & skupinou lidí s podobným smýšlením. Řekneme si co je to LARP & co obnáší to „larpaření“. Dále se podíváme na to, jak lze začít. Nakonec, pokud zbude čas, si popovídáme o organizování LARPů.

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.

Létání a natáčení s dronem ("Ne ne, to není řízená raketa, tam jen visí velký foťák.") [DRON]
Jirka Setnička

Na co je dobré mít drona, kdy se dá reálně použít a kdy je to jen drahá hračka. Přehled o technologiích, jejich možnosti a omezení. Jak se liší armádní drony od dronů pro kameramany a nebo od dronů, které pořídíte za pár šupů v hračkářství. Také lehký výlet do legislativy – s čím smíme létat, kde smíme létat a co s tím můžeme dělat. Pokud počasí dá, tak i praktické hrátky s dronem.