Detail předmětu
Počítače a programování 2
FEKT-BPC2TAk. rok: 2013/2014
Obecný úvod do algoritmizace, obecný úvod do objektově orientovaného programování, řídící sekvence jazyků vyšších řádů, aplikační programové prostředí jazyka JAVA Eclipse.
Jazyk výuky
čeština
Počet kreditů
5
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Absolvent předmětu je schopen:
- využít základní algoritmizační návyky a dovednosti objektově orientovaného programování,
- implementovat dílčí části kódu v programovacím jazyce JAVA,
- ovládat vývojové prostředí Eclipse,
- využít standardních nástrojů a technik při ladění a testování programu,
- vytvářet vlastní aplikace s grafickým uživatelským rozhraním a s podporou více-vláknového zpracování dat.
- využít základní algoritmizační návyky a dovednosti objektově orientovaného programování,
- implementovat dílčí části kódu v programovacím jazyce JAVA,
- ovládat vývojové prostředí Eclipse,
- využít standardních nástrojů a technik při ladění a testování programu,
- vytvářet vlastní aplikace s grafickým uživatelským rozhraním a s podporou více-vláknového zpracování dat.
Prerekvizity
Jsou požadovány znalosti na úrovni středoškolského studia. Znalost programovánní v ANSI C.
Plánované vzdělávací činnosti a výukové metody
Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT. Metody vyučování zahrnují přednášky a cvičení na počítači. Předmět využívá e-learning. Student odevzdává jeden samostatný projekt.
Způsob a kritéria hodnocení
Student může získat maximálně 22 bodů za aktivní práci v počítačových cvičení, 20 bodů za průběžné testy během semestru, 28 bodů za zápočtový test na konci semestru a 30 bodů za individuální projekt v jazyce JAVA.
Osnovy výuky
1) Zopakování základů algoritmizace v jazyce JAVA: cykly, větvení, metody, základní datové typy (primitives), reference vs. ukazatele, proměnné, viditelnost proměnných. 2) Třídy a objekty. Základní datové typy (primitivy) vs. objekty. Reference. Viditelnost proměnných a atributů v rámci programu. 3) Dědičnost. Třída vs. abstraktní třída vs. rozhraní. Techniky řešení problémů. Návrh a implementace algoritmů. Podprogram, rozdělení programu do několika souborů, 4) Rekurze v programování. Princip rekurze a úvod do řešení problému pomocí rekurze. 5) Výjimky a princip ošetřování neočekávaných událostí. Vyvolání výjimky. Vícenásobné vnoření výjimek a jejich ošetřování. Hierarchické členění výjimek. 6) Textové soubory a standardní vstup a výstup. Vstupně/výstupní datové proudy, práce se souborovým systémem, soubory, adresáře, vytváření, mazání, modifikace přístupových práv. 7) Pokročilé datové typy, Lineární struktury – Vektor, ArrayList, Kolekce, Množiny – HashSet, TreeSet, Mapování – HashMap, HashSet.Iterátory, tvorba vlastních iterátorů. Procházení kolekcemi v cyklu. 8) Principy objektově orientovaného návrhu – případové studie. Návrh aplikace, rozdělení na funkční bloky. Úvod do návrhových vzorů a jejich využití pro návrh konkrétní aplikace. 9) Správa větších projektů. Importování knihoven a práce s API. Tvorba vlastní knihovny. Správa projektu a začleňování knihoven. Vytvoření spustitelné aplikace. 10) Tvorba jednotkových testů a testy řízený vývoj. 11) Vícevláknové zpracování. Procesy a vlákna. 12) Grafické uživatelské rozhraní. Návrhový vzor Model-Pohled-Kontroler. Událostmi řízené programování. 13) Grafické uživatelské rozhraní. Návrhový vzor Model-Pohled-Kontroler. Událostmi řízené programování.
Učební cíle
Naučit studenty základním algoritmizačním návykům a objektově orientovánému programování. Vysvětlit základní vlastnosti a struktury jazyka JAVA a jejich využití. Připravit studenty na práci v prostředí JAVA Eclipse.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.
Základní literatura
Keogh, J.: Java bez předchozích znalostí, Computer press, 2005, ISBN: 9788025108390 . (CS)
Pecinovský, R.: Myslíme objektově v jazyku Java -- kompletní učebnice pro začátečníky, Grada , 2008, ISBN: 978-80-247-2653-3. (CS)
Pecinovský, R.: Myslíme objektově v jazyku Java -- kompletní učebnice pro začátečníky, Grada , 2008, ISBN: 978-80-247-2653-3. (CS)
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
26 hod., nepovinná
Vyučující / Lektor
Osnova
1. Algoritmizace (rozšíření základních poznatků z předchozího semestru). Definice úlohy, definice vstupů/výstupů, zápis algoritmu v metajazyku, přepis do programovacího jazyka.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.
Cvičení na počítači
26 hod., povinná
Vyučující / Lektor
Osnova
1. Algoritmizace (rozšíření základních poznatků z předchozího semestru). Definice úlohy, definice vstupů/výstupů, zápis algoritmu v metajazyku, přepis do programovacího jazyka.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.