Plán předmětu Název předmětu: Algoritmizace a programování (PAAPP) Školní rok: 2009/2010 Ročník: I Semestr: II. (letní) Typ předmětu: povinný Rozsah předmětu: 3 3 z, zk Počet kreditů: 6 Přednášející: RNDr. František Machalík Cvičící: RNDr. František Machalík, Ing. Stanislav Machalík, Ing. Viktor Patras, Ing. Jiří Škop, Ing. Josef Šroll, RNDr. Václava Šrůtková Cíl předmětu Zvládnout algoritmizaci, základy programování v programovacím jazyku Object Pascal a zpracování programů ve vývojovém prostředí Delphi.
Náplň přednášek 1. Úvod do předmětu plán předmětu cíl a obsah předmětu, podmínky k udělení zápočtu a požadavky ke zkoušce, studijní literatura, Praktikum z algoritmizace a programování základní pojmy − algoritmizace, programování, Object Pascal, Delphi software Delphi 7 Personal, instalace příklady algoritmizace, zápis programu v jazyku Object Pascal a jeho zpracování ve vývojovém prostředí Delphi 2. Základy algoritmizace a programování postup při řešení úlohy na počítači algoritmus, formy zápisu algoritmu, vývojové diagramy struktura programu v jazyku Object Pascal (v konzolové aplikaci), popis jednotlivých úseků deklarační části programu základní pojmy v algoritmizaci a programování, jejich význam a zápis v jazyku Object Pascal (konstanty, proměnné, výrazy, příkazy) příkazy jazyka Object Pascal, rozdělení příkazů, jednoduché příkazy, přiřazovací příkaz, příkaz procedury čtení vstupních dat, výstup výsledků 3. Vizuální programování integrované vývojové prostředí Delphi (verze 7 Personal) Object Inspector základní komponenty jednoduchá aplikace v Delphi − příklady struktura projektu 4. Strukturované příkazy jazyka Object Pascal podmíněné příkazy IF a CASE, složený příkaz příkazy cyklu WHILE-DO, REPEAT-UNTIL příkaz cyklu FOR 5. Metodika strukturovaného programování strukturované příkazy pro návrh a zápis algoritmů a programů opakování zápis a ladění programů s použitím strukturovaných příkazů 6. Datové typy rozdělení datových typů definice datových typů jednoduché datové typy strukturované datové typy řetězec 7. Procedury a funkce deklarace a volání procedur a funkcí specifikace formálních parametrů zápis programů s použitím procedur a funkcí
8. Datový typ pole definice datového typu pole zápis programů s použitím jednorozměrného pole algoritmy třídění a hledání 9. Vícerozměrné pole zápis programů pro řešení úloh maticového počtu 10. Datový typ záznam a množina definice datového typu záznam, variantní záznamy množina bázový typ, množinové operace, zobrazení množin v paměti počítače 11. Soubory typové, netypové a textové soubory standardní procedury a funkce pro práci se soubory zápis programů s použitím typových a textových souborů 12. Programové jednotky struktura programové jednotky standardní programové jednotky grafický výstup 13. Dynamické proměnné datový typ ukazatel dynamická proměnná dynamické datové struktury
Náplň cvičení 1. Upřesnění Plánu předmětu. Instalace Delphi 7 Personal Algoritmizace jednoduché úlohy, zápis programu v jazyku Object Pascal a zpracování jednoduchého programu ve vývojovém prostředí Delphi 2. Algoritmizace jednoduché úlohy, zápis programu v jazyku Object Pascal a zpracování jednoduchého programu ve vývojovém prostředí. Přiřazovací příkazy a příkazy vstupu a výstupu, zápis a ladění jednoduchých programů. Vývojové diagramy algoritmů s větvením výpočtu 3. Vizuální programování, integrované vývojové prostředí Delphi (verze 7 Personal), ladění jednoduchých programů 4. Podmíněné příkazy IF a CASE, příkazy cyklu. Zápis a ladění programů s větvením výpočtu 5. Příkazy cyklu While Do a Repeat Until. Zápis a ladění programů s použitím příkazů cyklu While Do a Repeat Until 6. Zápis a ladění programů s použitím příkazů cyklu For. 7. Zápis a ladění programů s použitím jednoduchých datových typů, operace s řetězci 8. Procedury a funkce, mechanismus náhrady formálních parametrů skutečnými, zápis a ladění jednoduchých programů s použitím procedur a funkcí 9. Zápis a ladění programů s použitím jednorozměrného pole 10. Zápis a ladění programů pro práci s maticemi, zápis a ladění programů pro řešení vybraných úloh numerické matematiky, matematické statistiky a teorie grafů, knihovny procedur a funkcí 11. Zápis a ladění programů s použitím datového typu záznam a množina 12. Typové soubory tvorba diskového souboru, základní operace s typovými soubory − vyhledání složky v souboru, vymazání složky v souboru, vložení složky do souboru 13. Textové soubory – kopírování textového souboru, vyhledání řetězce v textovém souboru, zadávání vstupních údajů z textového souboru, ukládání výsledku do textového souboru. Opakování, hodnocení semestrálních prácí, udělování zápočtů, příprava na zkoušku
Podmínka k získání zápočtu Student získá zápočet za aktivní účast na cvičení. Jestliže se student nemohl zúčastnit cvičení ze závažného důvodu, může mu cvičící povolit náhradu zameškaného cvičení zpracováním zadané úlohy. Studentům, kteří ovládají látku probíranou na cvičení, může být uznána aktivní účast na cvičení po úspěšném absolvování testu, který se koná nejpozději do konce třetího týdne po zahájení semestru. Test je hodnocen maximálně 6 body, pro úspěšné absolvování testu musí student získat alespoň 3 body. Bodové hodnocení testu se studentovi připočítává k celkovému hodnocení u zkoušky. Zápočet z tohoto předmětu udělený v předcházejících letech se studentům neuznává. Neuznává se zápočet ani zkouška z předmětu Informatika II. Zpracování semestrální práce Součástí výuky je zpracování semestrální práce, které spočívá v zápisu a odladění programu na řešení zadané úlohy ve zpracování dokumentace (zadání, analýza a algoritmizace úlohy) v odevzdání semestrální práce nejpozději na předposledním cvičení (zdrojové soubory, dokumentace) v ukázce činnosti programu na počítači na posledním cvičení. Téma semestrální práce a pokyny pro její zpracování zadá cvičící studentovi nejpozději na 10. cvičení. Za zpracování semestrální práce může student získat maximálně 2 body. Získané body se studentovi započítávají do hodnocení u zkoušky. Zpracování semestrální práce je dobrovolné a nemá vliv na udělení zápočtu. Průběžná kontrola studia V rámci průběžné kontroly studia se bude konat na čtyřech cvičeních test z látky probrané na přednáškách a předcházejících cvičeních. Body z testů se započítávají do hodnocení u zkoušky. 1. test – nejpozději na 4. cvičení – z látky probrané na přednáškách a cvičeních (postup při řešení úlohy na počítači, základní pojmy z algoritmizace a programování). Za úspěšně vykonaný test získá student 1 bod, v opačném případě bod nezíská. 2. test nejpozději na 6. cvičení – z látky probrané na přednáškách a cvičeních (příkazy jazyka Object Pascal). Za úspěšně vykonaný test získá student 1 bod, v opačném případě bod nezíská. 3. test – nejpozději na 8. cvičení zápis a odladění jednoduchého programu s použitím strukturovaných příkazů a jednoduchých datových typů. V případě správného programu (program po spuštění dává správné výsledky) získá student 2 body, v opačném případě nezíská ani jeden bod. 4. test – nejpozději na 11. cvičení – zápis a odladění jednoduchého programu s použitím strukturovaných příkazů a datového typu pole. V případě správného programu (program po spuštění dává správné výsledky) získá student 2 body, v opačném případě nezíská ani jeden bod.
Průběh a hodnocení zkoušky: Zkouška se skládá z praktické a ústní části: Praktická část zkoušky − koná se v počítačové učebně. Spočívá v zápisu a odladění dvou programů. Za každý správný program (program po zadání korektních vstupních údajů dává správné výsledky) získá student 3 až 5 bodů. Ústní část zkoušky − koná se formou testu nebo ústního zkoušení z látky probrané na přednáškách a cvičeních. Za správné odpovědi je možné získat maximálně 6 bodů. Za testy v rámci průběžné kontroly studia získá student k hodnocení u zkoušky maximálně 6 bodů. Za zpracování semestrální práce získá student k hodnocení u zkoušky maximálně 2 body. Hodnocení studenta u zkoušky: 22 24 bodů klasifikace výborně 19 21 bodů klasifikace výborně minus 16 18 bodů klasifikace velmi dobře 13 15 bodů klasifikace velmi dobře minus 9 12 bodů klasifikace dobře méně než 9 bodů klasifikace nevyhověl
Tematické okruhy k ústní části zkoušky 1. Základní pojmy v algoritmizaci a programování jejich význam a zápis v jazyku Pascal (konstanty, proměnné, datové typy, výrazy, příkazy, program, podprogram, programová jednotka) 2. Struktura programu v jazyku Pascal popis jednotlivých úseků deklarační části programu 3. Příkazy jazyka Pascal rozdělení příkazů, jednoduché příkazy, přiřazovací příkaz 4. Strukturované příkazy jazyka Pascal složený příkaz, podmíněné příkazy, příkazy cyklu 5. Datové typy rozdělení datových typů, definice datového typu 6. Jednoduché datové typy standardní datové typy, uživatelem definované datové typy, typ řetězec 7. Strukturované datové typy srovnání 8. Datový typ pole definice vícerozměrného pole, složky pole, indexový výraz, zobrazení (implementace) pole v paměti počítače 9. Datový typ záznam definice, položky záznamu, variantní záznamy 10. Datový typ množina bázový typ, množinové operace, zobrazení množin v paměti počítače 11. Soubory typové, netypové a textové soubory, standardní procedury a funkce pro práci se soubory 12. Procedury a funkce deklarace a volání procedur a funkcí, specifikace formálních parametrů, mechanizmus náhrady formálních parametrů skutečnými parametry 13. Programové jednotky struktura programové jednotky
Doporučená literatura: TAUFER, I., KOTYK, J., HRUBINA, K., TAUFER, J. Algoritmy a algoritmizace vývojové diagramy. Univerzita Pardubice, 2009. ISBN 978-80-7395-182-5. 92 s. KADLEC, V. Učíme se programovat v Delphi a jazyce Object Pascal. Praha: Computer Press, 2001. ISBN 80-7226-245-9. 288 s. PÍSEK, S. Delphi začínáme programovat. Praha: Grada, ISBN 80-247-0547-8. 328 s. POŠTA, J. Začínáme programovat. BEN, 2001, ISBN 80-7300-034-2 BUCHALCEVOVÁ, A. Úvod do programování v Delphi. Praha: VŠE Praha, 2004. ISBN 80-245-0740-4. 150 s. BARROW, J., MILLER, L., MALAN, K., GELDERBLOM, H. Introducing DELPHI programming. Theory through practice. Oxford University Press Southern Africa 2005. ISBN 0 19 578911 3. 547 s. MACHALÍK, F. Algoritmizace a programování. Učební text k přednáškám (STAG). Volitelný předmět: Praktikum z algoritmizace a programování Pondělí 7:00 – 9:00 v P36 (AID, Ing. Viktor Patras) Čtvrtek 16:00 − 18:00 v P36 (ostatní obory, Ing. Stanislav Machalík)