EECS 396, 496: Special Topics in Game AI - Logic Programming

Quarter Offered

Spring : MWF 4-4:50 ; Horswill


Permission by Instructor


Declarative programming languages allow programmers to describe what a solution to a problem would look like, rather than a specific method for finding one. The language’s run-time system then uses a general-purpose search algorithm to find a specific solution or enumerate many solutions.

Logic programming is the most popular declarative technique for game AI research, having been used extensively for procedural content generation, game generation, and game design testing. In this course, we will explore two logic programming languages, Prolog and Answer Set Programming, their implementation, and their applications in game AI.

We will also discuss general issues in philosophical logic, such as the distinction between sense and reference, the problem of negation, the expressive inadequacy of first-order logic, model theory, and intuitionism.

Coursework will involve weekly programming assignments, as well as midterm and final examinations.

Registration is by permission of the instructor; send email to Students should have basic knowledge functional programming (e.g. EECS-111), discrete mathematics (e.g. EECS-212) and knowledge representation and reasoning (e.g. EECS-348).

The 496 section of the course is intended for CS Ph.D. students or students intending to do Ph.D. research. We will discuss issues of incompleteness and consistency, and examine more exotic logics such as second order logic under standard semantics, Montague’s intensional logic, modals, and substructural logics. The 496 section will have an extra course meeting, time to be determined later. Extra coursework for the 496 section will include writing research essays.