This short paper defines the terminology used to support computer chess work, and introduces the basic concpets behind chess programs. It is intended to be of general interest, providing background informationot new ideas. Introduction Logically, chess is a trivial game: at every move, simply follow through each possible reply and its consequences until either a mate or a draw position is reached. In practical terms, however, this strategy is not workable, since an astronomically large number of chess positions would have to be examined. Thus both human players and computers rely on simplification to build an approximate model of the game.
The basic paradigm that computer programs employ is known as "search and evaluate." Their static evaluation is arguably more primitive than the perceptual one of humans. Yet the intelligence emerging from them is phenomenal. A human spectator is not able to tell the difference between a brilliant computer game and one played by Kasparov. Chess played by today's machines looks extraordinary, full of imagination and creativity.
If you have ever watched a person first learning to play chess, you know that a human chess player starts with very limited abilities. Once a player understands the basic rules that control each piece, he or she can "play" chess. However, the new player is not very good. Each early defeat comes as something of a surprise -- "Oh, I didn't think about that!" or "I didn't see that coming!" are common exclamations. The human mind absorbs these experiences, stores away different board configurations, discovers certain tricks and ploys, and generally soaks up the nuances of the game one move at a time.