An Active Learning Approach to Teaching the Main Ideas in Computing
Explorations in Computing: An Introduction to Computer Science and Python Programming teaches computer science students how to use programming skills to explore fundamental concepts and computational approaches to solving problems. Tbook gives beginning students an introduction to computer science concepts and computer programming. Designed for CS0 and CS1 courses, it is very well suited for alternative lecture styles, including flipped classrooms.
Prepares Students for Advanced Work in Computer Science
A revised and updated version of the author’s Explorations in Computing: An Introduction to Computer Science, this text incorporates two major differences. It now uses Python, instead of Ruby, as the lab software so that students can seamlessly transition from introductory projects to more advanced studies in later courses. The book also introduces Python programming, providing students with sufficient programming skills so they can implement their own programs.
Practical, Step-by-Step Projects
The interactive lab projects in each chapter allow students to examine important ideas in computer science, particularly how algorithms offer computational solutions to problems. Students can type expressions, view results, and run experiments that help them understand the concepts in a hands-on way.
The Python software modules for each lab project are available on the author’s website. The modules include data files and sample Python code that students can copy and modify. In addition, the site provides a lab manual of installation instructions and tips for editing programs and running commands in a terminal emulator.
Table of Contents
The Python Workbench: Introducing Python and an Environment for Interactive Experiments
The Sieve of Eratosthenes: An Algorithm for Finding Prime Numbers
A Journey of a Thousand Miles: Iteration as a Strategy for Solving Computational Problems
Divide and Conquer: A New Strategy—Breaking Large Problems into Smaller Subproblems
Spam, Spam, Spam, Mail, and Spam: A Machine Learning Approach to Filtering junk Mail
Now for Something Completely Different: An Algorithm for Generating Random Numbers
Bit by Bit: Binary Codes and Algorithms for text Compression and Error Detection
The War of the Words: An Introduction to Computer Architecture and Assembly Language Programming
I’d Like to Have an Argument, Please: A Program that Understands English (or does it)
The Music of the Spheres: Computer Simulation and the N-Body Problem
The Traveling Salesman: A Genetic Algorithm for a Computationally Demanding Problem
John S. Conery is a professor in the Department of Biology and the Institute of Ecology and Evolution at the University of Oregon, where he teaches computer science courses and is developing introductory programming courses for biology majors. As a professor of computer and information science, he taught introductory computer science courses as well as courses on high performance computing and computational science. His research in bioinformatics and computational biology spans a number of areas related to gene and genome duplication, artificial neural networks, population modeling, and systems biology. He received a Ph.D. in computer science.