Introduction to Computing
Explorations in Language, Logic, and Machines

David Evans
University of Virginia

Fall 2009 Edition (last updated 19 August 2009)

Download entire book as one PDF file: [PDF, 35MB] (298 pages)

Printed copies of the book can be ordered from ($12.95).


Contents and Index [PDF] (11 pages)


Chapter 1: Computing [PDF] (19 pages)

Part I: Defining Procedures

Chapter 2: Language [PDF] (17 pages)
Chapter 3: Programming [PDF] (20 pages)
Chapter 4: Problems and Procedures [PDF] (24 pages)
Chapter 5: Data [PDF] (33 pages)
[List Procedures Code, Pegboard Code]

Part II: Analyzing Procedures

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

Part III: Improving Expressiveness

Chapter 9: Mutation [PDF] (17 pages)
Chapter 10: Objects [PDF] (18 pages)
Chapter 11: Interpreters [PDF] (27 pages) [Charme Interpreter Code]

Part IV: The Limits of Computing

Chapter 12: Computability [PDF] (16 pages)
Chapter 13: Intractability (not yet available)

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). The Spring 2009 version of the book is available here.

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.