{{indexmenu_n>4000}} ====== Přednášky 2014/2015 ====== Podklady přednášek pro aktuální akademický rok 2014/2015. Podklady se skládají z promítaných slidů, které jsou také k dispozici ve zkrácených verzích šetřnějších k případnému tisku, bez přechodů mezi snímky a ve formátu čtyři snímky na stránku. Poklady tvoří podpůrný materiál a jejich učelem není nahradit vlastní zápisky z přednášky, které slouží také jako prostředek osvojení si studované problematiky. Podklady jsou průběžně aktualizovány. ===== 1. Základní pojmy ===== Organizace předmětu; výpočty a výpočetní prostředky; program a programovací jazyk; syntaxe a sémantika; programovací jazyk Java a základní datové typy. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture01-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture01-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture01-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture01-demos.zip|}} ===== 2. Výrazy, operátory a řídicí struktury ===== Číselné typy, výrazy, přiřazení a operátory; výstup programu a matematické funkce; algoritmus a jeho popis; přehled řídicích struktur, složený příkaz; větvení if, cykly while a for * prezentace: {{courses:a0b36pr1:lectures:2014:lecture02-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture02-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture02-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture02-demos.zip|}} ===== 3. Řetězce a řídicí struktury ===== Reprezentace znaku, textových řetězec a vstup programu; řídicí struktury větvení a cykly. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture03-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture03-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture03-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture03-demos.zip|}} ===== 4. Reprezentace základních typů, pole, funkce a procedury ===== Základní typy a reprezentace dat v počítači, typové konverze, pole, funkce a procedury. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture04-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture04-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture04-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture04-demos.zip|}} ===== 5. Funkce a procedury ===== Funkce, jejich jména a předání návratové hodnoty příkazem ''return''; lokální proměnné a alokace paměti; cykly a řízení průchodu cyklu, příkazy ''break'' a ''continue''; příklady dekompozice problému a jeho řešení. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture05-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture05-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture05-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture05-demos.zip|}} ===== 6. Rekurze ===== Rekurze a rekurzivní algoritmy; příklady rekurzivních algoritmů; peprezentace množiny polem; příklad rekurze v řazení. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture06-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture06-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture06-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture06-demos.zip|}} ===== 7. Objektově orientované programování ===== Úvod do objektově orientovaného modelování (analýzy a návrhu); objektově orientované programování (OOP); struktura objetu a zapouzdření; vztahy mezi objekty: agregace, dědičnost, polymorfismus; OOP v Javě: metody a datové položky třídy a instance, řízení přístupu k položkám, konstruktor třídy. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture07-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture07-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture07-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture07-demos.zip|}} ===== 8. Objektově orientované programování ===== Třídy a objekty, metoda ''main'', objekty základních typů, //immutable// objekty, dědičnost a hierarchie tříd; příklad geometrických objektů, jednoduchých operací s nimi a jejich vykreslení. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture08-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture08-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture08-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture08-demos.zip|}} ===== 9. Objektově orientované programování ===== Dědičnost, kompozice, balíky a organizace tříd; kompilace a spuštění třídy v balíku; Příklad geometrických objektů a jejich vykreslení (jednoduchý kontejner). * prezentace: {{courses:a0b36pr1:lectures:2014:lecture09-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture09-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture09-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture09-demos.zip|}} ===== 10. Spojové struktury ===== Lineární spojové struktury - spojové seznamy a stromy: jednosměrný spojový seznam (operace vkládání a odebírání prvku, průchod seznamem, vyhledávání prvku v seznamu); kruhový jednosměrný spojový seznam; obousměrný spojový seznam; kruhový obousměrný spojový seznam. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture10-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture10-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture10-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture10-demos.zip|}} ===== 11. Abstraktní datový typ ===== Nelineární spojové struktury: stromy a binární strom. Abstraktní datový typ (ADT), datové struktury a jejich popis. Abstraktní datové typy zásobník a fronta a příklady a jejich implementací. * prezentace: {{courses:a0b36pr1:lectures:2014:lecture11-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture11-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture11-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture11-demos.zip|}} ===== 12. Soubory ===== Soubory a přístup k souborům; textový a binární soubory; práce se soubory v Javě; ošetření chyb mechanismem výjimek * prezentace: {{courses:a0b36pr1:lectures:2014:lecture12-slides.pdf|}} * zkrácená verze: {{courses:a0b36pr1:lectures:2014:lecture12-handout.pdf|}} * zkrácená verze 2x2: {{courses:a0b36pr1:lectures:2014:lecture12-handout-2x2.pdf|}} * přiložené demonstrační programy: {{courses:a0b36pr1:lectures:2014:lecture12-demos.zip|}} ===== 13. Praktické ukázky ===== Kolekce, revize úlohy lab07, revize 10. domácí úlohy (lab12).