Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:pp:start [2018/04/18 14:07]
kkutt [Haskell]
pl:dydaktyka:pp:start [2023/11/24 16:28] (aktualna)
ligeza [Logic Programming 2023/2024-winter]
Linia 1: Linia 1:
-====== ​Paradygmaty Programowania ​======+====== ​Logic Programming 2023/​2024-winter ​======
  
 +  - **Introduction to Logic Programming. Syllabus. Terms, Predicates, Clauses. Basic Examples.** [2.10.2023;​ali] ​
 +  - **Introduction to Prolog. 3 Core Mechanisms: Unification,​ Resolution, DFS Backtracking Search. Examples. Numbers generation. SEND+MORE=MONEY** [16.10.2023;​ali]
 +  - **<fc #​ff00ff>​E-Learning:​ 30.10.2023:</​fc>​** ​ **Prolog: Lists and Data Structures** [[https://​www.metalevel.at/​prolog|Chapters 0,1,2,3 and especially 4]] Also lectures Prolog-3 and Prolog-4 on lists (links below) ​ [30.10.2023;​ali]
 +  - **Prolog: Lists as Data Structures. Basic Operations on Lists. Advanced Operations on Lists. Recursion vs. Iteration.** [13.11.2023;​ali]
 +  - **Knowledge Engineering with Prolog. Meta-Programming in Prolog. Example Applications.** [27.11.2023;​ali]
 +
 +
 +----
 +
 +[[https://​www.metalevel.at/​prolog|The Power of Prolog]]
 +
 +
 +
 +
 +
 +====== Programowanie Logiczne ======
 +
 +
 +
 +==== Programowanie w języku Prolog - wykłady 2020/2021 ====
 +
 +
 +
 +Wykłady odbywają się we wtorki, 14:40-16:10 na UPEL/​Moodle:​ [[https://​upel2.cel.agh.edu.pl/​wiet/​course/​view.php?​id=1239 | Programowanie w języku Prolog 2021]]
 +
 +  - **Paradygmaty programowania:​ klasyfikacje języków programowania. Języki proceduralne a deklaratywne. ​ Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy:​ implementacja DFS, nawroty, //​backtracking//​. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [2.03.2021; ALi]
 +  - **Składnia Prologu. Termy i ich rola. Termy a listy. Obliczenia numeryczne w Prologu. Silnia. Rozmiana pieniędzy: rekurencja a iteracje. Mechanizm DFS z nawrotami. Przykład liczby.pl/​różne warianty. Wymuszanie nawrotów: fail. Predykat odcięcia - cut.  Warianty rozwiązania:​ SEND+MORE=MONEY.** ​  ​[9.03.2021;​ Ali]
 +  - E-Learning [16.03.2021]
 +  - **Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Generacja termów: huge_tree. Unifikacja. Algorytm unifikacji termów. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja, strategia SLD. Struktury listowe - wprowadzenie. Konstrukcja,​ rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania,​ nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami.** [23.03.2021;​ ALi] 
 +  - **Listy: Przykład: (Bridge and Torch). Pobieranie i wstawianie elementu do listy. Mechanizmy obliczeniowe:​ rekurencja, iteracja, nawroty. Struktury listowe: operacje na zbiorach i sekwencjach. Wybrane operacje na listach: 1-N, N-1, sumowanie, odwracanie; mechanizm akumulatora. Przykłady zaawansowanych definicji/​zadania ze str. 14, wykład 3.**  [30.03.2021;​ ALi]
 +  - **Struktury listowe. Operacje na zbiorach - realizacja. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań. ​ Listy-Tricks. Rekurencja a iteracje; pętle z fail. Pamięć globalna: assert/​retract.** [13.04.2021;​ ALi]
 +  -  **Listy - operacje zaawansowane - dokończenie. Metapredykaty operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Sterowanie wnioskowaniem:​ negacja (not), cut i fail. Wstęp do metaprogramowania. ​ Przykłady metaprogramowania.** ​ [20.04.2021;​ ALi]
 +  - **Metaprogramowanie. Reprezentacja i przetwarzanie wiedzy. Przykłady zastosowań. Programowanie deklaratywne a proceduralne;​ Prolog a Python - porównanie wybranych konstrukcji. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. ​ ECLiPSe CLP. B-Prolog, GNU Prolog. MiniZinc; Numberjack. ASP. Picat. Problog. Logica (Google).** [27.04.2021.04.2021;​ ALi]
 +
 +
 +
 +----
 +Materiały do pobrania:
 +
 +  * {{ :​pl:​dydaktyka:​pp:​prolog_1_2021.pdf |Prolog-1: Syntax, Variables, Terms, Clauses}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog_2021-2.pdf |Prolog-2: Substitutions and Unification}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog_2021_3.pdf |Prolog-3: Lists in Prolog}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog_2021_4.pdf |Prolog-4: Lists: Advanced Operations}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog_2021-5.pdf |Prolog-5: Knowledge Representation. Metapredicates. Not, cut, fail.}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog_2021_6.pdf |Prolog-6: Metaprogramming. Example Applications.}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog-10-examples-2021.zip | Przykłady do wykładu 1}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog-11-20-examples-2021.zip |Przykłady do wykładu 2}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog-lists-2021.zip |Przykłady do wykładu 3}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog-lists-advanced-2021.zip |Przykłady do wykładu 4}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog-esst-examples.zip |A Set of Examples: Essential Thinking}}
 +  * {{ :​pl:​dydaktyka:​pp:​python-prolog.zip |Prolog vs. Python by few examples}}
 +  * {{ :​pl:​dydaktyka:​pp:​prolog.zip |Yet another examples in Prolog - 2021}}
 +
 +----
 +  * Prolog: programowanie deklaratywne. [materiał fakultatywny] ​ [[http://​kti.mff.cuni.cz/​~bartak/​prolog/​contents.html|Prolog]]
 +  * [[https://​polydev.pl/​2017/​12/​16/​realne-zastosowania-jezyka-prolog/​|Ciekawe zastosowania Prologu]]
 +  * [[http://​www.pathwayslms.com/​swipltuts/​html/​|Web Applications in SWI-Prolog: A Tutorial]]
 +
 +
 +
 +----
 +Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności:​
 +  * A Prolog interpreter in JavaScript [[http://​tau-prolog.org/​|Tau-Prolog]]
 +  * Answer Set Programming (ASP) [[https://​potassco.org/​|Potassco ASP]]
 +  * B-Prolog + Constraints [[http://​www.picat-lang.org/​bprolog/​|B-Prolog]]
 +  * GNU Prolog + Constraints [[http://​www.gprolog.org/​|GNU Prolog]]
 +  *  The ECLiPSe Constraint Programming System [[http://​www.eclipseclp.org/​|ECLiPSe]]
 +  * <fc #​ff00ff>​New:​ Picat</​fc>​ [[http://​www.picat-lang.org/​|Picat]]
 +  * SWI-Prolog - Packages + clp(fd) [[http://​www.swi-prolog.org/​|SWI-Prolog]]
 +  * <fc #​ff00ff>​New:​ Problog</​fc>​ [[https://​dtai.cs.kuleuven.be/​problog/​|Problog]]
 +  * <fc #​9400d3>​New:​ Logica - Open Source Project (by Google)</​fc>:​ [[https://​opensource.googleblog.com/​2021/​04/​logica-organizing-your-data-queries.html]]
 +  * <fc #​9400d3>​New:​ Logica - Modern Logic Programming Language </fc> [[https://​logica.dev/​]]
 +
 +Inne - do uzgodnienia.
 +
 +__Selected links:__
 +
 +  * Prolog [[https://​en.wikipedia.org/​wiki/​Prolog|Prolog]]
 +  * Prolog - Wikibooks: [[https://​en.wikibooks.org/​wiki/​Prolog|Prolog]]
 +  * Prolog - Books: [[http://​freecomputerbooks.com/​langPrologBooks.html|Free Books on Prolog]]
 +----
 +
 +__Useful pages: courses + tutorials + examples:__
 +
 +  * [[https://​ktiml.mff.cuni.cz/​~bartak/​|Page of Roman Barták]]
 +  * [[http://​hakank.org/​|The famous Hakank Page]]
 +  * New: [[https://​www.coursera.org/​projects/​prolog-for-beginners-fhqrd|Coursera:​ Prolog-for-beginners]]
 +  * <fc #​ff00ff>​New:</​fc>​ [[https://​www.metalevel.at/​prolog|The Power of Prolog -  by Markus Triska (2005-2021)]] <fc #​ff00ff>​With numerous great live presentations on youtube!
 +
 +</fc>
 +
 +
 +
 +
 +===== WYKŁADY: Programowanie w Logice (Prolog) =====
 +
 +
 +==== Programowanie w Logice: Edycja 2019  (zima; 2h/​week)====
 +
 +Wykłady odbywają się we wtorki, 9:30-11:00, sala 224/C-2.
 +
 +  - **Paradygmaty programowania:​ klasyfikacje języków programowania. Języki proceduralne a deklaratywne. ​ Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy:​ implementacja DFS, nawroty, //​backtracking//​. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [1.10.2019; ALi]
 +  - **Obliczenia numeryczne w Prologu. Silnia. Mechanizm DFS z nawrotami. Przykład liczby.pl/​warianty. Wymuszanie nawrotów: fail. Pamięć globalna: assert/​retract. Wprowazdzenie do termów. Zmienne i ich rola oraz interpretacja/​uzytkowanie.** [8.10.2019; Ali]
 +  - **Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja. Struktury listowe - wprowadzenie.** [15.10.2019;​ ALi] 
 +  - **Algorytm unifikacji termów. Mechanizmy obliczeniowe:​ rekurencja, iteracja, nawroty. Struktury listowe. Termy a listy. Konstrukcja,​ rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania,​ nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami. Wybrane operacje na listach. Przykłady zaawansowanych definicji/​zadania.** [22.10.2019;​ ALi]
 +  - **Struktury listowe. Bazowe definicje rekurencyjne. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań (Bridge and Torch; Einstein). Listy-Tricks. Rekurencja a iteracje; pętle z fail.** ​ [29.10.2018;​ ALi]
 +  -  **Listy - operacje zaawansowane - dokończenie. Metapredykaty operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Sterowanie wnioskowaniem:​ negacja (not), cut i fail. Wstęp do metaprogramowania. ​ Przykłady metaprogramowania.** ​ [5.12.2019; ALi]
 +  - **Metaprogramowanie. Reprezentacja i przetwarzanie wiedzy. Przykłady zastosowań. Programowanie deklaratywne a proceduralne;​ Prolog a Python - porównanie wybranych konstrukcji. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. ​ ECLiPSe CLP. B-Prolog. Numberjack. ASP.** [12.11.2019;​ ALi]
 +<fc #​008080>​Prezentacje specjalne:</​fc> ​
 +  * {{ :​pl:​dydaktyka:​pp:​picat.pdf |Picat}}, ​
 +  * [[https://​github.com/​AdamKlekowski/​prolog_Bayesian_networks|Problog]],​
 +  * {{ :​pl:​dydaktyka:​pp:​prologibmnotes.pdf |Watson - IBM}}
 +<fc #​ff00ff>​Kolokwium zaliczeniowe</​fc>:​ termin do ustalenia.
 +
 + ​[[http://​home.agh.edu.pl/​~ligeza/​wiki/​|Materiały na mojej stronie www]]; zakładki:
 +  * [[http://​home.agh.edu.pl/​~ligeza/​wiki/​prolog:​intro|**Prolog**]] oraz 
 +  * [[http://​home.agh.edu.pl/​~ligeza/​wiki/​prolog:​course|**New Course of Prolog**]]
 +
 +E-Learning/​materiał uzupełniający: ​
 +
 +
 +
 +----
 +<fc #​9400d3>​Przykłady z wykładów - do pobrania:</​fc> ​ {{ :​pl:​dydaktyka:​pp:​dydactic-2019.zip |Examples}} prezentacja i komentarze - na wykładzie.
 +
 +----
 +  * Prolog: programowanie deklaratywne. [materiał fakultatywny] ​ [[http://​kti.mff.cuni.cz/​~bartak/​prolog/​contents.html|Prolog]]
 +  * [[https://​polydev.pl/​2017/​12/​16/​realne-zastosowania-jezyka-prolog/​|Ciekawe zastosowania Prologu]]
 +  * [[http://​www.pathwayslms.com/​swipltuts/​html/​|Web Applications in SWI-Prolog: A Tutorial]]
 +
 +
 +
 +----
 +Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności:​
 +  * A Prolog interpreter in JavaScript [[http://​tau-prolog.org/​|Tau-Prolog]]
 +  * Answer Set Programming (ASP) [[https://​potassco.org/​|Potassco ASP]]
 +  * B-Prolog + Constraints [[http://​www.picat-lang.org/​bprolog/​|B-Prolog]]
 +  * GNU Prolog + Constraints [[http://​www.gprolog.org/​|GNU Prolog]]
 +  *  The ECLiPSe Constraint Programming System [[http://​www.eclipseclp.org/​|ECLiPSe]]
 +  * Picat [[http://​www.picat-lang.org/​|Picat]]
 +  * SWI-Prolog - Packages + clp(fd) [[http://​www.swi-prolog.org/​|SWI-Prolog]]
 +  * Problog [[https://​dtai.cs.kuleuven.be/​problog/​|Problog]]
 +
 +Inne - do uzgodnienia.
 +
 +__Selected links:__
 +
 +  * Prolog [[https://​en.wikipedia.org/​wiki/​Prolog|Prolog]]
 +  * Prolog - Wikibooks: [[https://​en.wikibooks.org/​wiki/​Prolog|Prolog]]
 +  * Prolog - Books: [[http://​freecomputerbooks.com/​langPrologBooks.html|Free Books on Prolog]]
 +----
 +
 +__Useful pages: courses + tutorials + examples:__
 +
 +  * [[https://​ktiml.mff.cuni.cz/​~bartak/​|Page of Roman Barták]]
 +  * [[http://​hakank.org/​|The famous Hakank Page]]
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +==== Programowanie w Logice: Edycja 2018  (zima; 3h/​week)====
 +
 +  - **Paradygmaty programowania:​ klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy:​ implementacja DFS, nawroty, //​backtracking//​. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [5.10.2018; ALi]
 +  - **Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Struktury listowe. Konstrukcja,​ rola i obsługa list. Predykaty member/2, select/3 i append/2.** [12.10.2018;​ ALi] 
 +  - **Wykład w dn. 19.10.2018 nie odbędzie się** [ALi]
 +  - **Struktury listowe. Termy a listy. Konstrukcja,​ rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania,​ nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami. Wybrane operacje na listach. Przykłady zaawansowanych definicji/​zadania.** [26.10.2018;​ ALi]
 +  - **Prolog: Struktury listowe. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań. Rekurencja a iteracje; pętle z fail. Metapredykaty operacji na listach. Wstęp do metaprogramowania. Przykłady metaprogramowania.** [9.11.2018; ALi] 
 +  -  <fc #​ff0000>​Njabliższy wykład - już ostatni :</​fc>​ <fc #​ff00ff>​Prolog:​ reprezentacja i przetwarzanie wiedzy. Metaprogramowanie. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. </fc> [16.11.2018;​ ALi] <fc #008080> Prezentacja specjalna: deklaratywny język programowania z ograniczeniami [[http://​www.picat-lang.org/​|Picat]]</​fc>​
 +  - Programowanie deklaratywne a proceduralne. Prolog a Python - porównanie wybranych konstrukcji. Programowania z ograniczeniami (clp(fd)). ECLiPSe CLP. B-Prolog. Numberjack. ASP. Problog. Picat. [materiał fakultatywny]
 +  - E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny] ​ [[http://​kti.mff.cuni.cz/​~bartak/​prolog/​contents.html|Prolog]]
 +
 +----
 +  * [[http://​home.agh.edu.pl/​~ligeza/​wiki/​|Homepage:​ A.Ligeza - Prolog x2 i inne]]
 +  * [[https://​polydev.pl/​2017/​12/​16/​realne-zastosowania-jezyka-prolog/​|Ciekawe zastosowania Prologu]]
 +  * [[http://​www.pathwayslms.com/​swipltuts/​html/​|Web Applications in SWI-Prolog: A Tutorial]]
 +
 +
 +
 +----
 +Propozycje prezentacji do przygotowania w ramach samodzielnej aktywności:​
 +
 +  * Answer Set Programming (ASP) [[https://​potassco.org/​|Potassco ASP]]
 +  * B-Prolog + Constraints [[http://​www.picat-lang.org/​bprolog/​|B-Prolog]]
 +  * GNU Prolog + Constraints [[http://​www.gprolog.org/​|GNU Prolog]]
 +  * Picat [[http://​www.picat-lang.org/​|Picat]]
 +  * SWI-Prolog - Packages + clp(fd) [[http://​www.swi-prolog.org/​|SWI-Prolog]]
 +  * Problog [[https://​dtai.cs.kuleuven.be/​problog/​|Problog]]
 +
 +Inne - do uzgodnienia.
 +
 +__Selected links:__
 +
 +  * Prolog [[https://​en.wikipedia.org/​wiki/​Prolog|Prolog]]
 +  * Prolog - Wikibooks: [[https://​en.wikibooks.org/​wiki/​Prolog|Prolog]]
 +  * Prolog - Books: [[http://​freecomputerbooks.com/​langPrologBooks.html|Free Books on Prolog]]
 +----
 +
 +__Useful pages: courses + tutorials + examples:__
 +
 +  * [[https://​ktiml.mff.cuni.cz/​~bartak/​|Page of Roman Barták]]
 +  * [[http://​hakank.org/​|The famous Hakank Page]]
  
-===== WYKŁADY (Prolog) ===== 
  
  
Linia 78: Linia 284:
 ==== Haskell ==== ==== Haskell ====
  
-Wszystkie lab z Haskella można wykonywać lokalnie (''​ghc'',​ ''​ghci''​) albo na https://repl.it/languages/haskell+  * [[http://home.agh.edu.pl/~mwypych/doku.php?​id=letni:​hs4javadev|Java vs Haskell]] 
 +  * [[http://​learnyouahaskell.com/​chapters|Learn You a Haskell for Great Good!]] (podręcznik online) 
 + 
 +LABORATORIA:​
  
   - [[.haskell:​lab-intro|Wprowadzenie do Haskella]]   - [[.haskell:​lab-intro|Wprowadzenie do Haskella]]
 +  - [[.haskell:​lab-simple-funcs|Funkcje i listy]]
 +  - [[.haskell:​lab-more-funcs|Więcej funkcji]]
 +  - [[.haskell:​lab-monads-types|Typy i Monady]]
 +  - [[.haskell:​lab-io|Haskell IO]]
 +  - [[.haskell:​lab-hunit|HUnit]]
 +
 +Instrukcje opracowano na podstawie: [[http://​learnyouahaskell.com/​chapters|podręcznika]],​ [[https://​courses.edx.org/​courses/​course-v1:​DelftX+FP101x+3T2015/​course/​|kursu na edX]], [[https://​www.futurelearn.com/​courses/​functional-programming-haskell/​|kursu na FutureLearn]],​ [[https://​www.hackerrank.com/​domains/​fp|zadań z HackerRank]]
pl/dydaktyka/pp/start.1524053234.txt.gz · ostatnio zmienione: 2019/06/27 15:54 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0