Learnings

This course should teach you something about computer science, some software engineering, and coding skills.

Computer Science

It turns out that the key idea for building our player is a clever algorithm based on a simple model of how a chess-like game is played. The minimax algorithm chooses a move that is provably best—assuming the model is right.

Built on top of minimax is a key algorithmic speed-up. A technique called alpha-beta pruning makes minimax run at usable speed. Data structures are selected to make minimax alpha-beta search work well.

Computer science theory and measurement are key to building our player.

Software Engineering

Much of building our player is about engineering trade-offs between

  • How hard pieces are to build

  • How the CPU is used

  • How memory is used

In each step of building our player, we will note places where trade-offs could have been made some other way. These trade-offs are key to building a strong player. You will want to think hard about which pieces you might want to add to your player to make it stronger.

Coding

Everyone thinks they can program a computer well. Proving it in this space is a good thing. You will learn some coding tricks and some XP-like methods for improving your coding.