This book is intended as a text for an “Introduction to Computer Science” course for non-majors. That is, this book is intended for "the rest of the world"; namely "everyone can program". No specific pre-requisites at the college level are needed. However, basic high school level mathematics knowledge is assumed. Our approach minimizes the need to harp on the illustrative programming language details in favor of an immediate introduction to core computer science topics. User interface issues are ignored as these have little if anything to do with the foundations of Computer Science. We use a very practical programming language (Ruby) as the foundation and provide a variety of detailed examples using the language that illustrate the concepts being taught.