Explorations in Computing: An Introduction to Computer Science, 1st Edition (Hardback) book cover

Explorations in Computing

An Introduction to Computer Science, 1st Edition

By John S. Conery

CRC Press

390 pages | 115 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781439812624
pub: 2010-10-29
eBook (VitalSource) : 9780429109027
pub: 2010-10-29
from $28.98

FREE Standard Shipping!


Based on the author’s introductory course at the University of Oregon, Explorations in Computing: An Introduction to Computer Science focuses on the fundamental idea of computation and offers insight into how computation is used to solve a variety of interesting and important real-world problems. Taking an active learning approach, the text encourages students to explore computing ideas by running programs and testing them on different inputs. It also features illustrations by Phil Foglio, winner of the 2009 and 2010 Hugo Award for Best Graphic Novel.

Classroom-Tested Material

The first four chapters introduce key concepts, such as algorithms and scalability, and hone practical lab skills for creating and using objects. In the remaining chapters, the author covers "divide and conquer" as a problem solving strategy, the role of data structures, issues related to encoding data, computer architecture, random numbers, challenges for natural language processing, computer simulation, and genetic algorithms. Through a series of interactive projects in each chapter, students can experiment with one or more algorithms that illustrate the main topic. Requiring no prior experience with programming, these projects show students how algorithms provide computational solutions to real-world problems.

Web Resource

The book’s website at www.cs.uoregon.edu/eic presents numerous ancillaries. The lab manual offers step-by-step instructions for installing Ruby and the RubyLabs gem with Windows XP, Mac OS X, and Linux. The manual includes tips for editing programs and running commands in a terminal emulator. The site also provides online documentation of all the modules in the RubyLabs gem. Once the gem is installed, the documentation can be read locally by a web browser.

After working through the in-depth examples in this textbook, students will gain a better overall understanding of what computer science is about and how computer scientists think about problems.


This entry-level computer science textbook is intended for use in an introductory course for computer science majors or non-majors desiring an overview of the basic concepts and processes of computer programming. … Each chapter contains illustrations and code examples as well as a tutorial project that walks the student step-by-step through a task-related programming activity. Access to online resources, including a lab manual and links to the latest version of the open source Ruby software, is provided.

SciTech Book News, February 2011

Table of Contents



The Limits of Computation


A Laboratory for Computational Experiments

The Ruby Workbench

Introducing Ruby and the RubyLabs environment for computational experiments

Interactive Ruby





The Sieve of Eratosthenes

An algorithm for finding prime numbers

The Sieve Algorithm

The mod Operator



Boolean Values and the delete if Method

Exploring the Algorithm

The sieve Method

A Better Sieve

Experiments with the Sieve

A Journey of a Thousand Miles

Iteration as a strategy for solving computational problems

Searching and Sorting

The Linear Search Algorithm

The Insertion Sort Algorithm


Best Case, Worst Case

Divide and Conquer

A new strategy: breaking large problems into smaller subproblems

Binary Search

Binary Search Experiments

Merge Sort

Merge Sort Experiments

Recursive Methods

When Words Collide

Organizing data for more efficient problem solving

Word Lists

Hash Tables

The mod Function Again


Hash Table Experiments

Bit by Bit

Binary codes and algorithms for text compression and error correction

Binary Codes

Codes for Characters

Parity Bits

Huffman Trees

Huffman Codes

The War of the Words

An introduction to computer architecture and assembly language programming

Hello, MARS

The Temperature on MARS


Self-Referential Code


Now for Something Completely Different

An algorithm for generating random numbers

Pseudorandom Numbers

Numbers on Demand

Games with Random Numbers

Random Shuffles

Tests of Randomness

Ask Dr. Ruby

A program that understands English (or does it?)

Overview of ELIZA

Sentence Patterns

Building Responses from Parts of Sentences


An Algorithm for Having a Conversation

Writing Scripts for ELIZA

ELIZA and the Turing Test

The Music of the Spheres

Computer simulation and the N-body problem

Running around in Circles

The Force of Gravity

Force Vectors

N-Body Simulation of the Solar System

The Traveling Salesman

A genetic algorithm for a computationally demanding problem

Maps and Tours

Exhaustive Search

Random Search

Point Mutations

The Genetic Algorithm


Appendix A: Answers to Selected Exercises

Appendix B: Ruby Reference

About the Author

John S. Conery is a professor in the Department of Computer and Information Science at the University of Oregon. With over 30 years of teaching experience, he has taught courses on high performance computing and scientific computing in addition to introductory computer science courses. A member of the University's Center for Ecology and Evolutionary Biology, Dr. Conery has worked with biologists on a variety of problems related to gene and genome duplication, artificial neural networks, and population modeling. His current research interests are computational biology and bioinformatics.

About the Series

Chapman & Hall/CRC Textbooks in Computing

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming Languages / General
COMPUTERS / Programming / Algorithms