Informatické přednášky teoretické



Podobné dokumenty
rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Maturitní témata Školní rok: 2015/2016

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

1 Webový server, instalace PHP a MySQL 13

Matematika v programovacích

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Témata profilové maturitní zkoušky

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Přehled nabízených kurzů

Profilová část maturitní zkoušky 2017/2018

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Úvod. Programovací paradigmata

Profilová část maturitní zkoušky 2013/2014

SADA VY_32_INOVACE_PP1

INFORMATIKA. Charakteristika vyučovacího předmětu:

Instalace a konfigurace web serveru. WA1 Martin Klíma

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Informační technologie. Název oboru: Školní rok: jarní i podzimní zkušební období 2017/2018

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

1. Webový server, instalace PHP a MySQL 13

Témata profilové maturitní zkoušky

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

ALGORITMY A DATOVÉ STRUKTURY

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

MBI - technologická realizace modelu

Nástroje pro vývoj software

IB111 Úvod do programování skrze Python Přednáška 13

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

Povinně dobrovolné přednášky

Obsah tematických plánů 2012/2013

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Vzdělávací obsah vyučovacího předmětu

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Profilová část maturitní zkoušky 2014/2015

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

IB111 Programování a algoritmizace. Programovací jazyky

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Excel pro začátečníky

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Tematické okruhy ústní maturitní zkoušky 2015

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Počítačová grafika 1 (POGR 1)

(Nepříliš) stručně o systémech TEX a L A TEX

Osnovy kurzů. pilotního projektu v rámci I. Etapy realizace SIPVZ. Systém dalšího vzdělávání veřejnosti. počítačová gramotnost

Základní škola a Mateřská škola Třemešná Třemešná 341 tel: IČ:

Profilová část maturitní zkoušky 2015/2016

1. HDR. 2. Test Práce ve Windows. 3. Tilt-shift efekt. 4. Excel tisk a tvorba grafů. Informatika Ditta Kukaňová

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

INFORMATIKA. Grafické studio ve škole

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Tematické okruhy ústní maturitní zkoušky 2017

Tematické okruhy ústní maturitní zkoušky 2018

ČÁST 1. Základy 32bitového programování ve Windows

Mapový server Marushka. Technický profil

Maturitní témata pro 1.KŠPA Kladno, s.r.o. Výpočetní technika

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Programování a algoritmizace: úvod

Název DUM: VY_32_INOVACE_5A_8_Zaklady_prezentace_v_powerpointu Vyučovací předmět: Informatika

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

C2115 Praktický úvod do superpočítání

Internet 2 css, skriptování, dynamické prvky

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

ÚVOD DO UNIXU. Metodický list č. 1

Hospodářská informatika

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

DMML, MMLS, TŘD, DP, DI, PSDPI

ZŠ a MŠ, Brno, Horníkova 1 - Školní vzdělávací program

ANOTACE vytvořených/inovovaných materiálů

Tabulace učebního plánu

Tematické celky Nové informatiky

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Aplikovaná informatika

INFORMAČNÍ SYSTÉMY NA WEBU

PROGRAMOVÁNÍ PRO MS WINDOWS 2

Cvičení z matematiky jednoletý volitelný předmět

Identifikátor materiálu: ICT-1-20

SSL Secure Sockets Layer

Informatika a výpočetní technika

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Využití programu GeoGebra v Matematické analýze

Matematický ústav UK Matematicko-fyzikální fakulta

PHP tutoriál (základy PHP snadno a rychle)

Co je Symantec pcanywhere 12.0? Hlavní výhody Snadné a bezpečné vzdálené připojení Hodnota Důvěra

Software Základní pojmy a rozdělení. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1123_Software Základní pojmy a rozdělení_pwp

VÝPOČETNÍ TECHNIKA OBOR: EKONOMIKA A PODNIKÁNÍ ZAMĚŘENÍ: PODNIKÁNÍ FORMA: DENNÍ STUDIUM

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Programování v jazyku LOGO - úvod

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Informatika 5.ročník

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Školní vzdělávací program Obor: 7941K/81, Gymnázium všeobecné ( osmileté ) Učební osnovy pro nižší stupeň osmiletého gymnázia

CZ.1.07/1.5.00/

Transkript:

