Introduction to Computing
Explorations in Language, Logic, and Machines

David Evans
University of Virginia

Spring 2010 Edition (last updated 11 January 2010)

View entire book as one PDF file: [PDF, for on-screen viewing, 36MB] (264 pages)
Download entire book as one PDF file: [PDF, for 8.5x11" printing, 29MB] (264 pages)

Printed copies of the book can be ordered from



Chapter 1: Computing [PDF] (17 pages)

Part I: Defining Procedures

Chapter 2: Language [PDF] (15 pages)
Chapter 3: Programming [PDF] (18 pages)
Chapter 4: Problems and Procedures [PDF] (21 pages)
Chapter 5: Data [PDF] (29 pages)
[List Procedures Code, Pegboard Code]

Part II: Analyzing Procedures

Chapter 6: Machines [PDF] (20 pages)
Chapter 7: Cost [PDF] (28 pages)
Chapter 8: Sorting and Searching [PDF] (29 pages) [Code]

Part III: Improving Expressiveness

Chapter 9: Mutation [PDF] (15 pages)
Chapter 10: Objects [PDF] (16 pages)
Chapter 11: Interpreters [PDF] (25 pages) [Charme Interpreter Code]

Part IV: The Limits of Computing

Chapter 12: Computability [PDF] (15 pages)

Book Comments

Because the book is under active development, I am especially appreciative of feedback that will improve the book. Particularly useful feedback including noticing any technical mistakes, improving the writing, and suggesting a less pretentious title will be rewarded with gold stars and eternal fame.


This is the course book for cs1120 (previously cs150).

Previous editions:

Title Suggestions

Original title: Computational Thinking: A Whirlwind Introduction to the Third Millennial Liberal Art from Ada and Euclid to Quantum Computing and the World Wide Web

Logic, Language, and the Mind: A Fresh Look Through the Science of Computers (Jonathan Grier)

Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.