Programování I - NPRG030
Anglický název: Programming I
Zajišťuje: Katedra softwaru a výuky informatiky (32-KSVI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2008 do 2008
Semestr: zimní
E-Kredity: 6
Rozsah, examinace: zimní s.:3/2, Z [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Garant: RNDr. Tomáš Holan, Ph.D.
doc. RNDr. Pavel Töpfer, CSc.
Třída: Informatika Bc.
Kategorizace předmětu: Informatika > Programování
Neslučitelnost : NPRM044
Je korekvizitou pro: NPRG047
Je neslučitelnost pro: NPRM045, NPRM044, NPRM001, NMUE021, NMUE022
Je záměnnost pro: NPRM044
Výsledky anket   Termíny zkoušek   Rozvrh   Nástěnka   
Anotace -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (18.01.2018)
Základní kurs algoritmizace a programování pro studenty 1. ročníku bakalářského studia informatiky a učitelství informatiky. Obsahem kursu jsou principy algoritmizace, základní algoritmy, datové struktury a programovací techniky, typické prostředky programovacích jazyků, praktický návrh a ladění programů.
Literatura
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (02.02.2018)

P. Töpfer: Algoritmy a programovací techniky, Prometheus 1995, 2. vyd. 2007

J. Drózd, R. Kryl: Začínáme s programováním, Grada 1992

N. Wirth: Algoritmy a štruktúry údajov, Alfa 1987

Sylabus -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (18.01.2018)

a) Základních algoritmy, datové struktury a programovací techniky

  • základní představa o efektivitě algoritmů
  • dělitelnost čísel, Eukleidův algoritmus
  • test prvočíselnosti, Eratosthenovo síto
  • Hornerovo schéma
  • rozklad celého čísla na cifry, poziční číselné soustavy
  • algoritmy vyhledávání v poli (sekvenční, binární, zarážka)
  • řazení dat v poli (vnitřní třídění)
  • práce s maticemi (základní operace)
  • implementace zásobníku a fronty v poli
  • aritmetika s vyšší přesností ("dlouhá čísla")
  • použití rekurze, backtracking, metoda "rozděl a panuj"
  • prohledávání do hloubky a do šířky
  • algoritmus minimaxu
  • halda a operace s haldou
  • faktorová množina
  • dynamické datové struktury, operace s lineárními spojovými seznamy
  • binární stromy, vyhledávací stromy, vyvažování (AVL-stromy)
  • vícecestné vyhledávací stromy (B-stromy)
  • notace aritmetického výrazu, vyhodnocování
  • vnější třídění

b) Typické prostředky a nástroje programovacích jazyků ukázané na příkladu programovacího jazyka Pascal (Turbo Pascal) v rozsahu

  • proměnné, konstanty, typy, inicializované proměnné
  • jednoduché a strukturované datové typy (čísla, char, boolean, výčtový typ, pole, záznam, znakový řetězec)
  • jednoduché a strukturované příkazy (dosazovací příkaz, if, while, repeat, for, case, with)
  • textové soubory (včetně formátování výstupních dat)
  • procedury a funkce (lokalita identifikátorů, způsoby předávání parametrů, rekurze)
  • příkazy skoku
  • ukazatele a dynamicky alokované proměnné
  • základní parametry překladače (paměťová omezení, přepínače provádění kontrol).

c) Práce v integrovaném vývojovém prostředí, tvorba a ladění programů - prakticky procvičena na příkladě integrovaného vývojového prostředí Turbo Pascal nebo Free Pascal (editor, překlad, výpočet, ladicí prostředky - trasování, sledování hodnot proměnných atd.).