Záznamy přednášek - Podzimní 2016

↩ zpět na seznam všech přednášek

Akce: Podzimní soustředění KSP 2016

Algoritmy a datové struktury

Magické algoritmy ("Pokročilá magie není rozlišitelná od technologie.") [MAGIC]

O algoritmech značně magických a nečekaných. Jak násobit n-ciferná čísla rychleji než v kvadratickém čase. Kouzlo na slévání setříděných posloupností v konstantním prostoru. Isomorfismus stromů pomocí přihrádkového třídění. Bitové kejklířství. Hledání největší díry.

Otevřít přednášku (webový přehrávač)

Stromové algoritmy ("Půjdeme na to od lesa") [TREES]

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.

Otevřít přednášku (webový přehrávač)

Programovací jazyky

Perl 6 ("Slečno, mohu vám ukázat svou sbírku operátorů?") [PERL6]

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.

Otevřít přednášku (webový přehrávač)

Programování v assembleru [PASM]

Jak programovat procesor přímo, aniž by vám do toho mluvily překladače, linkery a podobná verbež. Začneme obecně, ale soustředíme se hlavně na procesory rodiny x86. 32-bitová a 64-bitová instrukční sada, FPU a panoptikum vektorových instrukcí. Rozdíly mezi intelovskou a AT&T syntaxí. Jak spojit assembler s vyššími programovacími jazyky. Optimalizace kódu. Stručný úvod do systémových architektur IA32 a AMD64.

Otevřít přednášku (webový přehrávač)

Programátorské nástroje

Gdb a jiné ladicí nástroje ("Jak se ladí kytara, jak křišťálová koule a jak program (řazeno dle obtížnosti)") [GDB]

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

Otevřít přednášku (webový přehrávač)

Sítě a bezpečnost

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

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.

Otevřít přednášku (webový přehrávač)