Introduction to Computing Explorations in Language, Logic, and Machines
Free ebook online about computing and theory.
"Computer science is the study of information processes. Computer scientists study how to describe, predict properties of, and efficiently implement information processes. This book introduces the most important ideas in computing. It focuses on how to describe information processes by defining procedures, how to analyze the costs required to carry out a procedure, and the fundamental limits of what can and cannot be computed mechanically."