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. 2015/2016
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 ed. 4 Pearson Education / Addison-Wesley 2011
Witryna www przedmiotu:
https://studia.elka.pw.edu.pl/priv/14Z/JPS.A/
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt W_01
rozumie rolę technik przetwarzania struktur danych symbolicznych w implementacji metod z dziedziny sztucznej inteligencji
Weryfikacja: kolokwium 1,2, projekt
Powiązane efekty kierunkowe: K_W21
Powiązane efekty obszarowe: T1A_W07
Efekt 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 efekty kierunkowe: K_W09, K_W12, K_W21
Powiązane efekty obszarowe: T1A_W04, T1A_W03, T1A_W07
Efekt 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 efekty kierunkowe: K_W09, K_W12
Powiązane efekty obszarowe: T1A_W04, T1A_W03
Efekt W_04
zna i rozumie koncepcję programowania deklaratywnego w języku logiki w postaci zrealizowanej w języku PROLOG
Weryfikacja: kolokwium 1
Powiązane efekty kierunkowe: K_W09, K_W12
Powiązane efekty obszarowe: T1A_W04, T1A_W03
Efekt 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 efekty kierunkowe: K_W09, K_W12
Powiązane efekty obszarowe: T1A_W04, T1A_W03
Efekt 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 efekty kierunkowe: K_W09, K_W12
Powiązane efekty obszarowe: T1A_W04, T1A_W03
Efekt W_07
zna i rozumie PROLOGowy mechanizm poszukiwania rozwiązań przez nawroty
Weryfikacja: kolokwium 1,2, projekt
Powiązane efekty kierunkowe: K_W09, K_W12
Powiązane efekty obszarowe: T1A_W04, T1A_W03
Efekt W_08
rozumie budowę i przebieg wykonania deterministycznych i niedeterministycznych procedur PROLOGowych
Weryfikacja: kolokwium 1, projekt
Powiązane efekty kierunkowe: K_W09, K_W12
Powiązane efekty obszarowe: T1A_W04, T1A_W03
Efekt W_09
zna podstawowe techniki programowe używane w programach PROLOGowych, w tym podstawowe narzędzia metaprogramowania
Weryfikacja: kolokwium 2, projekt
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:
Efekt W_10
rozumie implementację w języku PROLOG wybranych podstawowych metod z różnych dziedzin sztucznej inteligencji
Weryfikacja: kolokwium 2
Powiązane efekty kierunkowe: K_W09, K_W21
Powiązane efekty obszarowe: T1A_W04, T1A_W07

Profil ogólnoakademicki - umiejętności

Efekt 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 efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U16
Efekt U_02
potrafi zbadać przebieg wykonania programu LISPowego
Weryfikacja: projekt
Powiązane efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U16
Efekt 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 efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U16
Efekt 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 efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U16
Efekt U_05
potrafi zbadać przebieg wykonania programu PROLOGowego
Weryfikacja: kolokwium 2, projekt
Powiązane efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U16