Programování I - NPRG004
Anglický název: Programming I
Zajišťuje: Katedra softwaru a výuky informatiky (32-KSVI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2003
Semestr: zimní
E-Kredity: 14
Rozsah, examinace: zimní s.:2/2 Z [hodiny/týden]
letní s.:3/2 Z+Zk [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Virtuální mobilita / počet míst: ne
Stav předmětu: zrušen
Jazyk výuky: čeština
Způsob výuky: prezenční
Garant: RNDr. Tomáš Holan, Ph.D.
Kategorizace předmětu: Informatika > Programování
Neslučitelnost : NPRF033, NPRM001
Záměnnost : NPRF033, NPRM001
Je neslučitelnost pro: NPRF041, NPRF023, NHIF029, NPRM001, NPRF040, NPRF033
Je prerekvizitou pro: NPRG012
Je záměnnost pro: NPRM001, NPRF040, NPRM018, NPRF041, NPRF023, NPRF033, NHIF029
Výsledky anket   Termíny zkoušek   Rozvrh   Nástěnka   
Anotace -
Poslední úprava: ()
Základní kurs programování pro studenty 1. ročníku magisterského a bakalářského studia informatiky a učitelství informatiky. Obsahem kursu je programovací jazyk Pascal a Turbo Pascal, otázky návrhu algoritmů a tvorby programů. Jednou z podmínek udělení zápočtu za ZS je úspěšné vykonání praktického testu u počítačů (odladění programu). Test zadává a hodnotí přednášející, každý student se testu může zúčastnit nejvýše třikrát. V letním semestru není získání zápočtu podmínkou konání zkoušky.
Literatura
Poslední úprava: RNDr. Pavel Zakouřil, Ph.D. (05.08.2002)
  • [1] J.Drózd, R.Kryl: Začínáme s programováním, Grada Praha 1992
  • [2] P.Töpfer: Základy programování v úlohách, Scientia Praha 1997
  • [3] P.Töpfer, D.Töpferová: Programování - Sbírka úloh, Fortuna Praha 1998
  • [4] P.Töpfer: Programování - Rekurze, Fortuna Praha 1998
  • [5] P.Töpfer: Algoritmy a programovací techniky, Prometheus Praha 1995
  • [6] N.Wirth: Algoritmy a datové struktury, Alfa, Bratislava 1988
  • [7] I.Libicher, P.Töpfer: Od problému k algoritmu a programu, Grada Praha 1992
  • [8] různé učebnice a příručky na Turbo Pascal a Borland Pascal

Sylabus
Poslední úprava: G_I (28.05.2001)
1. Jazyk Pascal a Turbo Pascal
  • algoritmus, správnost, vstupní a výstupní data, efektivita
  • proměnná, konstanta
  • číselné typy, char, boolean, výčtový, interval
  • hierarchická stavba příkazů, program
  • jednoduché a strukturované příkazy jazyka Pascal
  • datové struktury (pole, záznam, množina, řetězec)
  • procedury a funkce, parametry, lokalita, rekurze
  • vstup a výstup pro textové soubory
  • datové (typované) soubory, přímý přístup
  • zkrácené vyhodnocování boolských výrazů
  • modularita, unity
  • standardní unity v Turbo Pascalu (Crt, Graph, Dos)
  • procedurální parametry proměnné typu procedura
  • návěští, goto
  • inicializované proměnné (typované konstanty)
  • typ ukazatel, dynamicky alokované proměnné
  • objekty v Turbo Pascalu.

2. Práce na PC v Turbo Pascalu

  • integrované prostředí Turbo Pascalu, ladící prostředky.

3. Algoritmy a programování

  • Eukleidův algoritmus
  • Eratosthenovo síto
  • Hornerovo schema
  • dlouhá čísla
  • vyhledávání v poli (binární, zarážka)
  • operace s maticemi
  • rekurze, backtracking
  • prohledávání do šířky
  • počítání složitosti konkrétních algoritmů a programů
  • vnitřní třídění, dolní odhad složitosti v nejhorším případě
  • vnější třídění (přímé, přirozené, polyfázové)
  • zvyšování efektivity rekurzivních programů
  • halda
  • faktorová množina
  • metody ukládání proměnných (stack, heap), mark & release
  • lineární spojové seznamy
  • stromy, grafy, průchody stromem a grafem
  • binární vyhledávací stromy bez vyvažování
  • find,insert,delete
  • vyčíslení hodnoty aritmetického výrazu v různých notacích
  • svépomocné dispose (odpadkový koš)
  • programová realizace základních grafových algoritmů (souvislost grafu, Dijkstrův alg., min. kostra, bipartitnost, topologické uspořádání)
  • základní numerické algoritmy
  • použití generátoru pseudonáhodných čísel
  • hašování (s pevnou hašovací funkcí)
  • objektové programování
  • diskrétní simulace
  • programování řízené událostmi - základní myšlenky a postupy.

4. Delphi

  • princip práce ve vizuálních vývojových prostředcích
  • prostředí Delphi, tvorba aplikací
  • základní odlišnosti jazyka od Turbo Pascalu.

Examinace:
Podmínkou pro zápočet v je také vykonání praktického testu u počítače. Studenti řeší jednu úlohu, úkolem je ve stanoveném čase nalézt správný algoritmus, naprogramovat ho v Pascalu a program odladit. Tento program musí student předvést, umět vysvětlit jeho funkci a případně ho jednoduše modifikovat. Kromě toho se požadují znalosti podle sylabu.

Zkouška v LS má písemnou a ústní část. V písemné části studenti řeší dvě úlohy. V první úloze technického charakteru je úkolem napsat jednoduchou proceduru nebo program v Pascalu. Jde převážně o zvládnutí práce se spojovými strukturami. Druhou úlohu nemusí studenti programovat detailně celou. Požaduje se návrh algoritmu, volba hlavních datových struktur a vhodné rozdělení úlohy na menší části a naprogramování několika nejpodstatnějších. Při hodnocení zkoušky má větší váhu druhá úloha. V ústní části zkoušky zkoušející se studentem společně opraví úlohy z písemné části formou diskuse nad zvolenými řešeními. Kromě toho se požadují znalosti podle sylabu.