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]
E-Learning: 30.10.2023: Prolog: Lists and Data Structures 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]
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: 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:
Prolog: programowanie deklaratywne. [materiał fakultatywny]
Prolog
-
-
Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności:
-
-
-
-
The ECLiPSe Constraint Programming System
ECLiPSe
-
-
-
-
-
Inne - do uzgodnienia.
Selected links:
—-
Useful pages: courses + tutorials + examples:
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]
Prezentacje specjalne:
Kolokwium zaliczeniowe: termin do ustalenia.
Materiały na mojej stronie www; zakładki:
E-Learning/materiał uzupełniający:
Przykłady z wykładów - do pobrania: Examples prezentacja i komentarze - na wykładzie.
Prolog: programowanie deklaratywne. [materiał fakultatywny]
Prolog
-
-
Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności:
-
-
-
-
The ECLiPSe Constraint Programming System
ECLiPSe
-
-
-
Inne - do uzgodnienia.
Selected links:
—-
Useful pages: courses + tutorials + examples:
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]
Njabliższy wykład - już ostatni : Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. [16.11.2018; ALi]
Prezentacja specjalna: deklaratywny język programowania z ograniczeniami Picat
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]
Prolog
Propozycje prezentacji do przygotowania w ramach samodzielnej aktywności:
Inne - do uzgodnienia.
Selected links:
—-
Useful pages: courses + tutorials + examples:
Edycja 2018 (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 [1.03.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. [15.03.2018; ALi]
Prolog: Struktury listowe. Sortowanie. Operacje zaawansowane. Rekurencja a iteracje. Metapredykaty operacji na listach. [22.03.2018; ALi]
E-learning: Zadania do rozwiązania - z wykładu [Prolog-lists: str. 14]. [29.03.2018; ALi]
-
Zaawansowane definicje operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie. [12.04.2018; ALi]
Programowanie deklaratywne a proceduralne. Prolog a Python - porównanie wybranych konstrukcji. Programowania z ograniczeniami (clp(fd)). ECLiPSe CLP. B-Prolog. Numberjack. ASP. Problog. Picat. [19.04.2018; ALi]
E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny]
Prolog
Wprowadzenie do języka Haskell. [26.04.2018; PTM]
Edycja 2017 (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 [2.03.2017; 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. [9.03.2017; ALi]
Prolog: Struktury listowe. Sortowanie. Operacje zaawansowane. Rekurencja a iteracje. Metapredykaty operacji na listach. [16.03.2017; ALi]
Zaawansowane definicje operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie. [23.03.2017; ALi]
Wprowadzenie do języka Python. Prolog a Python - porównanie wybranych konstrukcji. ASP. Problog. Picat. [30.03.2017; ALi]
E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny]
Prolog
Wprowadzenie do języka Haskell. i dalej…
Edycja 2016 (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. Termy. [26.02.2016; 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. [4.03.2016; ALi]
Prolog: Struktury listowe. Sortowanie. Operacje zaawansowane. Metapredykaty operacji na listach. [11.03.2016; ALi]
Wprowadzenie do języka Haskell. [18.03.2016; PTM]
Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie. [31.03.2016; ALi]
Wprowadzenie do języka Python. [7.04.2016; ALi]
E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny]
Prolog
Haskell [14.04.2016] i dalej…
Edycja 2015 (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. Termy. [5.03.2015]
E-Learning: Prolog: programowanie deklaratywne. [12.03.2015]
Data Structures + Lists (Do przerobienia:
First Steps in Prolog oraz
Prolog Data Structures: List Processing).
Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna.
Prolog: struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2.
Prolog: wybrane zagadnienia zaawansowane.
Edycja 2014 (3h/week)
Paradygmaty programowania: klasyfikacje języków programowania. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. [6.03.2014]
Prolog: programowanie deklaratywne. Model obliczeniowy: implementacja DFS, nawroty, backtracking. Indeterminizm. Zmienne i ich rola. [13.03.2014]
Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. [20.03.2014]
Prolog: struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. [27.03.2014]
E-learning: Prolog: wybrane zagadnienia zaawansowane. [3.04.2014]
Data Structures + Lists (Do przerobienia:
First Steps in Prolog oraz
Prolog Data Structures: List Processing).
LABORATORIUM
Prolog
Haskell