Runestone Academy Library of Books

The books on Runestone.Academy are all free and open source textbooks. We encourage you to browse the library and make use of these books in your courses. If you are a new instructor and want to do this, please take a look at the Help for Instructors page before you make a course. Note: The links to books on this page are for browsing only. If you want your work to be saved you should enroll in the course from the Change Course page.

AP Computer Science Textbooks:
AP CS Principles - Student Edition
Description: To register for this book use the code StudentCSP

keywords:

AP CSAwesome
Description: CSAwesome is a College Board endorsed curriculum for AP Computer Science A, an introductory college-level computer programming course in Java, by Barbara Ericson, University of Michigan, and Beryl Hoffman, Elms College. To register for this book use the code csawesome

keywords: AP CSA Java

Mobile CSP
Description: Mobile Computer Science Principles (Mobile CSP) is an NSF-funded effort to provide a broad and rigorous introduction to computer science based on MIT App Inventor, a programming language for creating apps for mobile devices. Mobile CSP is a program of the National Center for Computer Science Education. Mobile CSP is an approved curriculum provider for the College Board's Advanced Placement (AP) Computer Science Principles curriculum framework for introductory computer science To register for this book use the code mobilecsp

keywords: AP CSP App Inventor

Algebra Textbooks:
Intermediate Algebra: Functions and Graphs
Description: To register for this book use the code int-algebra

keywords:

Author/Instructor Help Textbooks:
Runestone Author Guide
Description: This is a good second stop, after you look at the overview, to find out all of the different options available for each of the directives. To register for this book use the code authorguide

keywords:

Runestone Instructor Guide
Description: This book can help you learn to use Runestone more effectively. Each section has links to videos that show you how to do things step by step as well. If you are just interested in learning more about interactive books then our overview is a better place to start. To register for this book use the code instructorguide

keywords:

Runestone Interactive Overview
Description: This short book shows off the capabilities of Runestone textbooks. It can also help you write your own Runestone books as each example contains the Runestone (RST) source for that example. This is a better place to start than the Instructor or Author guide books. To register for this book use the code overview

keywords:

Computer Science Textbooks:
Java Subgoals
Description: To register for this book use the code Subgoals

keywords:

Runestone Blue Book
Description: To register for this book use the code bluebook

keywords:

On Complexity
Description: This text introduces the field of complexity science which uses computation to explore the physical and social sciences. It employs graphs, cellular automata, and agent-based models to study interdiciplinary applications in physics, biology, and economics. To register for this book use the code complex

keywords: complexity, python, algorithms

CS160 Reader
Description: To register for this book use the code cs160Reader

keywords:

ENGR 101
Description: To register for this book use the code engr101umich

keywords:

Technovation
Description: To register for this book use the code technovation

keywords:

CS160 Reader
Description: To register for this book use the code welcomecs

keywords:

Data Structures Textbooks:
Problem Solving with Algorithms and Data Structures using C++
Description: The understanding of data structures and algorithms is central to understanding computer science. Presented in C++, this textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. We cover abstract data types and basic data structures, writing algorithms to solve problems, as well as using data structures to solve classic problems. The first chapter offers a review of basic C++, so this book is most appropriate for use after either a first programming course in C++ or after first programming course in any language. To register for this book use the code cppds

keywords: data structures, algorithms, C++

Problem Solving with Algorithms and Data Structures
Description: The Second Edition. You are better off using the 3rd now. To register for this book use the code pythonds

keywords:

Problem Solving with Algorithms and Data Structures 3rd edition
Description: To register for this book use the code pythonds3

keywords:

Solución de problemas con algoritmos y estructuras de datos
Description: A Spanish language translation of pythonds second edition. - We need a Spanish speaking maintainer to help with this title! To register for this book use the code pythoned

keywords:

Database Textbooks:
Mastering Relational Databases
Description: To register for this book use the code MasteringDatabases

keywords:

A Practical Introduction to Databases
Description: To register for this book use the code practical_db

keywords:

Instructor Guide Textbooks:
AP CSP - Teacher
Description: To register for this book use the code TeacherCSP

keywords:

Teach Mobile CSP
Description: To register for this book use the code teach-mobilecsp

keywords:

