Explorations in Computing
An Introduction to Computer Science
by John S. Conery
Explorations in Computing is an introduction to computer science for non-majors and pre-majors. The book is a general overview of the field, introducing students to key concepts in computing and "computational thinking."
The distinguishing feature of this book is its active learning approach. Each chapter includes a step by step tutorial project that guides students through an interactive exercise to explore computation by running programs and trying them out on different inputs.
The exercises in the original version are all based on Ruby. Students develop a basic "literacy" so they can understand programs that have already been written.