Introduction to Artificial Intelligence
Overall Course Objectives
The aim is to provide the student with an understanding of basic notions and techniques in artificial intelligence (AI) and to train the student’s abilities to apply these techniques. The focus of the course is primarily on symbolic artificial intelligence, in particular techniques based on search and logic.
See course description in Danish
Learning Objectives
- Explain, apply and implement uninformed and informed search techniques to solve AI problems
- Explain, apply and implement adversarial search techniques for AI in games
- Design, implement, benchmark and analyse search heuristics and game evaluation functions
- Explain and apply logical techniques for the representation of knowledge and reasoning
- Explain, apply and implement inference techniques in propositional and first-order logic
- Explain the logical methods of knowledge-base update
- Explain the strength and weaknesses of different AI techniques within search and logic
- Correctly determine the relevant AI technique for solving a given problem
- Explain the scope of AI, its potential for society as well as its limitations
- Discuss philosophical, ethical, legal, and societal consequences of AI
Course Content
What is AI? Foundations of AI. Uninformed search. Informed/heuristic search: A*, greedy best-first search. Adversarial search: game trees, Minimax, Monte-Carlo Tree Search. Knowledge bases in propositional and first-order logic. Inference techniques in propositional and first-order logic: modus ponens, forward and backward chaining, resolution, model-checking, SAT-solving. Basic strategies for updating knowledge bases (belief revision). Philosophical, ethical, legal and societal aspects of AI.
Recommended prerequisites
02100/02101/02102/02312/02314/02105/01017/01019, or equivalent courses. You need experience with algorithms and data structures, programming, propositional logic and recursive procedures. The course requires experience with implementing non-trivial algorithms in a standard programming language like Java or Python. The course can be taken by bachelor students satisfying the recommended prerequisites.
Teaching Method
Lectures, exercises, and written assignments.