T-732-GAPL General Game Playing (graduate)
This course will provide a comprehensive overview of the field of general game playing. The aim of general game playing is to create intelligent autonomous agents that automatically learn how to play many different games at an expert level without any human intervention, given only a description of the game rules. This requires that the agents learn diverse game-playing strategies without any game-specific knowledge being provided by their developers. A successful realization of this task involves the understanding and application of topics from many artificial-intelligence sub-disciplines, such as knowledge representation, agent-based reasoning, heuristic search, and machine learning. This course provided the students with such a background as well as an introduction to different parallel processing paradigms in the context of game-tree search; but parallel processing is fast becoming increasingly more relevant because of the foreseen development of massively multi-core computers.
On completion of the course students should have gained a thorough hands-on experience in building a complex artificial-intelligence based system, capable of both reasoning and learning from its actions.
T-704-ISM4 Informed Search Methods in AI (graduate)
Winter 2008, Winter 2006, Fall 2004
Informed search is one of the fundamental approaches for solving complex AI problems. In this course we explore state-space based search techniques commonly used for problem solving in artificial intelligence, with special emphasis on single-agent and adversary search. We will cover the fundamental techniques as well as more advanced topics, including real-time search and learning of search control. Using informed search as the central focus, the students will get acquainted to several main subfields of AI, such as heuristic search, planning, and machine learning. In the assignments students will get hands-on experience building search-based AI systems, e.g. for game-playing, puzzle solving, path finding, and/or planning.
T-721-RELE Reinforcement Learning (graduate)
Fall 2008, Fall 2006
This course provides a comprehensive introduction to reinforcement learning. Reinforcement learning is one of the fundamental and most successful approaches used by software agents when learning in unsupervised settings. The focus will be on algorithms for decision making in such environments. The techniques that are used come from several disciplines, including artificial intelligence (machine learning), control theory, and operations research. The course will cover Markov decision processes, dynamic programming, Monte Carlo methods, temporal-difference learning, eligibility traces and function approximation. The course covers both theoretical and practical aspects of the topics.
T-622-ARTI Introduction to Artificial Intelligence
Winter 2006, Winter 2005
Artificial intelligence (AI) is devoted to the computational study of intelligent behavior, including areas such as problem solving, knowledge representation, reasoning, planning and scheduling, machine learning, perception and communication. This course gives an overview of the aforementioned AI subfields from computer science perspective and introduces fundamental solution techniques for addressing them. The course is divided into two parts. The first part gives a thorough overview of classical AI topics whereas the second part is a hands-on in-depth study of a selected specialized topic.
Fall 2007, Summer 2004, Winter 2004
This course introduces more advanced data structures and techniques used in programming, e.g. balanced trees, heaps, and hashing. Also different algorithms for searching and ordering data are presented, as well as vairous graph theory algorithms. Formal methods for comparing and measuring algorithm complexity are covered.
University of Alberta
CMPUT-201: Practical Programming Methodology
Fall 2003, Fall 2002
The main theme of the course is programming to a well-defined interface; students use components as black boxes that have an interface, build components that are supposed to implement a given interface, and use tools to do this effectively. In terms of programming languages, this course teaches C and C++, although these will not be treated as distinct languages. Instead, we will be using C++ fom the beginning, and treat C as a subset (or dialect) of it. In terms of problem domains, the course focuses on the manipulation and transformation of text (as contrasted to graphics). In tems of techniques, it focuses on low-level language issues: how is data stored and represented, how is memory managed, pointers, the call stack, how is an object stored, etc. In terms of architecture and design, it concentrates on simple architetures, and students construct components that fit into the architecture.
CMPUT-101: Introduction to Computing
Fall 2001, Summer 2001, Winter 2001, Fall 2000
This course provides an introduction to the discipline of computer science. Topics include the algorithmic foundations of computer science; Boolean logic, gates and circuits; representation, manipulation, and storage of information in computers; computer system architecture; introductory programming in an machine language and a high-level programming language(C++); operating systems and other topics.