Languages for Artificial Intelligence
Code | Completion | Credits | Range |
---|---|---|---|
X36JUI | Z,ZK | 4 | 2+2c |
- The course is a substitute for:
- Languages for Artificial Intelligence (36JUI)
- Lecturer:
- Neurčen (gar.), Jan Janoušek
- Tutor:
- Neurčen (gar.), Jan Janoušek
- Supervisor:
- Department of Computer Science and Engineering
- Synopsis:
-
The course is intended for those interested in functional and logic programming, which find most applications in solving problems of artificial intelligence (AI). The course offers a profound acquaintance with programming language Lisp and (to some level) with Prolog. Apart from classical operations on list structures in Lisp, some modern features of Common Lisp are included, as e.g. opeartions with vectors, hash tables as well as object-oriented programming in Lisp.
- Requirements:
-
As a homework, each student solves a problem from the domain of artificial intelligence or related fields of computer science. The results of homework and activity at seminars influence the overall course grading at the final exam.
- Syllabus of lectures:
-
1. Languages used in AI, functional programming, recursive programming style
2. Basic data types and functions of Lisp
3. Lists and trees, type predicates, generalized variables
4. Recursion and iteration in Lisp, local and global references
5. Characters and strings, input, output
6. Lambda-expression, mapping functionals, control structures of Lisp
7. Macros, structures
8. Classes, objects
9. Vectors, arrays
10. Logic programming, syntax of data and program in Prolog
11. Predicates, clauses, facts, goal satisfaction, cut
12. Arithmetic predicates, list operations, term processing
13. Meta-logic predicates, input, output
14. Programming style, modifying the Prolog knowledge base
- Syllabus of tutorials:
-
1. Recursive programming style, solving simple problems recursively in Pascal
2. Getting acquainted with the Lisp system in computer laboratory
3. Definining and debugging simple list functions in Lisp
4. Homework assignment
5. Recursive and iterative problem solving, efficiency of recursion
6. Mapping functionals and filters
7. Property lists of atoms, modifying pseudo-functions
8. Macros, structures
9. Object-oriented programming in Lisp
10. Consultation of homeworks
11. Getting acquainted with the Prolog system in computer laboratory
12. Recursion in Prolog, arithmetic and list predicates
13. Input, output, control of program execution
14. Homework evaluation, assessment
- Study Objective:
- Study materials:
-
1. Slade, S.: Object-Oriented Common Lisp. Prentice Hall, New Jersey 1998.
2. Bratko, I.: PROLOG Programming for Artificial Intelligence. Addison-Wesley, Reading, Mass. 1990.
- Note:
- Time-table for winter semester 2011/2012:
- Time-table is not available yet
- Time-table for summer semester 2011/2012:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Fri Thu Fri - The course is a part of the following study plans:
-
- Computer Technology - Software Engineering- structured studies (compulsory elective course, compulsory elective course, S2 recommendation)
- Computer Technology - System Programming- structured studies (compulsory elective course, compulsory elective course, S3 recommendation)
- Computer Technology - Computer Graphics- structured studies (compulsory elective course)
- Computer Technology - Computer Network and Internet- structured studies (compulsory elective course)
- Computer Technology - Designing Digital Systems- structured studies (compulsory elective course)
- Computer Technology - New - Software Engineering- structured studies (compulsory elective course, S3 recommendation)
- Computer Technology - New - Computer Network and Internet- structured studies (compulsory elective course, S3 recommendation)