Ä ØÒ Ø ÓÖ ÔÖÓ Ö Ñ ØÓÖ ¾¼½ ß ÞÒ Ñ Ô Ò õ Tento spisek jest nabídkou přednášek, které byste na táboře mohli slyšet. Přednášek je daleko víc, než kolik se dá za pár dnístihnout,atakjenavás,abystesivybrali,okterémáteopravduzájem;pokudbysterádislyšeliještěoněčemdalším, klidnětokpřednáškámpřipište,třebasenajdeněkdo,kdobyvámotomrádpověděl.berteavychutnávejte! Údaje o jedné přednášce vypadají asi takto: Stručnýúvoddozákladůteorievlkodlaků ( Zadneukrytvhloubilesa,děstemnýzvečeraseplazí... ) RNDr. Á. Cula Úvod do moderní teorie vlkodlaků, čili též praktická dæmonologie a naiadologie. Předpoklady: Měsíc v úplňku. Dozvíte se(čteno v obvyklém pořadí): jméno přednášky, v uvozovkách motto přednášky, kód(pro snadnější odkazování na konkrétní předměty), jméno přednášejícího a nakonec stručný obsah přednášky. Informatické přednášky teoretické Algoritmy a jejich složitost ( Čím menší je časová složitost algoritmu, tím větší je složitost kódu. ) SLOZ Problém, algoritmus a program. Časová a paměťová složitost problémů i algoritmů. Složitost rekurzivních algoritmů, složitost v průměrném případě. Amortizovaná složitost a penízková metoda. Základní algoritmy ZALG, Klíště Základní výbavou každého informatika jsou různé standardní algoritmy, zde si ukážeme ty nejdůležitější z nich: Třídící algoritmy včetně vnějšího třídění. Trocha rekurze: hledání mediánu nebo obecněji k-tého nejmenšího prvku v lineárním čase. Aritmetika s dlouhými čísly. Vyhodnocování výrazů. Ne až tak základní algoritmy ( Pokročilá technologie není rozlišitelná od magie. ) NZALG 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í. Grafy& algoritmy ( Pojďme si hrát s obrázky ) GA Cotojsougrafy,jakjevprogramechreprezentovatahlavněkčemusedajípoužít.Prohledávánígrafudošířkyidohloubky. Hledání nejkratších cest: Dijkstrův a Floydův algoritmus. Union-Find problem, hledání minimální kostry. Prohledávání do hloubky DFS Nášup grafových algoritmů, zejména různé chytré aplikace prohledávání do hloubky: topologické třídění, hledání mostů a artikulací, komponenty silné souvislosti, kreslení grafů jedním tahem. Nejkratší a jiné cesty ( Všechny cesty vedou do Horní Dolní, jen některé přes Řím. ) CESTY Medvěd O problému hledání cest v grafech trochu podrobněji. Obecné relaxační schéma, Bellmanův-Fordův a Dijkstrův algoritmus ajejichzrychlenípomocírůznýchdatovýchstruktur.potenciálováredukceaheuristiky(třeba A ).Souvislostisnásobením matic: transitivní uzávěr, Seidelův algoritmus, Kleeneho algoritmus a regulární výrazy. Datové struktury pro začátečníky ( Pole oraná a neoraná, stromy ovocné a okrasné. ) DS, Klíště Jak si ukládat data natolik šikovně, abychom je nejen neztratili, ale také našli dříve, než si pro nás přijde Smrť. Klasické struktury jako pole, seznamy, vyhledávací stromy(vyvážené, AVL, a-b, splay), haldy(binární a obecně regulární) a v neposlední řadě hashování. Dynamické programování ( Kampak jsem si to jenom schoval? ) DYNP Spousta pomalých algoritmů se dá zrychlit tím, že si uvědomíme, že některé věci počítáme zbytečně a jiné víckrát. Když tuto skutečnost využijeme, dopustíme se dynamického programování a vyzrajeme na složitost algoritmu, byť za cenu třeba o něco vyšší spotřeby paměti. Hledání v textu (»Vyšíváme v seníku!«kde jsem to jen viděl? ) TEXT, Klíště Vyhledávání čehokoliv ve velkém množství textu. Prostá vylepšení hledání hrubou silou Karp-Rabin, Boyer-Moore. A algoritmy chytřejší Morris-Pratt, Knuth-Morris-Pratt, Aho-McCorasicková. Regulární výrazy a regexy REGEX, Jednoduché předpisy pro vyhledávání v textu bez implementace algoritmu. Jak vyhledat a nahradit různě šílené části, přejmenovat hlavního hrdinu nebo nahradit konstrukci v kódu za jinou konstrukci. Brutality jako detekce správně uzávorkovaného řetězce(do libovolné hloubky). 1 LYK

Komprese dat ( Jnm idln kpln j nstlčtln. ) PRESS 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). Letem světem ztrátová komprese obrázků a zvuku(prediktory, wavelets, JPEG, MPEG, fraktály). Kryptologie ( Gbgb arav zbp gnwan mcenin. ) CRYPT Medvěd 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 jak si hodit korunou po telefonu. Předvedeme nerozluštitelnou šifru a dokonce to o ní i dokážeme. Informatické přednášky programovací jazyky a techniky Programování v jazyce C C, Matějčík, Datové typy jazyka C, programové konstrukce, základy práce s ukazateli. Seznámení se standardními knihovnami jazyka C. C for wizards ( 1[x]+++++x[1] ) CWIZ, Céčkové speciality aneb všechno, co jste chtěli o Céčku vědět, ale nebylo se koho zeptat. Pořadí vyhodnocování, side effecty, sequencing pointy, funkce s proměnným počtem parametrů, preprocesorové triky, celá pravda o vztahu pointerů a polí, ojménechtypůaopříkazuswitch;alignment,null,void,volatile.všelijakézrady(velikostitypů,(a+b)+c a+(b+c), znaménka...).dialektycéčkaodk&rpřesdlouhonovýstandardc99kještěnovějšímuc11. Předpoklady: Povšechná znalost jazyka C. Generika a objekty v C ( Má C typovou kontrolu? Ano, ale jen občas. ) TEMPL Cojetogenerickástruktura,jakvCnapsatspojovýseznam,spojovoumřížku,kdesedotohohodívoid *,dědičnosta polymorfismus(ano,vc)apreprocesor.šablonyvc++avc,anebneexistujevěc,kterábynešlanapsat,jenexistujespousta, kterésenevyplatí.jaktořešíjinéjazyky(java,haskell,perl)ajakouzatoplatítecenu.pročjsouobjektypotřebnějšívmysli programátorověnežvjazyceapročjeclepšínežc++ Předpoklady: Slušná znalost C, kyblík(nebo radši několik) Bash BASH, Klíště Psaní skriptů a pokročilých skriptů pro UNIX. Základní dovednost linuxového roota umět skript napsat, pochopit a odladit (v tomto pořadí obtížnosti). Bash jako programovací jazyk BASH2 Při zahloubání se do dokumentace bashe lze narazit na mnohá temná zákoutí a divokou syntaxi. Ukážeme, jak se v tomto bahně rochnit a jak ho použít pro zrychlení skriptů a napsání věcí nevídaných. Předpoklady: BASH Perl ( Jak Pejsek a Kočička vymýšleli programovací jazyk ) PERL 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. Malé ochutnání Perlu6, jazyka(snad už nepříliš vzdálené) budoucnosti. Python PYTH,, Matějčík Základy programování v Pythonu, syntaxe, datové typy, slovníky, objektový model(aneb všechno je objekt). Standardní knihovny a interaktivní interpretr. Django ( Weby v Pythonu na počkání, brutality do tří dnů. ) DJANGO JaknapsatvPythonuwebsnadnoarychle,tedypokudnatomámserver.Hrátkysdatabázíbezboleníhlavy,přihlašovánía komentáře bez jediného řádku kódu, administrační rozhraní vytvořené jediným řádkem. Šablony a oddělení kódu od vzhledu (aneb principy MVC a DRY). Dynamický web a PHP ( Pepíčku, napíšeš mi é-šopík? ) PHP, Matějčík, Klíště Základy praktické tvorby dynamického webu. Úvod do jazyka PHP a Javascriptu, čtení dat z odeslaných formulářů, přesměrování, databáze, generování obrázků a další. 2

Logické programování ( Detektivem za 90 minut. ) LOGP, Klíště 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. LISP ( Lots of Irritating Superfluous Parentheses? ) LISP Lehký úvod do funkcionálního programování a jazyků z lispovské rodiny(common Lisp, E-Lisp, Scheme, atd.). Všechno je funkce, zbytek jsou seznamy(a konec konců funkce je také druh seznamu). Proměnné aneb příběh se nemění, jen příjmení a jména.jakseprogramujevlispuajakseprogramujelisp.emacs. Předpoklady: Netrpět uncinofobií(((to jest chorobným strachem ze závorek))) Haskell ( Pro ty, kdo uncinofobií trpí ) HASK, Klíště Základní kurz Haskellu moderního funkcionálního jazyka. Na skladě máme skoro všechno, co měl Lisp, o zbytku ukážeme, žemíttobybylachyba;asamozřejměspoustuvěcínavíc.základníkonstrukce,typovýsystém,třídyajakseobejítbez výjimek a speciálních případů, vstup a výstup. Pokud zbude čas, tak také trochu bezpečného vícevláknového a paralelního programování. Jazyk SQL ( SELECT something FROM knowledge LIMIT 90 min ) SQL, Matějčík JazykSQLajehoaplikace.Jakušetřitskriptupráciasoběčas,anebjaksezeptatrovnounato,cochcivědět.Kčemuse hodísloženýdotazaklíčovéslovojoin.kamažsimůžudovolitzajít,kdyžnevím,nakterémsystémutopoběží. Jazyk XML a související technologie ( <xml style="vesele"/> ) XML Jirka Kosek Povímesi,cojetojazykXML,jakvzniklakčemujedobrý.ZároveňproberemenástrojeproprácisXMLdokumenty,jejich načítání(parsování), generování, validaci atd. Z pokročilejších technik pak ukážeme vyhledávání v XML pomocí jazyka XPath a transformace XML dokumentů pomocí XSLT. Zbyde-li čas, ukážeme si i několik konkrétních aplikací(xhtml, WML,SVG,ODF...). Gitajinésystémyprosprávuverzí ( Usvatýhotučňáka,kdosemnapsaltohle?Onototvrdí,žeJÁ?! ) GIT,, Medvěd, Klíště Jakvyvíjetprogramdelšídobuanezbláznitseutoho.Různésystémyprosprávuverzíoddiff/patchpřesCVSaSVN 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. Jak se nestat vepřem ( /* You are not expected to understand this*/ ) STYLE,, Medvěd Tvrdíse,žečístkódjemnohdytěžší,nežhopsát dokonceiposobě,stačíkrátkádoba.jeněkolikobecně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žpoto,kdyopravdupoužítgotoajaknapsatužitečnýkomentářnebodokumentaci.kčemujeanení dokumentace v kódu. A kdy se vyplatí na všechna tato pravidla vybodnout. Určeno především začátečníkům a zapřísáhlým teoretikům. Správa paměti ( Když má program sklerózu... ) MEM Medvěd, 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ělatsamiacosedějeprogramátorovi zazády.mapováníadresníhoprostoru,ručníalokováníavracenípamětiaproblémy s tím spojené(chyby programátora), počítání odkazů a daň s nimi spojená(a hele, cyklus), odklízeče odpadu. Make ( make love... don t knowhow to makelove ) MAKE, Hodil by se otrok, který by překládal jednotlivé soubory. Základní syntaxe takového otroka, jak napsat jednoduchý Makefile, který řeší překlad Céčkového programu, automatické řešení závislostí. Jak to udělat, aby výsledek neměl několik tisíc řádek. Pročbysehodilo,abytubyloněcolepšího. Gdb a jiné ladící nástroje ( Jak se ladí kytara, jak křišťálová koule a jak program(řazeno dle obtížnosti) ) GDB, Kdopíšeprogramy,kterévždyhnedfungují,aťsepřihlásí.Akdone,aťsepřihlásínatutopřednášku.Ukážemesiněkolik nástrojů, jak si pomoci z nejhoršího. Mezi nimi třeba gdb, řádkový debugger(odvšivovač), strace, nebo valgrind. Kdy je použítakdysevícehodíprintf.pročassertjetakužitečnávěc. Textový editor Vim ( Víš, jaký je nejlepší textový editor? Vim. ) VIM, 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. 3

