{{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).