- Nazwa przedmiotu:
- Języki przetwarzania symbolicznego
- Koordynator przedmiotu:
- Piotr PAREWICZ
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- JPS
- Semestr nominalny:
- 6 / rok ak. 2018/2019
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 105
oszacowanie czasowego wymiaru nakładu pracy studenta
--udział w zajęciach wykładowych - 30 godz.
--studiowanie materiału wykładowego, w tym przygotowanie do zadań projektowych--- 30 godz
--wykonanie zadań projektowych - 25 godz.
--powtórzenie materiału przed kolokwiami - 20 godz.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- --udział w zajęciach wykładowych - 30 godz.
--udział w spotkaniach projektowych - 15 godz.
razem 45 godz. co daje ok. 2 ECTS
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- --studiowanie materiału wykładowego, w tym przygotowanie do zadań projektowych--- 30 godz
--wykonanie zadań projektowych - 25 godz.
razem 55 godz. co daje ok. 2 ECTS
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- znajomość podstaw sztucznej inteligencji
- Limit liczby studentów:
- 40
- Cel przedmiotu:
- Kurs jest wprowadzeniem do języków przetwarzania danych symbolicznych. Omawiane są języki LISP i PROLOG, zwłaszcza w aspekcie ich przydatności jako języków implementacyjnych w programowaniu metod sztucznej inteligencji.
- Treści kształcenia:
- TREŚĆ WYKŁADU
WPROWADZENIE. Przetwarzanie struktur danych symbolicznych w implementacji metod sztucznej inteligencji. Cechy języków do przetwarzania danych symbolicznych. Znaczenie języków LISP i PROLOG jako języków programowania w dziedzinie sztucznej inteligencji.
JĘZYK LISP
WPROWADZENIE DO JĘZYKA. Koncepcja programowania funkcyjnego. Podstawowe wyrażenia symboliczne, ewaluacja wyrażeń symbolicznych. Lista jako podstawowa struktura danych w języku LISP. Funkcje wbudowane do przetwarzania list. Wykonanie programu jako proces rekurencyjnej ewaluacji wyrażeń symbolicznych. Podstawowe konstrukcje programowe. Podstawowy zestaw funkcji wbudowanych .
LISP JAKO JĘZYK IMPLEMENTACJI METOD SZTUCZNEJ INTELIGENCJI . Przykład studialny: implementacja systemu wnioskującego "w przód" .
JĘZYK PROLOG
OGÓLNA CHARAKTERYSTYKA JĘZYKA. Program jako zbiór faktów i reguł. Wykonanie interpretacyjne programu jako proces wnioskowania zstępującego. Operacja uzgadniania argumentów celu z argumentami następnika klauzuli. Mechanizm wycofywania w procesie interpretacji programu. Znaczenie deklaratywne i znaczenie proceduralne programu. Proces wnioskowania jako proces przetwarzania danych, język logiki jako język programowania ogólnego zastosowania. Podstawy teoretyczne: fakty i reguły jako formuły rachunku predykatów, model formalny interpretacji programów jako dowodzenie twierdzeń z wykorzystaniem zasady rezolucji.
STRUKTURY DANYCH. Listy: reprezentacja, deklaratywna i proceduralna specyfikacja operacji na listach. Programowanie operacji na listach. Ogólna składnia struktur: struktury jako wyrażenia funkcyjne. Przetwarzanie struktur w ramach mechanizmu uzgadniania. Przykłady przetwarzania złożonych struktur danych. Arytmetyka w języku PROLOG: wyrażenia arytmetyczne jako struktury, wbudowane predykaty arytmetyczne, notacja operatorowa.
SEMANTYKA PROCEDURALNA PROGRAMU. Klauzule jako warianty procedury. Procedura PROLOGowa jako implementacja różnych zadań przetwarzania danych dla różnych postaci celu. Semantyka wywołania procedury w PROLOGu. Procedury deterministyczne i niedeterministyczne. Implementacja konstrukcji programowej "generuj i testuj". Mechanizm odcięcia. Implementacja negacji. Narzędzia poziomu metaprogramowania.
IMPLEMENTACJA METOD SZTUCZNEJ INTELIGENCJI W JĘZYKU PROLOG -WYBRANE PRZYKŁADY. Implementacja algorytmów przeszukiwania przestrzeni stanów. Planowanie sekwencji akcji. Implementacja systemu wnioskującego "w przód" i systemu wnioskującego "wstecz". Przykładowa realizacja maszyny wnioskującej systemu eksperckiego. Indukcyjne uczenie reguł.
TEMATYKA ZADAŃ PROJEKTOWYCH
zadania polegają na opracowaniu modyfikacji i/lub uzupełnień do programów w językach LISP i PROLOG implementujących wybrane podstawowe metody sztucznej inteligencji
- Metody oceny:
- --ocena wiedzy i umiejętności wykazanych w opracowaniach zadań na kolokwiach (zadania sprawdzają zrozumienie programowych implementacji wybranych podstawowych metod sztucznej inteligencji oraz umiejętność zaprogramowania prostych zmian lub uzupełnień do tych programów)
--ocena wiedzy i umiejętności wykazanych w przedstawionych wynikach realizacji zadań projektowych oraz wiedzy wykazanej w trakcie ustnego omówienia projektu
- Egzamin:
- nie
- Literatura:
- Bratko - Prolog Programming for Artificial Intelligence Pearson Education 2001
Graham - Common LISPPrentice Hall 1995
Winston, Horn - LISP Addison-Wesley 1984
Luger - Artificial Intelligence Pearson Education 2005
- Witryna www przedmiotu:
- https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INIIT-ISP-JPS
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka W_01
- rozumie rolę technik przetwarzania struktur danych symbolicznych w implementacji metod z dziedziny sztucznej inteligencji
Weryfikacja: kolokwium 1,2, projekt
Powiązane charakterystyki kierunkowe:
K_W21
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_02
- ma podstawową wiedzę o roli języków LISP i PROLOG jako języków implementacji metod sztucznej inteligencji
Weryfikacja: kolokwium 1,2
Powiązane charakterystyki kierunkowe:
K_W09, K_W12, K_W21
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_03
- rozumie rolę języka PROLOG jako języka do opisu zadań przetwarzania złożonych struktur danych symbolicznych na poziomie abstrahującym od szczegółów implementacji operacji na strukturach i od szczegółów implementacji poszukiwania rozwiązań
Weryfikacja: kolokwium 1,2, projekt
Powiązane charakterystyki kierunkowe:
K_W09, K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_04
- zna i rozumie koncepcję programowania deklaratywnego w języku logiki w postaci zrealizowanej w języku PROLOG
Weryfikacja: kolokwium 1
Powiązane charakterystyki kierunkowe:
K_W09, K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_05
- rozumie dwoistość deklaratywno-proceduralną programu w języku PROLOG, w szczególności proceduralną interpretację procesu wnioskowania przeprowadzanego dla zadanego celu
Weryfikacja: kolokwium 1, projekt
Powiązane charakterystyki kierunkowe:
K_W09, K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_06
- zna i rozumie PROLOGowy mechanizm przetwarzania danych przez uzgadnianie argumentów celu z argumentami klauzuli, w tym mechanizmy przetwarzania złożonych struktur danych symbolicznych
Weryfikacja: kolokwium 1, projekt
Powiązane charakterystyki kierunkowe:
K_W09, K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_07
- zna i rozumie PROLOGowy mechanizm poszukiwania rozwiązań przez nawroty
Weryfikacja: kolokwium 1,2, projekt
Powiązane charakterystyki kierunkowe:
K_W09, K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_08
- rozumie budowę i przebieg wykonania deterministycznych i niedeterministycznych procedur PROLOGowych
Weryfikacja: kolokwium 1, projekt
Powiązane charakterystyki kierunkowe:
K_W09, K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_09
- zna podstawowe techniki programowe używane w programach PROLOGowych, w tym podstawowe narzędzia metaprogramowania
Weryfikacja: kolokwium 2, projekt
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W_10
- rozumie implementację w języku PROLOG wybranych podstawowych metod z różnych dziedzin sztucznej inteligencji
Weryfikacja: kolokwium 2
Powiązane charakterystyki kierunkowe:
K_W09, K_W21
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil ogólnoakademicki - umiejętności
- Charakterystyka U_01
- potrafi sformułować zgodnie z paradygmatem funkcyjnym i zapisać w języku LISP procedurę przetwarzania złożonej struktury danych
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U13
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.4.o
- Charakterystyka U_02
- potrafi zbadać przebieg wykonania programu LISPowego
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U13
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.4.o
- Charakterystyka U_03
- potrafi skonstruować procedurę w języku PROLOG zarówno na podstawie specyfikacji deklaratywnej jak i na podstawie specyfikacji proceduralnej
Weryfikacja: kolokwium 1
Powiązane charakterystyki kierunkowe:
K_U13
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.4.o
- Charakterystyka U_04
- potrafi skonstruować program w języku PROLOG wykonujący zadanie przetwarzania złożonych struktur danych symbolicznych, w szczególności w ramach implementacji algorytmu z dziedziny sztucznej inteligencji
Weryfikacja: kolokwium 2, projekt
Powiązane charakterystyki kierunkowe:
K_U13
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.4.o
- Charakterystyka U_05
- potrafi zbadać przebieg wykonania programu PROLOGowego
Weryfikacja: kolokwium 2, projekt
Powiązane charakterystyki kierunkowe:
K_U13
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.4.o