Portabilní programování ( Šel si program na vandr... ) PORT,, Medvěd Většina programátorů dřív nebo později zjistí, že počítačový svět nekončí hranicí jejich monitoru a že je mnohem rozmanitější než nekonečné zelené pláně windowsové pracovní plochy. Jenže jak se v takovém světě domluvit a jak psát programy, aby fungovalyvšude?nacosedáspolehnoutanacone,jakésehodíznátjazykyajakéknihovnyknim.kčemujsoudobré standardy a k čemu configure. Proč je někdy potřeba vynalézat kolo. Za rok se vrátím aneb jak(nechat) program udržovat. Jedenprojekt,mnohojazyků ( Jedenprstenvládnevšem... ) MLG Každýjazykjevhodnýnaněcojiného.Cumírychleaúsporněpočítat,vPythonusezaselépepíšeGUI,kdyžpotřebujete něco drsně abstraktního, nepohrdnete ani Haskellem. Perl umí všechno, ale pomalu. Co dělat, pokud má jeden projekt zároveň drsně počítat, mít GUI i umět na požádání vyřešit Hanojské věže? Ukážeme si možnosti a úskalí programování jednoho projektu ve více jazycích a vyzkoušíme si to na jednoduchých příkladech. Programování v Linuxu PLX,, Klíště 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émonaaklientaapovídatsiposíti. Předpoklady: Schopnost přečíst a napsat jednoduchý program v C. Programování pro Windows WIN Jak programovat pro Windows efektivně a hezky. Jak má vypadat správná aplikace pro Windows podle Microsoftu, podle uživatelů a podle tvůrců počítačových virů. Komunikace s okolím jak uvnitř stroje, tak po síti. Bezpečnost před lety a dnes. Multithreading THREAD, Medvěd Kčemujeprogramuvícevlákenajakzařídit,abysivláknavzájemněnešlapalaponohách.Úlohyvhodnékparalelizaciakde to nemá smysl. Problémy s paralelním přístupem ke zdrojům a jak je řešit. Co jsou synchronizační primitiva, kritické sekce abariéryakčemujsouvolatileproměnné.cojetodeadlockapročjenočnímůroumnohavývojářů.pročnámknihovny házejí klacky pod nohy. Optimalizace ( Mám skvělý algoritmus, tak proč to sakra běží tak pomalu? ) OPTIM Medvěd, Role překladače při optimalizaci a jak mu usnadnit práci. Jak fungují cache a jak této znalosti využít. Proč zdvojnásobení počtu procesorů nezvedne výkon dvakrát. Přístup do paměti z více vláken, contention points, profiling. Lži, zatracené lži a benchmarkyacosiznichvybrat. Předpoklady: THREAD Událostmi řízené programování ( To vám byla, milá paní, taková událost. ) EVENT,, Matějčík Jak dokázat reagovat na uživatele, zprávy od jiných programů a síťovou komunikaci současně. Proč bývá GUI program řízený událostmi,apročjetodobréiprone-guiprogramy.jaknámktomupomůžeobjektovéprogramováníapročnenínutné. Jak zařídit, aby náš program nevyžral baterku notebooku do patnácti minut. Testování softwaru ( Klikněte dvakrát rychle za sebou na OK a zavřete oči. ) TEST Jaktestovatsoftwarepřivývoji,jakhledatchybyajakjehlásittak,abytovývojářůmkněčemubylo.Unittesty,pravidelné automatické testování, ruční hledání chyb aneb proč je schopný tester lepší než automat. Masové testování, automatické hlášeníchybajaksivtomvšemudržetpořádek. Informatické přednášky hardware, operační systémy a spol. Architektury ARCH Negotikaabaroko,alesystémovéarchitektury.Jakéjsouhlavnítypyprocesorůačímselišíacoztohoseopravdupoužívá v praxi. Von Neumann a Harvard, RISC a CISC, Intel a ARM, jednočipy, vektorové procesory. Komunikace s pamětí a periferiemi, north a southbridge. Instrukční sady, assembler. Operační systémy OS Operačních systémů nejspíš znáte několik, ať už jsou to Windows, Linux, Android nebo MacOS X. Principy, na kterých fungují, jsou ale stejné. Vysvětlíme si, co to vlastně operační systém je, jaké funkce se od něj očekávají(a neočekávají) a jak je zajišťuje. Povíme si o některých zapeklitých problémech, které musejí autoři operačních systémů řešit, a proč je nutná podpora hardware, aby se nám programy navzájem nepozabíjely. A také trochu zavítáme do historie. Jak vyrobit multiprocesor MULPR, Medvěd Vyrábětnicnebudeme,alepovímesiotom,jakjemožnéposkládatvíceCPUdojednohosystému.SMP,NUMAadalší. Cache a jejich koherence, hierarchie cachí. FSB, HyperTransport a QuickPath. Exekuční jednotky, Hyper-Threading a další zajímavé nápady. 4

