B_UPg Úvod do programování

Vysoká škola finanční a správní
zima 2019
Rozsah
2/2/0. 16 hodin KS/semestr. 7 kr. Ukončení: zk.
Vyučující
doc. RNDr. Jan Lánský, Ph.D. (cvičící)
Ing. Jiří Zumr (cvičící)
Garance
doc. RNDr. Jan Lánský, Ph.D.
Katedra informatiky a matematiky (FES, KIM) – Katedry – Vysoká škola finanční a správní
Kontaktní osoba: Ivana Plačková
Rozvrh seminárních/paralelních skupin
B_UPg/cAPH: Čt 12:15–12:59 S35, Čt 13:00–13:45 S35, J. Lánský
B_UPg/pAPH: Čt 10:30–11:14 S35, Čt 11:15–12:00 S35, J. Lánský
B_UPg/vAPH: Pá 8. 11. 14:00–15:30 E228, 15:45–17:15 E228, 17:30–19:00 E228, Pá 22. 11. 14:00–15:30 E228, 15:45–17:15 E228, 17:30–19:00 E228, Pá 13. 12. 17:30–19:00 E227, 19:15–20:45 E227, J. Zumr
Předpoklady
Nejsou vyžadovány žádné předpoklady.
Omezení zápisu do předmětu
Předmět je otevřen studentům libovolného oboru.
Cíle předmětu
Tento předmět je základním kurzem programování pro posluchače prvního ročníku bakalářského studia Aplikované informatiky. Na konci tohoto kurzu bude student schopen:
- řešit jednoduché algoritmické úlohy
- používat základní konstrukce programovacích jazyků
- vytvářet a ladit programy v integrovaném vývojovém prostředí.
Výstupy z učení
Po splnění náležitostí tohoto kurzu bude student schopen:
- řešit základní algoritmické úlohy
- korektně používat a implementovat běžné výrazy ve vztahu k programování (proměnná, logické operátory, datové typy, vybrané cykly, větvení, apod.) - viz osnova
- používat základní konstrukce programovacích jazyků
- vytvářet a ladit programy v integrovaném vývojovém prostředí
Osnova
  • 1. Problém, algoritmus. Proměnná, přiřazení, aritmetické operátory, podmíněný příkaz.
  • 2. Složený příkaz, logické operátory, cykly while a for. Ciferný součet, Euklidův algoritmus, prvočíselný rozklad, test prvočíselnosti. Časová složitost algoritmů.
  • 3. Funkce, datové typy, priorita a asociativita operátorů, náhodná čísla, výčtové typy, vícenásobně větvení, struktury. Matematické funkce. Testování správnosti programů.
  • 4. Předávání parametrů funkce pomocí reference. Pole, nalezení hodnoty a počtu výskytů, nejdelší posloupnost. Eratostenovo síto. Ladění programů.
  • 5. Třídící algoritmy, Selection sort, Insertion sort, Bubble sort, Counting sort, binární vyhledávání v setříděném poli. Globální proměnné. Měření počtu operací a doby běhu programu.
  • 6. Znaky, textové řetězce. Lexikografické uspořádání, zřetězení, podřetězec, hledání indexu výskytu znaku či řetězce. Vymazání, vložení a nahrazení znaku či řetězce.
  • 7. Hornerovo schéma, převod mezi číselnými soustavami. Dlouhá celá čísla, součet, rozdíl, součin, podíl. Dlouhá reálná čísla, zlomky. Konstanty.
  • 8. Soubory textové a binární, čtení a zápis. Správa souborového systému.
  • 9. Dvojrozměrné pole, pole polí. Matice, násobení řádku konstantou, prohození dvou řádků matice, součet matic, součin matic. ASCII Art.
  • 10. Rekurze, faktoriál, převod z desítkové do dvojkové soustavy, Fibonacciho čísla (+ verze s dynamickým programováním). Binární vyhledávání. Hanojské věže. Kochova vločka.
  • 11. Zásobník, fronta (cyklická, s posunem, prioritní). Backtracking: N-ciferná čísla, doplnění znamének.
  • 12. Backtracking: problém N dam, normální magické čtverce, jezdcova procházka, ořezávání, heuristiky. Vlna: nejkratší cesta koněm po šachovnici.
Literatura
    povinná literatura
  • Bory, P. : C# bez předchozích znalostí, Brno: Computer Press, 2016. ISBN:978-80-251-4686-6
    doporučená literatura
  • V.Váňa: Základy programování v C# pro naprosté začátečníky, http://www.eamos.cz/amos/kat_inf/externi/kat_inf_03611/files/podklady_pro_cviceni/zacatekcsharp.pdf
  • P.Töpfer: Úvod do programování, IS -> studijní materiály -> UPg.pdf
  • P.Töpfer: Algoritmy a programovací techniky, Prometheus Praha 2007 (2. vyd.)
  • P.Töpfer: Základy programování v úlohách, Scientia Praha 1997
Výukové metody
Výuka probíhá formou přednášek a cvičení v prezenčním studiu a řízených skupinových konzultací v kombinovaném studiu. Minimální povinná účast na cvičeních v prezenčním studiu je 75%, na řízených skupinových konzultacích v kombinovaném studiu 50%.
Metody hodnocení
Předmět je zakončen zápočtem a písemnou zkouškou. Podmínkou pro udělení zápočtu je vypracování stanoveného počtu domácích úkolů (návrh a odladění menších programů). Zadání úkolů a pokyny jsou uvedeny v souboru IS -> studijní materiály -> cviceni.doc
V písemné zkoušce je úkolem napsat programy nebo funkce pro řešení zadných problémů. Hodnotí se správnost, efektivita a výběr odpovídajících prostředků programovacího jazyka.
Navazující předměty
Další komentáře
Předmět je dovoleno ukončit i mimo zkouškové období.
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích zima 2007, léto 2008, zima 2008, léto 2009, zima 2009, léto 2010, zima 2010, léto 2011, zima 2011, léto 2012, zima 2012, zima 2013, zima 2014, zima 2015, zima 2016, zima 2017, zima 2018, zima 2020, zima 2021, zima 2022, zima 2023, zima 2024.