Zpět výuka ZS 2006/7

PRG005 Neprocedurální programování

Základní kurs neprocedurálního programování pro studenty informatiky.

pokud alespoň trochu můžete, choďte raději na přednášku v pátek,
v úterý nebylo dost míst ani ke stání

Hromadná konzultace k předmětu PRG005 se koná v úterý 16.ledna 2007 od 8:15 v posluchárně S9.

cvičení začínají druhý týden výuky

Obsah a cíle předmětu

Úkolem předmětu je seznámit studenty s ideami neprocedurálního programování a vybavit je základními programovacími technikami logického a funkcionálního programování.
Přednáška má tři hlavní části:
Zpět začátek

Podmínky pro získání zápočtu

Student může získat zápočet za splnění dvou požadavků :

Získání zápočtu je podmínkou připuštění ke zkoušce.

Podmínky pro udělení zápočtu upřesňuje a kontroluje vedoucí semináře, na který student chodí. Při přebírání zápočtového programu se zpravidla vhodným způsobem přesvědčí zda student program vytvořil sám (např. může požadovat provedení drobných změn v programuv reálném čase).
Zápočty do indexů i do SISu zapisují vedoucí seminářů.

Pokud student nemůže ze závažných důvodů navštěvovat seminář se skupinou, kam podle rozvrhu patří, musí se nejpozději do tří týdnů po zahájení výuky přihlásit do jiné skupiny. O přijetí či nepřijetí rozhoduje vedoucí semináře, kam chce student přejít. Kriteriem je udržení přibližně stejně velkých skupin.

Studenti, kteří se nepřihlásí (resp. nebudou přijati) na žádný ze seminářů do 23.10.2006 zařadí do skupin přednášející a pokud nebudou mít pro opoždění skutečně vážný důvod, dostanou jednu úlohu na zápočet navíc.
Pokud jste se zúčastnili některého semináře se skupinou, do které nebudete chodit, dejte to vedoucímu cvičení na vědomí.
Pokud student (kombinovaného) studia nemůže 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.

Zpět začátek

Literatura:

Základní literatura:

  1. 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.03 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 název textu a číslo verze, ke které se připomínky vztahují.
  2. Přehled předdefinovaných forem ve vykládaném dialektu LISPu
    Ke stažení ve formátu pdf
  3. ke stažení z www.haskell.org
    Poměrně čtivý základní text o programovacím jazyku Haskell. Pokrývá vše z jazyka, co probereme. Některé partie vynecháme, půjdeme však podstatně dál v programátorské obtížnosti úloh.
    Na dané adrese můžete získat úplný přehled o problematice jazyka Haskell.
Zpět začátek

Doplňková literatura (není nutná)

  1. P.Jirků a kol. : Programování v jazyku Prolog
    SNTL 1991
    Pěkná knížka v češtině. Neobsahuje mnoho těžších příkladů, věnuje se však dost podrobně souvislostem s logikou.
  2. 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.
  3. 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.
  4. 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.
Zpět začátek

Překladač prologu SWI

K ladění zápočtových programů a experimentům v Prologu doporučuji překladač SWI Prolog. Jde o volně stažitelný výborný překladač, který je k dispozici pro všechny platformy. Obecně lze experimenty s jazykem vřele doporučit, možná však je dobré počkat až z přednášky a seminářů ovládnete základy jazyka. Na třetí nebo na čtvrté přednášce si o práci s tímto překladačem řekneme více.

Zpět začátek

Informace o zkoušce

Nutnou podmínkou připuštění ke zkoušce je předchozí získání zápočtu.
Ke zkoušce se studenti přihlašují v SISu.
Ke zkoušce se můžete přihlásit jen když již máte zápočet udělen (t.j. zapsán v SISu nebo alespoň v indexu).
Pokud je volná kapacita může zkoušku skládat i ten, kdo nebyl přihlášen.
Ve vlastním zájmu si práce zorganizujte tak, abyste jeden pokus absolvovali během zkouškového období. Po jeho zkoušení bude již jen několik termínů (2-3 během semestru, 2 v červnu). Po letních prázdninách již tento předmět zkoušet nebudu.

U termínů po zkouškovém období není povoleno odhlášení se. Pokud k němu budete mít vážný důvod, vyřiďte to mailem.
Berte vážně podmínku, že se smíte zapsat až když máte zápočet zapsán v SISu. Pokud se přihlásíte neoprávněně, neumožním Vám zkoušku skládat.
Toto opatření je reakcí na bezohhlednost mnoha Vašich kolegů, kteří neoprávněnými zápisy blokovali termíny.

Požadavky ke zkoušce

Zkouška má písemnou a ústní část, větší váhu má část písemná.

Písemná část

obsahuje 4-5 jednoduchých příkladů, v nichž má student prokázat, že ovládl základní techniky neprocedurálního programování (u každého příkladu bude zpravidla předepsané, zda má být řešen v Prologu nebo Haskellu, případně i jak resp. jak ne).
Na vypracování písemné práce mají studenti 3 hodiny.

Ústní část zkoušky se skládá

Témata pro ústní zkoušku :

Zpět začátek