Real Time ( Vyřízení interruptu se nestihlo, elektrárna vybouchne za tři, dva... ) RT Kritickésystémynemůžeříditoperačnísystém,jakýmátevmobilu.Aniten,kterýmátenaserveru.Povímesi,cojeto RealTimeOSaRealTimeobecně.Jaképožadavkyjsounatakovýsystémkladeny,ajaksezařídí,abybylysplněny.Proč serealtimeuplatňujeivsystémech,kterékritickénejsou.jakýjerozdílmeziměkkýmatvrdýmreálnýmčasem.jakse běžné operační systémy inspirují u Real Time operačních systémů. Digitální elektronika a hradla DIGI Jak fungují digitální elektronické obvody, ze kterých jsou postavené(nejen) počítače. Nuly a jedničky jako napěťové úrovně; kombinační obvody(transistory, hradla, multiplexery), sekvenční obvody(klopné obvody, registry, čítače) a asynchronní obvody. Troška matematiky okolo aneb logické formulky a De Morganovy zákony; proč stačí jenom jeden typ hradel. Třístavová hradlaasběrnice... UNIX ( UNIX gives you enough rope to hang yourself. ) UNIX,, Klíště Kamarádučernobíléhotextovéhooknazáříblahem.Chcetepoznat,proč?JakUNIXvznikl,kčemujedobrýakčemutřeba není. UNIXová filosofie. Kouzlo skriptů. Kouzlo speciálních souborů. Kouzlo propojování programů. Kouzlo nechtěného. UNIXbylnapsánvCaCvzniklopodUNIXem. Přeložme si vlastní linuxový kernel KERNC Kdekernelvzít,čímselišíjednotlivéstromyajakdotohozapadajídistribučníjádra.Cojekpřekladukernelupotřeba,jak kernel nakonfigurovat, přeložit a nainstalovat a jak se v tom všem vyznat. Jak aplikovat do svého kernelu změnu, která ještě není oficiálně začleněna. Napišme si vlastní linuxový ovladač KERNM Vyrobíme si vlastní modul do linuxového kernelu, který sice nebude umět zázraky, ale bude náš. Dozvíte se základy programování v kernel space, interface kernelu k modulům, jak kernel komunikuje s hardware. Spravujeme server ( Kolik uživatelů ti nadává, tolikrát jsi adminem. ) SLS, Povídání o tom, co se všechno může stát, když spravujete server v nepřátelském prostředí internetu. Bezpečnost až na prvním místě. Od uživatele, který prozradil heslo ke svému webmailu spambotovi, přes špatně nakonfigurované služby, občasné čtení logů, zálohování apod. až do situace, kdy server spadnul nebo byl napaden a musíme vyrazit na místo. Užitečné pro začínající adminy. Předpoklady: Virtuální svetr do virtuální serverovny. Oblačno, místy mlha (... a občas zaprší nějaká data ) CLOUD, Matějčík Aťbudetepracovatkdekoliv,scloudemsepotkáte.Povímesi,cotoje,kčemujetodobréapročtovlastněvšichnichtějí. Kdycloudpomůžeakdyodnějskřikemutéct.Jakécloudovéslužbypoužíváte,ikdyžotommožnánevíte.Costímmá společného virtualizace, jedno knihkupectví a jeden vyhledávač. Co jsou zkratky SaaS, PaaS a IaaS. A co bude dál, aneb historie se opakuje. Virtualizace ( Ten počítač neexistuje! ) VIRT Jaksevyrábívirtuálnípočítač,kčemujetodobréajakjezajištěno,žejetobezpečné.Pročmajíprocesoryspeciálnípodporu virtualizace a proč to jde i bez ní. A proč se přidává podpora virtualizace i do dalších hardwarových součástí počítače. Jak přestěhovat počítač a vyrobit virtuální počítačovou síť. Bonus: zapomenuté počítače aneb virtuální archeologie. Počítačové sítě NET, Klíště Základy fungování počítačových sítí. Trocha historie aneb od kabelových přenosů k moderním přenosovým technologiím a Internetu. Síťové vrstvy a nevrstvy aneb od drátů přes pakety k aplikačním protokolům. Síťové topologie a směrování aneb proč data nezabloudí. Na závěr si osaháte krimpovací kleště. Internet INTERNET, Matějčík, Klíště JakfungujeInternet,atopěknědohloubky.ProtokolyIPv4,IPv6,TCP,UDP,HTTP,FTPadalší.IPaDNSadresy, jejich přidělování a překlad(a nedostatek). Velmi lehce naťukneme směrování a povíme si, proč je NAT špatný a jak funguje firewall. Konfigurace Internetu ( Nebudu se s tebou bavit, nemáš IPv6. ) NETCF JakzískatIPadresuakamjistrčit.Jakzajistit,žesipopovídámespočítačinalokálnísítiajakseznídostatnaInternet.A pročnatomámehneddvarůznéipprotokoly.jaksehrajepingpongajaksestopuje.pořádámelanpartysminimálním vybavením. 5

