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.
Poslední úprava: ()
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.
Poslední úprava: G_I (30.03.2001)
Literatura
[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
Poslední úprava: Zakouřil Pavel, RNDr., Ph.D. (05.08.2002)
Sylabus
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.