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 [2021/03/09 16:27]
ligeza [Programowanie w języku Prolog - wykłady 2020/2021]
pl:dydaktyka:pp:start [2023/11/24 16:28] (aktualna)
ligeza [Logic Programming 2023/2024-winter]
Linia 1: Linia 1:
 +====== 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 Logiczne ======
  
Linia 10: Linia 27:
  
   - **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]   - **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. 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] +  - **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] 
-  - Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Generacja termów: huge_tree. Unifikacja. ​Pamięć globalna: assert/​retract. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja. Struktury listowe - wprowadzenie. Predykaty member, select, append. [16.03.2021;​ ALi]  +  - E-Learning [16.03.2021] 
-  - 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. [23.03.2021; ALi] +  - **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]  
-  - 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.  [30.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 str14, wykład 3.**  ​[30.03.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. ​ [14.04.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] 
-  - 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. [21.04.2021.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]
  
  
Linia 24: Linia 42:
   * {{ :​pl:​dydaktyka:​pp:​prolog_1_2021.pdf |Prolog-1: Syntax, Variables, Terms, Clauses}}   * {{ :​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-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-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-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) ===== ===== WYKŁADY: Programowanie w Logice (Prolog) =====
  
pl/dydaktyka/pp/start.1615303655.txt.gz · ostatnio zmienione: 2021/03/09 16:27 przez ligeza
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