Course Description: One of the core abilities of an intelligent software system is to be able to solve problems and to plan how to achieve goals. Search is a general purpose technique for finding solutions to problems. However, these search spaces can be quite large and planning is one technique for exploiting domain-specific knowledge to reduce the size of the space to be searched. A planner can be viewed as a combination of algorithm, representation, and heuristics. We will look at these components and how they interact. Course Outcomes: By the end of this course you will have learnt to: - to understand current research papers on Automated Planning - to be able to use state-of-the-art planning systems to solve planning problems - to present problems in PDDL, the standard language for describing planning problems - to understand some of the tradeoffs involved in representing planning problems - to create domain-specific heuristics - to understand some of the tradeoffs involved in creating heuristics