IPv6 IPV6 JakselišíIPv6odIPv4anebnenítojenopočtubitůvadrese.KonfiguraceIPv6klienta,IPv6routeruaIPv6serveru.Kde vzítipv6adresu,kdyžmijiprovidernechcedát.dns,ipsecamobilita. Předpoklady: schopnost ručně nakonfigurovat IPv4 připojení, jde o pokročilejší přednášku Wifi zevnitř WIFI CojeWi-Fi(TM)acojestandardIEEE802.11.Pročjetowifitaksložité,coznamenajítydivnézkratkyjakoAP,WEP, WPA,TKIP,EAPaRTSajakseliší personal od enterprise.jaksiporadit,kdyžtojedepomalu.čímsewifilišíod jiných bezdrátových technologií. Web uvnitř ( Error 402: Payment Required. Please insert a coin. ) HTTP, 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é nakousnutí protokolu HTTP/2.0. E-mail ( Drahoušek zákazník. ) EMAIL, Cosestanese-mailem,kdyžjejodešlete?Kudychodíakudyjejčertinesou?Jakémátezáruky,žepř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 a BFU. Nakonec státní datové schránkyapročjetozlýošklivýnepěknávěc. DNS ( Neviditelný stín v pozadí Internetu ) DNS, 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. Exploity, DoS a záludné chyby DOS, Matějčík Zajímavosti ze světa počítačové bezpečnosti, příklady typických chyb a jak se dají zneužít. Absolutní bezpečnost neexistuje, záleží jenom na tom, za kolik vám zabezpečovaná věc stojí. Spíše sbírka příkladů a historek než ucelená přednáška. Secure Shell, aneb SSH ( Už zase jsem si vypnul špatný počítač! ) SSH Standardní nástroj pro vzdálenou práci s Linuxovými a jinými UNIXovými stroji. Jak se připojit na konzoli jiného počítače, jak přes toto připojení vytvořit tunel a tímto tunelem procpat GUI, vytvořit nad ním proxy server nebo dokonce posílat veškerý síťový provoz. Jak se bezpečně přihlásit bez hesla a jak sdílet účty mezi lidmi i stroji. Informatické přednášky lingvistika a zpracování jazyků Jazyky, gramatiky a automaty AUTO 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? Jazyková Zoo JZOO Programovací jazyky jsou všelijaké procedurální, funkcionální či logické, typované silně, slabě nebo třeba i vůbec, objekt... stop,vykládatsiovšelijakýchrodech,druzíchačeledíchjazykůbybylanejspíšnuda,ataksiradějizajdemedozooanata zajímavějšízviřátkasepodívámeosobně:apl(či A +,případně J:průvanveskladištipísmenek),Intercal(kdyžexistuje GO TO, proč by nemohlo existovat COME FROM?), Forth(pozpátku píšeme výrazy všechny úplně), Shakespeare(program coby divadelní hra), Oook!, Lingua::Romana::Perligata a další. Kompilátory ( Jak se dělají kompilátory(a nebo komplikátory?) ) KOMP Medvěd, Povídáníotom,jakpřekladačefungujíuvnitř jakseprogramparsuje,jakseoptimalizujekódatd.cojetofrontend, backend, middleend,mezikódajináarkánauměníkompilátorového.jakpsátprogramytak,abykompilátoruchutnaly, co optimalizovat ručně a co naopak udělá kompilátor lépe než my. Předpoklady:Základnípovědomíotom,cotojeprocesoracodělá. Informatické přednášky grafika a typografie Počítačová grafika ( Namaluj mi beránka... ) GFX Kreslení a zpracování obrazu na počítači. Souřadnice(rovinné, prostorové i barevné) a jejich transformace. Základní grafická primitiva: body, úsečky, kružnice, elipsy, Bézierovy křivky a jejich rasterizace. Vyplňování n-úhelníků a křivkou ohraničených oblastí, flood fill. Pár triků navíc: maticové filtry, anti-aliasing a dithering. Grafické formáty a komprese obrázků. Základy trojrozměrného promítání a vykreslování scény. 6

