This text looks at the relationship between the theory and application of computer-assisted language learning. The author also describes how the computer is conceptualized as both tutor and tool, and discusses the implications for computer programming, language teaching, and learning.