PředmětyPředměty(verze: 722)
Předmět, akademický rok 2014/2015
.
Programování I - NPRG030
Anglický název: Programming I
Zajišťuje: Kabinet software a výuky informatiky (32-KSVI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2014
Semestr: zimní
E-Kredity: 6
Rozsah, examinace: zimní s.:3/2 Z [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Garant: RNDr. Tomáš Holan, Ph.D.
doc. RNDr. Pavel Töpfer, CSc.
RNDr. Martin Pergel, Ph.D.
Třída: Informatika Bc.
Klasifikace: Informatika > Programování
Neslučitelnost : NMIN101, NMIN102, NPRM044, NPRM045
Je korekvizitou pro: NPRG047
Je neslučitelnost pro: NMUG103, NMUG104, NMUM163
Je prerekvizitou pro: NSWI143
Anotace -
Poslední úprava: T_KSVI (06.12.2010)

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: TOPFER/MFF.CUNI.CZ (10.09.2008)

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: TOPFER/MFF.CUNI.CZ (17.09.2010)

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.).

 
Univerzita Karlova v Praze | Informační systém UK