This course, Artificial Intelligence, introduces the basic concepts and techniques of Artificial Intelligence (AI). AI is the sub-area of computer science devoted to creating software and hardware to get computers to do things that would be considered “intelligent” as if people did them. Artificial intelligence has had an active and exciting history and is now a reasonably mature area of computer science. Many of the research discoveries have now reached the point of industrial application. Many companies have made and saved millions of dollars by exploiting the results of AI research. However the goal of emulating human intelligence has not been reached and many stimulating and challenging problems remain. All serious programmers and software engineers should know about the major AI techniques, which are regarded by many the core knowledge of any Computer Science degree. This course will allow students to gain generic AI skills that have applicability to a wide range of real-world problems. Topics covered include search strategies for solving problems, search algorithms, games, knowledge representation, automated planning, intelligent agents, reasoning under uncertainty, bio-inspired optimisation, and machine learning.