Intro to Computer Science Textbooks:
CS Java
Description: This book is a fork of the CSAwesome with most of the AP CS A references removed To register for this book use the code csjava

keywords:

Foundations of Python Programming
Description: A project based course for CS1, A huge rewrite of How to Think like a Computer Scientist by Paul Resnick and Brad Miller. The projects in this book lean in the direction of data science, but we are actively seeking projects relevant to any area of study. To register for this book use the code fopp

keywords: intro google active learning fun data turtle graphics learn

How to Think like a Computer Scientist: PreTeXt Interactive Edition
Description: This is mostly the same as thinkcspy but formatted by PreTeXt. We aim to expand on this book adding significantly more Parsons problems and other modern components that have been created since we first converted thinkcspy to Runestone 10 years ago. To register for this book use the code httlacs

keywords: intro google active learning fun data turtle graphics learn

Java Java Java
Description: To register for this book use the code javajavajava

keywords:

How to Think Like a Computer Scientist - C++
Description: To register for this book use the code thinkcpp

keywords:

How to Think like a Computer Scientist: Interactive Edition
Description: Based on the original open source book by Allan Downy and Jeff Elkner. Learn Python, this edition is expanded with additional topics and is fully interactive. Try examples, answer questions, interactively, right in the book! To register for this book use the code thinkcspy

keywords: intro google active learning fun data turtle graphics learn

Intro to Data Science Textbooks:
Introduction to Google Sheets and SQL
Description: To register for this book use the code ac1

keywords:

How to Think Like a Data Scientist
Description: This book is designed as a second course in computing, to follow up on an intro to programming with Python. It introduces many ideas in data science in an intuitive/informal way. To register for this book use the code httlads

keywords:

Intro to Data Science, Intro to Computer Science Textbooks:
Python for Everybody - Interactive
Description: This interactive ebook was created by a team led by Dr. Barbara Ericson. That team started with a static version of this ebook created by Dr. Charles Severance for his Python for Everybody course. He built that ebook by starting with Allen B. Downey's *Think Python* book. This ebook is a data-oriented introduction to Pyton 3 and covers both novice and intermediate levels of programming. Use code py4e-int To register for this book use the code py4e-int

keywords: Python, Python 3, novice, intermediate, data science, data processing

Language Transition Textbooks:
JavaScript 4 Python Programmers
Description: To register for this book use the code JS4Python

keywords:

C++ for Python Programmers
Description: This short ebook is intended to make it easy for anyone who has some background in programming in Python to transition to programming in C++. This ebook also utilizes an optional graphics module that allows graphics in C++ to utilize commands like the Turtle library in Python. To register for this book use the code cpp4python

keywords: Python, C++, transition

Java for Python Programmers
Description: To register for this book use the code java4python

keywords:

Math Textbooks:
Apex Calculus
Description: To register for this book use the code APEX

keywords:

Business Calculus with Excel
Description: To register for this book use the code ExcelCalculus

keywords:

Abstract Algebra, Theory and Applications
Description: To register for this book use the code aata

keywords:

Active Calculus
Description: To register for this book use the code boelkins-ACS

keywords:

Discrete Math and Open Introduction
Description: To register for this book use the code dmoi

keywords:

A First Course in Linear Algebra
Description: To register for this book use the code fcla

keywords:

The Ordinary Differential Equations Project
Description: To register for this book use the code odeproject

keywords:

Web programming Textbooks:
Fundamentals of Web Programming
Description: To register for this book use the code webfundamentals

keywords:

class-exp Textbooks:
class-exp
Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test Parsons with and wihtout distractors. To register for this book use the code class-exp

keywords: Python, Python 3, experiment, test

p3pt Textbooks:
p3pt
Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson. To register for this book use the code p3pt

keywords: Python, Python 3, experiment, test

p3tog Textbooks:
p3tog
Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test write code versus write code with Parsons. To register for this book use the code p3tog

keywords: Python, Python 3, experiment, test

License Information

The books published on Runestone are all licensed under the Creative Commons CC-BY license or the GNU Free Documentation license. The source code for each book can be found on Our Github Page and will give you the specifics of the license. We encourage you to report any innacuracies, typos or leave us suggestions using the Github issues page for each book.