INFM319 Strawberry Prolog и Изкуствен интелект
Анотация:
В този курс студентите ще се запознаят с две свързани теми, които въобще не са нови, но с времето стават все по-актуални. Първата тема е Изкуствения Интелект. Ще се запознаем с фундаменталните понятия и достижения в тази област, като започнем от работата на Алан Тюринг.
Втората тема това е езика за програмиране Пролог. Този език е създаден специално за целите на изследователите в областта Изкуствен Интелект. Самата идея стояща в основата на езика Пролог е революционна и силно е изпреварила времето си. Идеята е, че програмиста не е длъжен да опише алгоритъма, по който задачата ще се реши. Вместо това, от него се иска само да опише задачата. След това той трябва да остави на компилатора грижата за решаването на задачата.
Програмите на Пролог и програмите на C изглеждат по коренно различен начин. Когато четете програма на C вие виждате поредица от сметки, но е много трудно да видите какво ще се получи когато тези сметки бъдат направени. Програмата на Пролог представлява поредица от факти и правила. Това прави програмата лесно читаема и разбираема.
Целта е студентите да погледнат на програмирането от един по-различен ъгъл. Те ще се запознаят с една оригинална среда за програмиране на Пролог, която се разработва в БАН съвместно със СУ и НБУ. Като упражнение ще създадат завършена и работеща програма (например, програма за игра на шах). Това упражнение може да бъде направено на Пролог, но не може да бъде направено на C, защото такава програма на Пролог е дълга само десетина страници. (Същата програма на C би била дълга стотици страници.)
• Практическите занимания ще дадат на студентите възможност да създадат цяла работеща програма. В повечето курсове по програмиране се създава само част от програма, докато в този курс студентите ще създадат завършена програма имаща собствена логика и собствен интерфейс.
Преподавател(и):
Димитър Добрев
доц. Росица Голева д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) знаят:
• Какво е изкуствен интелект (ще получат представа за този феномен, с когото ще трябва да съжителстват в бъдещето).
2) могат:
• Да програмират (ще напишат работеща програма, която има логика и интерфейс).
Предварителни изисквания:
• Няма предварителни изисквания, но умение за работа с компютър и опит в програмирането са полезни.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Може ли машината да мисли? Аргументите на Тюринг.
- Какво е Изкуствен Интелект? Теста на Тюринг.
- Reinforcement Learning, Partial Observability
- Защо езика Пролог се смята за езика на Изкуствения Интелект? Каква е идеята стояща зад този език?
- Запознанство със синтаксиса на Пролог.
- Първа примерна Пролог програма написана на дъската.
- Пример за програма, чието дърво на извод е безкрайно. Каква е разликата между декларативната и процедурната семантика?
- Запознанство със средата Strawberry Prolog.
- Възможностите на Strawberry Prolog за Trace и визуализацията на трейсването в Proof Tree.
- Какво може да се направи със средствата на езика Пролог. Разглеждане на примерни програми.
- Създаване на Пролог програма колективно от цялата група.
Литература по темите:
Основна:
1. Alan Turing, (October 1950), Computing Machinery and Intelligence, Mind, LIX (236): 433–460
2. Strawberry Prolog – www.dobrev.com
Допълнителна:
1. W. F. Clocksin and C. S. Mellish, Programming in Prolog
2. Ч. Чень и Р. Ли, Математическая логика и автоматическое доказательство теорем, Москва "Наука", 1983.
3. Джордж Метакидес и Анил Нероуд, Принципи на логиката и логическото програмиране, ВИРТЕХ, 2000.
Средства за оценяване:
КОМБИНИРАНО ОЦЕНЯВАНЕ
50% текуща + 50 % проект
ФИНАЛЕН ИЗПИТ
100% проект