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.