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.
Rather than teach students how to write programs, the approach used for the projects in this book is to have students develop a basic "literacy" so they can understand programs that have already been written.
The software used for lab projects is all written in Ruby, a popular open-source programming language. By reading descriptions Ruby programs, and then watching the programs in action, students gain first-hand experience with algorithms and important ideas in computation. Students are not expected to have any prior experience with computer programming. Ruby constructs used throughout the book are introduced in the first few chapters.
Textbook: Preface | Table of Contents | Sample Chapter | Errata
Resources: Lecture Slides | Updated Modules | Contributed Projects | FAQ
News
2014/09/12: Explorations in Computing: An Introduction to Computer Science and Python Programming will be available Fall 2014.
2013/04/06: Projects and lab modules developed by faculty who are using the text are now available on the Contributed Projects page.
2012/10/14: New visualizations for searching and sorting algorithms have been added (see Updated Modules).
Lab Software
Set up a "computational workbench" for the projects described in the text by installing a Ruby gem named RubyLabs.
Current Gem Version: 0.9.8
Additional Downloads
See Software Downloads to obtain a copy the RubyLabs gem for standalone installation or for a copy of the lab-setup script.
Lab Manuals
The Lab Manual, written for beginning students, contains instructions for installing lab software, running interactive programs with a terminal emulator, and using a simple text editor to view and modify programs and data files. It also includes a reference section for the RubyLabs modules used in each chapter.