Geometrie a počítače ( Nerušte mé kruhy!(ani jiné kvadriky) ) GEOM 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. Strojová analýza reálných obrázků ( Vyrovnat, odšumět, přečíst. ) SARO CosedějesQRkódemponaskenování.Jaknajítveskenuřádkytextu,jakdetekovatjednotlivápísmenkaapřevéstjena text. K čemu je občas na okraji dálnice podivná značka a jak vyrobit z několika fotek panorama. Předvedení užitečných knihoven a technik a nahlédnutí do matematiky, která se pod tím skrývá. Barevné systémy ( Co je na konci duhy? ) COLOR, 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ýchzařízeních.systémyrgb,cmy(k),hsv,xyz,labsjejichvýhodamiineduhy. Systém Pantone.Reálné kontra imaginární barvy aneb proč nejde vyfotit duha. Jakukládáobrázkypočítač ( Vkriminálnímseriálu: ZaostřetemituSPZ! ) IMG, Rozdíl mezi bitmapovou a vektorovou grafikou. Souborové formáty BMP, GIF a PNG. Proč není JPEG formát vhodný na webovou grafiku, ale fotkám neublíží. SVG a další vektorové grafické formáty a metody konverze na bitmapu. Proč v reálném světěnenímožné zaostřit SPZnebolidskoutvářjakovseriálech. Hromadné zpracování obrázků ( Už jen dvoutisíckrát kliknu a je to. ) MASSIMG Co dělat, když potřebujete vytisknout devadesát diplomů s různými jmény? Poslepovat dílky mapy postahované z Google Maps? Vyrobit náhledy obrázků v dané velikosti? A v několika různých velikostech? A pak to, nedejbože, dostat do Wordu? Přednáška, kde budete vymýšlet řešení sami. Předpoklady: UNIX, XML Portable Document Format ( Můj Word to neotevře! ) PDF Oblíbený formát pro posílání vysázených dokumentů. Vnitřní struktura, objekty, funkce a zběsilosti. Generování PDF, různé verze a různé prohlížeče(a jejich chyby). Rendering intents, nahrazování fontů a další zrady aneb jedno PDF se stále může zobrazit v různých případech různě. FDF jako pohodlná metoda, jak vytvořit vyplnitelný a rozumně hezký formulář, který se jen tak nerozsype. MetaFont, MetaPost, Asymptote ( Teď ten obrázek takhle zkroutím a pak ho přeložím. ) MF Lehké nakousnutí několika příbuzných jazyků, ve kterých můžete opravdu kreslit planimetrické obrázky, ale i třeba písma nebopiktogramy.jakvypadajícmfonty(ty,kterépoužívátex)ajakseautorovipovedlo,žesezjediného obrázku dá vygenerovat tlusté, tenké, rovné, skloněné i šišaté písmenko. Typografie ( What You See Is all What You ve Got!? ) TYPO Jaknapočítačitextnejennapsat,aletakévysázettak,abypěkněvypadalaaby(cožjedůležitější)seipříjemněčetl.Jakse sází pohádka, jak báseň a jak matematický text 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 ( No pages of output. Ask a TEXnician. ) TEX Z předchozí přednášky máme představu o tom, jak vypadá pěkná sazba. K její výrobě nám pomůže typografický systém TEX. Praktická přednáška s ukázkami použití TEXu od hladké sazby knihy až po zběsilosti hraničící s programováním. Jak do TEXu vkládat obrázky a jak to raději nedělat. Kde shánět další informace: TEXbook, TEXbook naruby a další zajímavá literatura. Praktické rozdíly mezi různými dialekty TEXu. Všelijaká rozšíření: pdftex, etex, LuaTEX. Matematické přednášky Logika ( Tato věta sem nepatří. ) LOGI, Pokudbudemevživotěvěřitvšemu,coje přecizřejmé,dostanemesebrzydopotížíavmatematicetoplatídvojnásob. Ale co s tím? Přírodní vědy si vymyslely verifikovatelné experimenty a matematici logiku a dokazování. Co je to výrok, co jehodůkazapročseaxiomynedokazují.jenžejaksijezvolit?ajakseztohovšehopostavícelámatematika?abudevůbec matematika někdy celá? Studená sprcha pana Gödela coby sebevražedné dovršení snahy získat dokonalý jazyk. Logika coby hra a problém líného profesora. Důkazy boží existence a neexistence. Předpoklady: LOGI Teorie(vesměssamoopravných)kódů ( fycnrdths,ywllbgdcmptrprgrmmr! ) KODY Medvěd Jak komunikovat po lince, která průměrně každý k-tý bit přenese špatně? K tomu se hodí teorie samoopravných kódů, která nás naučí: vzdálenost slov a jejich souvislost s detekcí a opravou chyb, paritní a lineární kódy, perfektní kódy, Reed- Solomonovy a vůbec polynomiální kódy a několik dolních odhadů nádavkem. A jak s teorií kódů souvisí třeba čeština? 7

