SubjectsSubjects(version: 901)
Course, academic year 2021/2022
  
Programming I - NPRG004
Title: Programování I
Guaranteed by: Department of Software and Computer Science Education (32-KSVI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2003
Semester: winter
E-Credits: 14
Hours per week, examination: winter s.:2/2 C [hours/week]
summer s.:3/2 C+Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: cancelled
Language: Czech
Teaching methods: full-time
Guarantor: RNDr. Tomáš Holan, Ph.D.
Classification: Informatics > Programming
Incompatibility : NPRF033, NPRM001
Interchangeability : NPRF033, NPRM001
Is incompatible with: NPRF041, NPRF023, NHIF029, NPRM001, NPRF040, NPRF033
Is pre-requisite for: NPRG012
Is interchangeable with: NPRM001, NPRF040, NPRM018, NPRF041, NPRF023, NPRF033, NHIF029
Annotation -
Last update: G_I (30.03.2001)
Basic course of programming for students in the 1st year of study in study programs "Computer Science" add "Computer Science Education". The course includes programming language Pascal and Turbo Pascal, design of algorithms and practical programming.
Literature - Czech
Last update: 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

Syllabus - Czech
Last update: 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.

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html