Languages for Artificial Intelligence
Code | Completion | Credits | Range |
---|---|---|---|
E36JUI | Z,ZK | 4 | 2+2s |
- The course is a substitute for:
- Languages for Artificial Intelligence (XE36JUI)
- Lecturer:
- Tutor:
- Supervisor:
- Department of Computer Science and Engineering
- Synopsis:
-
The course is addressed to those interested in functional and logic programming, whose primary application domain is artificial intelligence (AI). It offers an acquaintance with programming languages Lisp and Prolog. As homework assignments, problems from AI, programming languages, and compiler construction are worked out. Usage of object oriented facilities of Common Lisp is welcome.
- Requirements:
- Syllabus of lectures:
-
1. Basic features of languages for AI, Lisp: atoms, symbolic expressions, definition of variables and functions.
2. Conditions and predicates, basic operations with symbolic expressions.
3. Rational agents, simple implementation.
4. Standard functions, eval-apply-funcall, types of recursion.
5. Argument definition, generalized variables, modification functions.
6. Implementation of search, heuristic search.
7. Control structures, lambda, mapping functionals, structures.
8. Macros, structure definition, metods and generic functions.
9. I/O operations, strings and chars, arrays, hash tables.
10. Programming style, games, alpha-beta procedure, CSP.
11. Prolog, program structure and execution, data types.
12. Declarative and procedural semantics, lists, search implementation.
13. Backtracking and cut, standard predicates, implementation of CSP.
14. Reserved
- Syllabus of tutorials:
-
1. Functional notation, inductive/recursive definition of numerical functions, symbolic data types.
2. LispWorks System, debugging and extending functions from lab 1.
3. Design and testing of functions that process symbolic expressions, debugging in LispWorks.
4. Designing efficient recursive functions, profiling.
5. AIMA code (doc, utilities) - modification and testing of selected functions.
6. AIMA code (agents, search) - modification and testing of selected functions.
7. Team formation and homework projects assignment.
8. Consultation to projects, usage of control structures.
9. Consultation to projects, usage of macros.
10. Consultation to projects, usage of I/O functions and hash tables.
11. Consultation to projects.
12. Prolog programming environment, debugging simple programs.
13. Presentation and evaluation of projects.
14. Assessment.
- Study Objective:
- Study materials:
-
[1] Kolář, J.: Jazyky pro umělou inteligenci. Skripta ČVUT, Praha 1994
[2] Slade, S.: Object-Oriented Common Lisp. Prentice Hall, New Jersey 1998
[3] Bratko, I.: PROLOG Programming for Artificial Intelligence. Reading, Addison-Wesley, Mass. 1990
[4] S. Russell - P. Norvig: Artificial Intelligence: A Modern Approach. Prentice Hall, 2003
[5] Paul Graham's WWW Pages (http://www.paulgraham.com/index.html)
[6] Seibel, P.: Practical Common Lisp. Apress, 2005, ISBN 1-59059-239-5 (see http://www.gigamonkeys.com/book/)
- Note:
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans: