Zpět výuka
PRM002 Programování II pro neinformatiky
přednáška |
středa 14:00 K1 |
cvičení |
pátek 9:00 K3 nebo 10:40 K6
|
Obsah stránky:
Předmět prohlubuje znalosti z programování pro studenty, pro něž není informatika hlavním oborem.
Předmět je nepovinný, předpokládá se tedy zájem.
Nic víc - kromě základů algoritmického myšlení - se de facto nepředpokládá.
Kurs má dvě části:
- První dominantní část je věnována principům neprocedurálního programování.
Neprocedurální programování se obejde bez základních kamenů běžných procedurálních jazyků (Pascal,C,C++,Basic), kterými jsou pojem proměnné (jako jména pro kus paměti) a přiřazovacího příkazu. Programování se tak přibližuje "klasickému matematickému uvažování".
- Hlavní důraz je věnována programování v jazyce Prolog. Studenti si prakticky osvojí dovednosti v logickém programování. V Prologu se také vytvářejí a ladí zápočtové úlohy.
- Jako doplňkové téma se proberou základy funkcionálního programování na bázi jazyka LISP.
LISP se u zkoušky nevyžaduje.
- Druhá - v tomto roce podstatně kratší - část je věnována principům objektového návrhu programů. Jako základ si vezmeme jazyk Java. Vůbec však nepůjde o technické detaily jazyka. Zda a kolik materiálu této části se bude zkoušet, bude určeno podle fakticky probrané látky a zájmu studentů.
Zpět začátek
Zápočet uděluje studentovi vedoucí semináře.
Pokud student (kombinovaného) studia nemůže ze závažných důvodů semináře navštěvovat, dohodne si začátkem semestru náhradní podmínky udělení zápočtu s přednášejícím.
Student může získat zápočet za splnění následujících požadavků :
- Aktivní účast na seminářích a průběžné znalosti během semestru.
- Vytvoření a odladění zápočtového programu v Prologu.
K zápočtovému programu je potřeba vytvořit smysluplnou dokumentaci.
Zpět začátek
- Rudolf Kryl: Úvod do programovacího jazyka Prolog
učební text - ke stažení z WWW stránek přednášejícího
aktuální verze 3.02 ve formátu pdf
nebo zip
Text byl původně napsán pro čtenáře s o poznání menší programátorskou erudicí, než má většina z Vás. Proto by mělo jít o "nenáročné čtení před usnutím". Text pokrývá přibližně první polovinu látky z Prologu. Obsahuje řadu jednoduchých programů.
Budu vděčný za připomínky a opravy chyb - posílejte je na můj mail a v subjectu uveďte číslo verze, ke které se připomínky vztahují.
Zpět začátek
- P.Jirků a kol. : Programování v jazyku Prolog
SNTL 1991
Pěkná knížkav češtině. Neobsahuje mnoho těžších příkladů, věnuje se však dost podrobně souvislostem s logikou.
- Bratko I.: PROLOG Programming for Artificial Intelligence
Addison-Wesley, Reading, Massachussets, 1986 ISBN 0-201-14224-4
Stále velmi pěkná knížka. První díl obsahuje výklad Prologu
(náš přístup k výkladu je do značné míry poplatný přístupu této knihy),
druhý obsahuje výklad některých základních partií umělé inteligence pomocí programů v Prologu.
- Harold Abelson, Gerald Jay Sussman, Julie Sussman :
Structure and Interpretation of Computer Programs
Mc Graw-Hill Book Company 1985 ISBN 0-07-000-422-6
Výklad principů programování na bázi jazyka XSCHEME (dialekt jazyka LISP).
Kniha byla používána v základnídním kursu programování na MIT.
My použijeme tohoto jazyka i příkladů z této knihy k velmi zběžnému seznámení s principy LISPu.
- Ivan Kalaš : Iné programovanie - stretnutie s jazykom Lisp
Alfa 1992
Krásná kniha s množství originálních příkladů.
Uživaný dialekt LISPu se poněkud liší od toho, se kterým budeme pracovat na přednášce my.
Literatura pro druhou část přednášky:
Bude upřesněna později.
Zkouška se koná 21.ledna a 7.února 2003 vždy od 8:30 v posluchárně K2.
Na zkoušku se přihlašuje ve studijním informačním systému.
Zkouška má písemnou a ústní část, větší váhu má část písemná.
V písemné části mají studenti dvě hodiny na vypracování
dvou nepříliš obtížných příkladů v Prologu, v nichž má student prokázat,
že ovládl základní techniku neprocedurálního programování
(u každého příkladu může být předepsané i jak má být řešen)
Ústní část se skládá ze dvou částí
- společná (zkoušející a zkoušený) oprava vytvořených programů a diskuse nad nimi
- Kromě toho může student dostat otázku z některého z následujících témat:
- Tvar programu v Prologu a jeho interpretace
- Deklarativní a operační sémantika programu v Prologu
- Operátor řezu
- Negace
- Práce se seznamy
- Reprezentace datových struktur (např. grafy, stromy, rozdílové seznamy)
- Vstup a výstup v Prologu, včetně definování operátorů.
- Predikáty pro řízení databáze (assert,...)
- Predikáty grupování termů (bagof, setof) a jejich užití
- Efektivita programů v Prologu
Zpět výuka