This subject presents an array of problems that are dealt with in artificial intelligence, as well as the theoretical foundations of AI and its general applications. The subject focuses on the two basic areas of artificial intelligence: problem solving (including state space, Heuristic search and Constraint Satisfaction), and the Knowledge representation. To round out this approach, students will also be introduced to two topics that currently have a more important presence in practical applications and research: the Natural Language Processing and Knowledge-Based Systems. The subject has a practical focus.