B_UPg Úvod do programování

Vysoká škola finanční a správní
zima 2015
Rozsah
2/2. 14 hodin KS/semestr. 7 kr. Ukončení: zk.
Vyučující
doc. RNDr. Jan Lánský, Ph.D. (přednášející)
doc. RNDr. Pavel Töpfer, CSc. (přednášejí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: Ing. Barbora Ptáčková
Rozvrh seminárních/paralelních skupin
B_UPg/cAPH: Po 10:30–11:14 E303PC, Po 11:15–12:00 E303PC, P. Töpfer
B_UPg/pAPH: Po 8:45–9:29 E228, Po 9:30–10:15 E228, P. Töpfer
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í.
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áhodá čí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četu 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, Fibinacciho čí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
    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 2016, zima 2017, zima 2018, zima 2019, zima 2020, zima 2021, zima 2022, zima 2023, zima 2024.