In the past few decades, computer systems have been programmed to prove theorems, diagnose diseases, assemble mechanical equipment using a robot hand, play games such as chess and backgammon, solve differential equations, analyze the structure of complex organic molecules from mass-spectrogram data, pilot vehicles across terrain of limited complexity, analyze electronic circuits, understand simple