Explorations in Computing: An Introduction to Computer Science

Series:
Published:
Content:
Author(s):
Free Standard Shipping

Purchasing Options

Hardback
ISBN 9781439812624
Cat# K10640

$83.95

$67.16

SAVE 20%


eBook (VitalSource)
ISBN 9781439812631
Cat# KE10593

$83.95

$58.77

SAVE 30%


eBook Rentals

Features

  • Uses hands-on projects to teach computer science concepts and applications
  • Covers ideas important to encoding data
  • Explores how to use random numbers in a variety of algorithms, from games to scientific applications
  • Discusses key concepts in natural language processing, including syntax and semantics
  • Requires no prior experience with programming
  • Includes a set of exercises at the end of each chapter, with selected solutions in an appendix
  • Provides a lab manual for Ruby and RubyLabs and links to the latest versions of the software on the book’s website

Summary

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.

 

Table of Contents

Introduction
Computation
The Limits of Computation
Algorithms
A Laboratory for Computational Experiments

The Ruby Workbench
Introducing Ruby and the RubyLabs environment for computational experiments
Interactive Ruby
Numbers
Variables
Methods
RubyLabs

The Sieve of Eratosthenes
An algorithm for finding prime numbers
The Sieve Algorithm
The mod Operator
Containers
Iterators
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
Scalability
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
Collisions
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
Corewar
Self-Referential Code
Clones

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
Substitutions
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
Crossovers

Appendix A: Answers to Selected Exercises
Appendix B: Ruby Reference

Author Bio(s)

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.

Editorial Reviews

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