Úvod do teorie čísel a RSA ( Po malém fermetu mívám čínský zbytkáč. ) NUT Co a k čemu je teorie čísel. Počítání v kongruenci, Euklidův algoritmus a jeho použití. Malá Fermatova věta, Čínská zbytková věta a k čemu v praxi jsou. Jak si odvodit kritéria dělitelnosti. Malý výlet do algebry a příslušné zobecnění pár srandovních pozorování. Jak z toho všeho odvodit RSA asi nejpoužívanější asymetrický šifrovací algoritmus dnešní doby. Jak RSA funguje, proč funguje a jestli bude ještě fungovat. Generování klíčů, faktorizace a testování prvočíselnosti. Fourierova transformace FFT Chytrý trik pana Fouriera patří již dávno k matematické a fyzikální klasice. Převapivě se ale hodí i při programování: rychlé násobení polynomů a dlouhých čísel(dokonce v lineárním čase), digitální zpracování zvuku a obrazu(spektrální analýza či třeba komprese). Předpoklady: Základy komplexních čísel. Teorie kombinatorických her ( Život je jen hra... Jakou má vyhrávající strategii? ) GAME Rozličné kombinatorické hry se zápalkami, kamínky, barvičkami či grafy. U některých si ukážeme výherní či obranné strategie, u některých dokážeme, že příslušná strategie existuje, i když nevíme, jak vypadá. Zmíníme například: všelijaké piškvorky, hex,různévariantynimu,vojáčcivpoušti,specialityàlaherkulesahydra,adalší.můžemesezapovídatiotom,jak podobné hry programovat na počítači. Deskriptivní geometrie ( Nepotřebujeme CAD, vždyť umíme rýsovat! ) DG JemnýúvoddoMongeovapromítáníaaxonometrie.Jaknakreslitkrychli,abyvypadala jakoživá,jaknarýsovatnalist papíru dvě navzájem kolmé roviny a poznat, kde se protínají a spousta dalších zajímavých konstrukcí. Nakonec si narýsujeme vystřihovánku, vystříhneme a slepíme. Předpoklady: Prostorová představivost výhodou, pravítko a kružítko rovněž, koulítko a rovinítko netřeba. Teorie nemožného ( Neexistence důkazu není důkazem neexistence. Dokažte. ) NONEX Medvěd ExistencislonavAfricesnadnodokážetetím,žehopřivedete.Jakaleukázat,žetamžádnýslonnení,případněžesice 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á? Ostatní přednášky MFF UK aneb co obnáší matfyzákem býti ( Maminko, ptá se tatínka, kdy už budu matfyzákem? ) MFF Medvěd,, Klíště 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 azazpívámepármatfyzáckýchpísní.cosestane,kdyžodejdestudentzmatfyzunavšeajakýzvukseozve,kdyžhodíte kalkulačku do žumpy. Autorský zákon AUTH, Podrobné osvětlení českého(potažmo evropského) autorského zákona. Na co máme právo, co nesmíme, co je to užití díla a jakfungujílicence.bittorentvs.uložto.jakapročnovinářilžouajakjetojindevesvětě. Open source a free software ( Cože, ono se na tom dokonce dá vydělávat? ) OSS,, Matějčík Jakopensourcesoftware(OSS)fungujeajaktožefunguje.Cojetota komunita,okterouzavadíteokamžitěpoté,cok OSS přičichnete. Proč free software nutně neznamená zdarma. FSF, LF a další organizace. Licence a právní otázky. Patenty a trademarky PAR,, Matějčík Patenty, copyrighty, trademarky a podobný obtížný hmyz. Jak patenty škodí, jak se jim vyhnout a kdy je lepší nevědět. Zbraněhromadnéhoničenívrukouvelkýchfiremacojepatentovýtroll.Jakfungujítrademarkyakdysejimlzesmát. Autorské svazy, poplatky, ACTA a co s tím má společného George Orwell. Přineste svoji oblíbenou EULA, zasmějeme se. Předpoklady: Silný žaludek Programování v týmu ( Přiznejte se, kdo z vás ten bug neopravil!? ) TEAM, Když je program na jednoho člověka moc velký, začne na něm pracovat lidí více. Tato přednáška bude pojednávat o tom, jak takový tým lidí uřídit, od dobrovolnických neřízených projektů, po hierarchie. Které nástroje se k tomu hodí a co dělat, kdyžjetýmrozložendoněkolikačasovýchpásem.acoplyneztoho,žedevětženneporodídítězajedenměsíc,acojeto extrémní programování. Kam NSA strká prsty ( Všude. ) NSA O co jde v případu Edwarda Snowdena podle americké vlády, podle novinářů, a doopravdy. Jaké technologie má asi NSA k dispozici, jaké metody používá a kam všude má přístup. Co tušíme o dalších světových tajných službách. Proč by to mělo vadit i člověku, který nedělá nic špatného. Existuje obrana? 8