Zpět PRM046

PRM046 Co bylo na přednáškách a cvičeních

přednáška čtvrtek 14:00 K1 , cvičení čtvrtek 12:20 K4

Domluvili jsme se, že i cvičení může posunovat látku kupředu, nejen procvičovat látku z přednášky. Proto zde budeme uvádět i takový obsah cvičení

Stránku jsem začal psát až začátekem listopadu

  1. přednáška 2.října
  2. přednáška 9.října
  3. přednáška 16.října
  4. přednáška 23.října
  5. přednáška 30.října
  6. přednáška 6.listopadu
  7. Dosud mimo jiné bylo:
    mimo jiné zůstává na rozmyšlenou:
  8. přednáška 13.listopadu
  9. přednáška 20.listopadu
  10. přednáška 27.listopadu
Dosud mimo jiné bylo:
Zpět začátek
  1. přednáška a cvičení 13.listopadu
    • opakování
    • Analýza algoritmu pro zjišťování vyváženosti a bezpečnosti mobilů
    • fail, repeat, cyklus repeat .... fail, for cyklus
    • "Edinbugrský" model vstupu a výstupu: otvírání, zavírání, zjištění aktuálního streamu, Vstup/výstup termů resp. znaků.
      SWI Prolog umožňuje složitější práci se soubory. Pro použití na cvičeních a při zkouškách vystačíme s touto podmnožinou (v SWI je realizována s drobnými odchylkami).
    • Příklady jednoduchého vstupu a výstupu.
    • Větvení výpočtu pomocí středníku a explicitního použití operátoru = na pravé straně klauzule.
    • Kopírování souboru
    • jednoduchá písemka
    • Domácí úkoly:
      1. Rozmyslet vše, co dosud bylo
      2. Rozmyslet všechny problémy, které byly k romyšlení na tuto přednášku
      3. poslat mi mailem do čtvrtka v poledne řešení problémů 1 a 2
        pošlete s předmětem "PRM046DU", text programu/ů v příloze jako soubor
  2. Zpět začátek
  3. cvičení a přednáška 20.listopadu
    • odpovědi na dotazy
    • slévání uspořádaných seznamů jako příklad deterministické procedury
    • opětovná a podrobnější analýza algoritmu pro zjišťování bezpečnosti mobilů
    • návod k úloze zjišťování mocniny permutace zadané pomocé seznamu cyklů
    • Predikáty bagof a setof, "existenční kvantifikátor ^ ", jednoduché příklady užití.
    • definování operátorů, predikát op/3, asociativita a priorita operátorů
      příklady použití
    • Princip možné implemenace programu Eliza (rozhovor s pacientem psychoanalitika)
    • predikáty ovlivňující databázi: assert/1, retract/1, retractall/1
      a jejich vliv na efektivitu programu
    • modelování "globálních" proměnných pomocí assert a retract
    • příklad na zjednodušování výrazů - součet členů typu +-K*A, kde K je číslo
    • Připravte si případné dotazy k Prologu
    • Zůstávají domácí úlohy z minulé přednášky
    • Úlohy k procvičení programování v Prologu - vybetre si dle vlastní úvahy
    • vytiskněte si definici základních forem jazyka SCHEME, kterým se budeme zabývat příští týden
      k Prologu se ještě vrátíme
  4. cvičení a přednáška 27.listopadu
    Dialekt LISPu - SCHEME
    Přehled základních předdefinovaných forem je v materiálu
    • Výrazy v LISPu - prefixový způsob zápisu, vyhodnocování expanzí a redukcí.
    • Forma define
    • Podmínky: formy cond a if, nil jako false.
    • Příklady: efektivní umocňování, odmocnina newtonovou metodou.
    • Funkce jako parametry - motivační příklad.
    • Formy lambda a let, lokalita ve formě let.
    • Dvojice : formy cons, car, cdr.
    • Seznamy, forma list, příklady jednoduchých funkcí pro práci se seznamy.
    • Programování jednoduchých úloh se seznamy
    • Povídání o zápočtových úlohách
  5. cvičení a přednáška 4.prosince
    • Pokud jste tak ještě neučinili stáhněte si překladač SWI Prologu, abyste případně mohli položit dotazy
    • Povídání o zápočtových úlohách,
      Každý se musí do Vánoc se mnou domluvit na tématu a následně nejpozději do Silvestra poslat specifikaci programu.
      Neodkládejte to však zbytečně.
    • Opakování práce se seznamy v jazyku SCHEME
    • Forma quote.
    • Datová struktura = konstruktory + selektory (+metody).
    • Implemenace zlomku jako příklad nutnost "inteligentních" konstruktorů a selektorů.
    • Datová struktura binární strom, jednoduché programy s ní.
    • Proč jseme mluvili o jazyku SCHEME
    • Ještě naskok k Prologu:
      • Rekapitulace technik, které má programátor v Prologu k dispozici k (pozitivnímu) ovlivňování složitosti programů.
      • Několik verzí procedury počítající Fibonnaciho čísla, iterační verze
      • Domluvili jsme se, že 18.prosince si napíšeme písemku z Prologu
    • Úvod do Haskellu
      • Haskell jako funkcionální jazyk s typovou kontrolou.
      • Definice funkce, typová specifikace funkce.
      • Uživatelské definice typů. Typové a datové konstruktory. Typová synonyma. Polymorfické typy. Seznamy,
      • dvě definice typu binární strom
      • Práce s fukcemi více proměnných - curryfikace
    • Stáhněte si materiál Paul Hudak, Joseph H. Fasel: A Gentle Introduction to Haskell
  6. cvičení a přednáška 11.prosince
    • Opakování Haskellu
    • Jednoduché příklady
    • konstrukce let a where, dvojrozměrná syntaxe
    • Funkce map, fold a foldr a příklady jejich použití
    • Funkce v Haskellu nejsou striktní.
      Objekt bot. Líné (lazy, by need) vyhodnocování funkcí - vyhodnocuj až když musíš
      otvírá možnost definování nekonečných termů (jako zápisů algoritmů produkujících nekonečnou posloupnost výsledků, z nichž však v každém konkrétním výpočtu potřebuji - a tedy budu počítat - jen konečně mnoho)
      srovnej aktuální a petenciální nekonečno v matematice
    • zkratky seznamů
    • Definování seznamů pomocí generátorů a stráží. Výrazy pro aritmetické posloupnosti.
      Podrobný výklad sémantiky výrazů tvaru [ e | q1 , q2 , ... ,qr ],
      jednoduché příklady použití.
    • Použití stráží v definicích funkcí
    • Lambda abstrakce.
    • Převod infixového operátoru na binární funkci a zpět. Řezy (sections).
    • "Mečování" parametrů. Pořadí - odleva doprava a z vněšku dovniř,
      Výsledkem mečování může být úspěch, selhání nebo divergence.
      Formální parametry jako "vzorky" - patterns:
      • proměnné
      • As-patterns - '@'
      • žolík - '_'
      • datový konstruktor
      • "aritmetický parametr" - "n+k"
      • lazy patterns, příklady
    • Dvě definice funkce , která vrací zadaný počet prvků ze začátku seznamu, které se liší mírou tolerance k chybě v prvním a druhém parametru.
  7. přednáška 19.května
    Napíšeme v první "dvouhodině písemku, v druhé volný program