Programowanie w logice
Informacje ogólne
Kod przedmiotu: | WMI.II-PL-MI |
Kod Erasmus / ISCED: |
(brak danych)
/
(0613) Tworzenie i analiza oprogramowania i aplikacji
|
Nazwa przedmiotu: | Programowanie w logice |
Jednostka: | Instytut Informatyki i Matematyki Komputerowej |
Grupy: |
Przedmioty dla programu WMI-0037-2SO Przedmioty dla programu WMI-0118-1SO Przedmioty dla programu WMI-0118-2SO |
Punkty ECTS i inne: |
6.00
|
Język prowadzenia: | polski |
Zajęcia w cyklu "Semestr zimowy 2023/2024" (zakończony)
Okres: | 2023-10-01 - 2024-01-28 |
Przejdź do planu
PN WT LAB
LAB
WYK
ŚR CZ LAB
PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin, 60 miejsc
|
|
Koordynatorzy: | Paweł Gniadek | |
Prowadzący grup: | Paweł Gniadek | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Przedmiot - Egzamin | |
Ocena wliczana do średniej: | tak |
|
Efekty kształcenia: | Symbol Efekty kształcenia Odniesienie do efektów kierunkowych E1 ma wiedzę w z logiki matematycznej w zakresie niezbędnym do zrozumienia i tworzenia poprawnych programów w logice K_W02+ E2 zna podstawowe techniki algorytmiczne wykorzystywane w programowaniu w logice takie jak rekurencja, programowanie z nawrotami K_W06+, K_U09 E3 zna i potrafi stosować w praktyce paradygmat programowania w logice K_W04++, K_U06++ E4 zna język Prolog w stopniu pozwalającym na pisanie programów rozwiązujących średnio skomplikowane problemy K_W04++, K_U06++ E5 potrafi zaprojektować i zaimplementować rozwiązanie problemu programistycznego w języku Prolog K_U01+, K_U09+ |
|
Forma i warunki zaliczenia: | Student otrzymuje ocenę końcowa z ćwiczeń na podstawie punktów przyznawanych za systematycznie oddawane programy zaliczeniowe, rozwiązywania zadań tablicowych oraz punktów uzyskanych na kolokwiach Student otrzymuje ocenę końcową z modułu na podstawie punktów przyznawanych na ćwiczeniach oraz punktów uzyskanych podczas egzaminu pisemnego. |
|
Metody sprawdzania i kryteria oceny efektów kształcenia uzyskanych przez studentów: | Kolokwia (E1, E2, E4) Egzamin (E1, E2, E4) Samodzielnie implementowane zadania programistyczne (E2, E3, E4, E5) Samodzielne rozwiązywanie zadań tablicowych (E1, E2, E3, E4) Student jest oceniany na podstawie punktów uzyskiwanych z samodzielnie implementowanych programów, zadań tablicowych, kolokwiów i egzaminu. Skalę ocen ustala wykładowca. |
|
Metody dydaktyczne - słownik: | Metody podające - prezentacja multimedialna |
|
Metody dydaktyczne: | 1. Wykład ilustrowany prezentacją komputerową. 2. Ćwiczenia w laboratorium komputerowym, połączone z dyskusją przy tablicy. 3. Samodzielna implementacja zadań programistycznych |
|
Bilans punktów ECTS: | Udział w wykładach - 30 godz. Udział w zajęciach laboratoryjnych – 30 godz. Samodzielna implementacja zadań programistycznych – 60 godz. Samodzielne rozwiązywanie zadań tablicowych– 30 godz. Przygotowanie do kolokwiów i egzaminu oraz obecność na egzaminie – 30 godz. Łączny nakład pracy studenta: 180 godzin , co odpowiada 6 punktom ECTS |
|
Sylabus przedmiotu dla studentów rozpoczynających studia od roku akademickiego 19/20 lub później: | Matematyka komputerowa, studia stacjonarne pierwszego stopnia, rok 2 |
|
Pełny opis: |
I. Teoretyczne podstawy programowania w logice 1. Teorie pierwszego rzędu. Język i formuły logiki pierwszego rzędu. 2. Programy w języku logiki. Interpretacja klauzul programu. 3. Klauzule Horna. Programy dysjunkcyjne. 4. Podstawienia. Algorytm uzgadniania. Twierdzenie o uzgadnianiu. 5. Metody dowodzenia twierdzeń dla programów w logice. SLD-rezolucja: mechanizm wprowadzania, mechanizm uzgadniania. 6. Porównanie semantyki operacyjnej i deklaratywnej programów w logice. Interpretacje i modele Herbranda. 7. Negacja w programach w logice. Wprowadzanie literałów negatywnych. Reguły wnioskowania. 8. Sterowanie w programach w logice. Kolejność atomów, kolejność klauzul, odcięcie. Odcięcie w programach z negacją. II. Programowanie w Prologu 1. Programowanie deklaratywne a programowanie imperatywne. 2. Składnia języka 3. Mechanizm przeszukiwania i nawracania 4. Mechanizmy sterowania: odcięcia 5. Reprezentacje struktur danych: listy, drzewa binarne, drzewa BST, grafy, kolejki. 6. Techniki wykorzystujące akumulator 7. Arytmetyka w Prologu 8. Wejście i wyjście w Prologu 9. Metaprogramowanie 9. Systemy ekspertowe w prologu |
|
Literatura: |
Moduł ma charakter autorski, obowiązuje przede wszystkim materiał wyłożony, literatura ma charakter pomocniczy. 1. U. Nilsson, J. Małuszyński, "Logic, Programming and Prolog", 2 wyd., John Wiley, 1995. 2. L. Sterling, E. Shapiro, "The Art of Prolog", 2 wyd., MIT, 1994. 3. W. F. Clocksin, C.S.Mellish, Programming in Prolog, 5 wyd. Springer, 2003 4. T. Smith, Artificial Intelligence Programming in Prolog http://www.inf.ed.ac.uk/teaching/courses/aipp/material/aipp_coursenotes.pdf 5. M. Spivey, An introduction to logic programming through Prolog, http://spivey.oriel.ox.ac.uk/wiki/resources/lp/logic.pdf 6. P. Ross, Advanced Prolog. Techniques and Examples, Addison-Wesley, 1989 7. R. A. O'Keefe, The Craft of Prolog, MIT Press, 1990 8. M. Bramer, Logic Programming with Prolog, Springer 2005 |
Właścicielem praw autorskich jest Uniwersytet Jagielloński w Krakowie.