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 MaterialThe 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 ResourceThe 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 Sieve of EratosthenesAn algorithm for finding prime numbersThe 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 MilesIteration as a strategy for solving computational problemsSearching and Sorting The Linear Search Algorithm The Insertion Sort Algorithm Scalability Best Case, Worst Case

The War of the WordsAn introduction to computer architecture and assembly language programmingHello, MARS The Temperature on MARS Corewar Self-Referential Code Clones

Now for Something Completely DifferentAn algorithm for generating random numbersPseudorandom Numbers Numbers on Demand Games with Random Numbers Random Shuffles Tests of Randomness

Ask Dr. RubyA 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 SpheresComputer simulation and the N-body problemRunning around in Circles The Force of Gravity Force Vectors N-Body Simulation of the Solar System

Author(s) Bio

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.

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

What does "CPD Certified" mean?

CPD consists of any educational activity which helps to maintain and develop knowledge, problem-solving, and technical skills with the aim to provide better health care through higher standards. It could be through conference attendance, group discussion or directed reading to name just a few examples.

Use certain CRC Press medical books to get your CPD points up for revalidation. We provide a free online form to document your learning and a certificate for your records.