Course Catalog - 2022-2023



Department: College Courses
Grade Mode: Satisfactory/Unsatisfactory
Language of Instruction: Taught in English
Course Type: Lecture
Credit Hours: 1
Must be enrolled in one of the following Level(s):
Undergraduate Professional
Visiting Undergraduate
Description: Chess was one of the defining problems in artificial intelligence research throughout the 20th century. All attempts to solve the game encountered a combinatorial explosion: despite having only thirty-two pieces and sixty-four squares to put them, there are more possible games of chess than there are atoms in the universe. In spite of all this, modern chess engines dramatically outperform human players. To this day, chess remains technically unsolved, but these modern engines take a practical approach to give approximate solutions in a reasonable time. How can we approach computationally intractable problems whose answers aren't even objectively verifiable? To answer this, we will explore the history of chess engines, from early alpha-beta search all the way to modern deep learning approaches. Along the way, we'll examine key algorithms developed in the 20th and 21st centuries for search, concurrency, and machine learning. Additionally, we will write parts of our own chess engine in Rust to demonstrate the effects of particular optimizations and heuristics on engine performance. For the final project, students will implement a feature of their choosing in a chess engine and present a summary of their changes and results to the class. It is recommended that students have some programming experience equivalent to COMP 140 or CAAM 210 before taking this class.