NMIN101 Programování 1

 

Cíl předmětu

 

Obsahem výuky v zimním semestru jsou základy algoritmizace a programování. Výuka je vedena na bázi programovacího jazyka Pascal. Důraz ovšem není kladen na ovládnutí detailů jazyka, nýbrž na pochopení principů návrhu a tvorby programů, na seznámení se základními algoritmy, datovými strukturami, programovacími technikami, dále s typickými prostředky programovacích jazyků a se základními postupy užívanými při návrhu a ladění programů.

 

Zápočet

 

Předmět NMIN101 Programování 1 je zakončen zápočtem, který uděluje cvičící. K získání zápočtu je třeba odladit a včas odevzdat zápočtový program a splnit další podmínky stanovené cvičícím (účast na cvičeních, vypracované domácí úkoly, úspěšně napsané písemky apod.). Dále je třeba úspěšně vykonat praktický zápočtový test, který zadává přednášející ve zkušebních termínech společných pro všechny studijní skupiny.

 

Úkolem při zápočtovém testu je vyřešit jeden středně obtížný problém, tzn. navrhnout, napsat a odladit program ve vývojovém prostředí Borland Pascal, FreePascal nebo Lazarus. K tomu jsou zapotřebí znalosti programovacího jazyka a algoritmů podle níže uvedeného sylabu. Zápočtové testy se konají v počítačové učebně SW2 (přízemí budovy MFF na Malostranském nám.) ve zkouškovém období zimního semestru a opravné pokusy pak následně ještě v březnu a v dubnu. Každý posluchač má nejvýše tři pokusy na absolvování testu (po skončení zkouškového období už jenom dva). V dubnu bude vypsán pouze jeden poslední zkušební termín a bude určen výhradně pro opravné pokusy (tzn. pro posluchače, kteří na některém z předchozích zkušebních termínů neuspěli).

 

K účasti v testu se posluchači přihlašují v SISu stejným způsobem, jako se hlásí na zkoušky. Pokud se někdo bez omluvy nedostaví k testu v termínu, na který se přihlásil, příslušný pokus mu propadá. Není třeba zřizovat si předem vlastní účet pro práci v počítačových učebnách na Malé Straně, přihlašovací údaje dostanete na začátku testu.

 

Z tohoto předmětu není zkouška, znalost učiva však bude vyžadována u zkoušky z navazujícího předmětu NMIN102 Programování 2 v letním semestru.

 

Sylabus předmětu

a) Typické prostředky a nástroje programovacích jazyků ukázané na příkladu programovacího jazyka Pascal (Borland Pascal) v rozsahu: deklarace (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), práce s textovými soubory (včetně formátování výstupních dat), procedury a funkce (lokalita identifikátorů, způsoby předávání parametrů, rekurze), návěští a příkaz skoku, základní parametry překladače (přepínače generování kontrol).

b) 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í Borland Pascal nebo Free Pascal (editor, překlad, výpočet, ladicí prostředky – trasování, sledování hodnot proměnných atd.).

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

·       vnitřní třídění – přímé metody

·       práce s maticemi (základní operace)

·       implementace zásobníku a fronty v poli

·       aritmetika s vyšší přesností („dlouhá čísla“)

·       jednoduché algoritmy pro práci s permutacemi (následník, pořadové číslo)

·       práce s daty v kalendáři

·       úpravy textu (vyhledávání, formátování)

·       použití rekurze

·       backtracking (prohledávání do hloubky)

·       algoritmus vlny (prohledávání do šířky)

·       metoda „rozděl a panuj“

·       faktorové množiny (třídy ekvivalence)

 

Literatura

 

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

učebnice přímo určená pro tento základní kurz programování, pokrývá většinu učiva algoritmů v obou semestrech (nevykládá syntaxi programovacího jazyka)

[2] P. Satrapa: Pascal pro zelenáče, Neocortex Praha 2000-2005

dobrá učebnice jazyka Pascal a jeho použití při tvorbě programů, namísto ní lze použít i jakoukoliv jinou učebnici Pascalu

[3] J. Drózd, R. Kryl: Začínáme s programováním, GRADA Praha 1992

učebnice základů Pascalu a programování – vhodná pro začátečníky, nepokrývá však ani celé učivo v ZS

[4] P. Töpfer: Základy programování v úlohách, Scientia Praha 1997

učebnice základů programování, které jsou předváděny formou řešených příkladů - určena pro úplné začátečníky (první polovina ZS)

[5] P. Töpfer, D. Töpferová: Programování - Sbírka úloh, Fortuna Praha 1998

sbírka jednoduchých i o něco těžších úloh na procvičování

[6] P. Töpfer: Programování - Rekurze, Fortuna Praha 1998

výklad obtížnější partie programování - rekurze

 

Sylabus přednášky na děkanátním serveru