Programming a Computer for Playing Chess, Claude Shannon
In March 1950, Claude Shannon, then at Bell Telephone Laboratories, published 'Programming a Computer for Playing Chess' in Philosophical Magazine, outlining two strategic approaches, exhaustive search (Type A) and selective heuristic search (Type B), that framed computer chess research for decades.

Background
By the late 1940s, programmable digital computers were beginning to exist as physical machines rather than theoretical constructs. Researchers had started to think about what these machines might actually be made to do. Most of the obvious answers were numerical: ballistics, census tabulation, scientific calculation.
Chess was a different kind of problem. It did not have a formula you could simply feed in. The number of possible games is so large that brute enumeration of every position through to checkmate was, and remains, beyond any conceivable machine. What made chess interesting to a certain kind of engineer was precisely that: it required something that looked like judgement. No one had yet written down, in mathematical terms, how a machine might go about making that kind of decision.
The tools that would later define artificial intelligence as a field did not yet exist in any organised form. There was no shared vocabulary for search strategies, no standard way to describe how a machine should evaluate a position. Anyone who wanted to think seriously about machine reasoning had to start from first principles.
What happened
In 1950, Claude Shannon, working at Bell Telephone Laboratories in New Jersey, published “Programming a Computer for Playing Chess” in Philosophical Magazine, Series 7, Vol. 41, No. 314. The paper was not a description of a working program. Shannon had not built one. What he had done was lay out, carefully and precisely, how such a program would have to be structured.
The core of his argument was a distinction between two strategies. A Type A program would use minimax search, meaning it would examine every legal move, then every reply to each of those moves, then every reply to those, and so on to some fixed depth, picking the path that maximised the player’s position while assuming the opponent would always minimise it. Shannon calculated that even looking a few moves ahead would generate an enormous number of positions, so a Type A approach would be very slow. A Type B program would instead do what a good human player does: recognise which moves were worth considering at all, and search only among those. That selective search would be faster but would require the machine to apply something like heuristic judgement, rules of thumb about positional value, to decide what to look at.
Shannon also described what a position-evaluation function would need to include: material count, mobility, king safety and similar factors. He was precise about the difficulties. He did not claim the problem was solved or that either approach was obviously superior. The paper was essentially a design specification written before anyone had the software, or in most cases the hardware, to act on it. Both of his categories remained the live terms of debate in computer chess research for the following forty years.
Why it mattered
Shannon's paper was the first rigorous treatment of machine game-playing as a computational problem, establishing the minimax search framework and the distinction between brute-force and selective search that continued to guide chess engine design well into the era of Deep Blue and beyond. By framing chess as a tractable problem for digital computers, Shannon helped legitimise game-playing as a serious domain for artificial intelligence research at a time when the field did not yet have that name. The Type A / Type B taxonomy remained a live conceptual reference in the literature for more than four decades.
People
Organisations
Bell Labs, Philosophical Magazine
Sources
- Programming a Computer for Playing Chess.Taylor & Francis / Philosophical Magazine, Series 7, Vol. 41, No. 314.Primary source
- Programming a Computer for Playing Chess (reprint in Computer Chess Compendium).Springer.Secondary
- Programming a Computer for Playing Chess, digitised text via INFN Pisa mirror.Istituto Nazionale di Fisica Nucleare (archival mirror).Secondary
Cite this page
AI Achievements. (1950). Programming a Computer for Playing Chess, Claude Shannon. Retrieved 2026-08-22, from https://achievements.ai/milestone/computer-chess-approaches-claude-shannon
@misc{achievements_computer_chess_approaches_claude_shannon,
title = {Programming a Computer for Playing Chess, Claude Shannon},
author = {{AI Achievements}},
year = {1950},
url = {https://achievements.ai/milestone/computer-chess-approaches-claude-shannon}
}