Fundamentals of Artificial Intelligence
This course provides a comprehensive introduction to Artificial Intelligence, covering fundamental techniques that enable intelligent decision-making. Students will explore classical search algorithms, adversarial search in competitive environments, constraint satisfaction problems (CSPs) for solving complex puzzles, and Markov Decision Processes (MDPs) for sequential decision-making. The course also delves into reinforcement learning, where agents learn optimal behaviors through interaction, and Bayesian networks, which offer a probabilistic framework for reasoning under uncertainty. Through theoretical foundations and practical applications, students will develop a solid understanding of AI’s core principles and problem-solving strategies.
Course Goals
Upon completion of the course, students should be able to:
- Implement and experiment with fundamental AI algorithms, including search, adversarial search, constraint satisfaction, Markov Decision Processes (MDPs), reinforcement learning, and Bayesian networks.
- Analyze and compare the efficiency, completeness, and optimality of different AI techniques.
- Apply AI methods to solve real-world problems requiring planning, decision-making, and uncertainty handling.
- Understand and critically evaluate research papers in artificial intelligence.
- Extend existing AI algorithms by exploring new heuristics, learning strategies, or probabilistic models.
Prerequisite Knowledge:
Students should have a solid understanding of the following areas:
- Algorithms: e.g., How do uninformed and informed search algorithms work? What is the minimax algorithm used for?
- Probability: e.g., What is Bayes’ rule? How do you compute conditional probabilities?
- Discrete Mathematics: e.g., What are graphs, trees, and state spaces? How do constraints propagate in CSPs?
- Linear Algebra: e.g., What are eigenvalues and eigenvectors? How do you represent probability distributions using matrices?
- Programming: e.g., How do you implement and test algorithms efficiently? How do you handle structured data in Python?
- Numerical Computing: e.g., How do you solve linear systems? How do you represent and manipulate Markov models computationally?
Prerequisites:
- Prerequisites: CS111, CS113, CS122, CS123, CS221
- Minimum Grades: B in CS111, CS113, CS122, CS123, CS221
- Corequisites: None
- Anti-requisites: None
- Anti-req Prohibits: None
- Lectures: Monday 9:30-12:30am, Room 206 ENSA-Tetouan
- Discussion: Piazza
- Contact: For external enquiries, personal matters or in emergencies, you can email us at a.belcaid@uae.ac.ma.