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. If you are a self-learner you can click on the Register button for the book. If you are taking a course your instructor will priovide you a code to register from the Change Course page.


Used by 1 students in 2 courses

Description:

Register for nonpgmmers

keywords:

AP Computer Science

Used by 192,084 students in 10,170 courses

Description: This is the old version of CSAwesome meeting the 2019-2025 College Board requirements for AP CSA in Java. Look below for the newer version, CSAwesome2, for the 2025+ AP CSA requirements.

Register for csawesome

keywords:

Used by 25,007 students in 2,026 courses

Description:

Register for StudentCSP

keywords:

Used by 24,345 students in 1,461 courses

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's App Inventor, a programming language for creating apps for mobile devices. Mobile CSP is a program of the Northern Lights Collaborative for Computing 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

Register for mobilecsp

keywords:

Used by 5,659 students in 803 courses

Description: CSAwesome2 is the newest AP CSA Java curriculum approved to meet the 2025-2026 College Board standards and an introductory college-level computer programming course in Java.

Register for csawesome2

keywords:

Used by 1,642 students in 98 courses

Description: Computer Science Education Week will be December 5-11, 2022. High school computer science educators and their students are invited to participate in the Hour of AI Education during CSEdWeek. In the Mobile CSP Alexa in Space Hour of AI mini-unit, students explore AI concepts and create Alexa skills to help inexperienced space travelers, such as tourists, complete everyday tasks in a microgravity environment. This unit is available through a free interactive e-book. The Mobile CSP Hour of AI will consist of 4 lessons that can be used in CS classrooms.

Register for alexainspace

keywords:

By: David M Diez, Mine Çetinkaya-Rundel, Leah Dorazio, Christopher D Barr

Used by 19 students in 1 course

Description: Advanced High School Statistics

Register for ahss3rd

keywords:

Used by 3 students in 3 courses

Description: BHSawesome2 is a AP CSA textbook adapted from CSAwesome2 for use at Berkeley High School in Berkeley, California. It follow the latest (2025) revision of the AP Computer Science A Course and Exam Description but presents the material in a somewhat different order than CSAwesome2 and does not attempt to mirror the unit and topic structure of the College Board Course and Exam Description. If you want a text whose units and topic numbers line up exactly with those in the College Board outline, you will want to use CSAwesome2.

Register for BHSawesome2

keywords:

Author/Instructor Help

By: Brad Miller, PhD. Professor Emeritus Luther College

Used by 672 students in 3 courses

Description: This book will help you get the most out of the features of Runestone Academy.

Register for instructorguide

keywords:

Used by 577 students in 1 course

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.

Register for overview

keywords:

By: Thomas W. Judson

Used by 85 students in 1 course

Description: This is a book written in PreTeXt, in order to provide testing for a variety of purposes, not least a conversion to Runestone Academy.

Register for PTXSB

keywords:

By: Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller, Oscar Levin

Used by 31 students in 7 courses

Description:

Register for pretextguide

keywords:

COMP 1000: Think Like a Computer

Used by 1,037 students in 88 courses

Description: An extension of the Foundations of Python Programming book to include ethics and interactivity, and with a focus on helping students think about how the computer would execute each line of code.

Register for FOPP-PIE

keywords:

Computer Science

Used by 26,175 students in 1,019 courses

Description:

Register for apcsareview

keywords:

Used by 2,621 students in 28 courses

Description:

Register for engr101umich

keywords:

Used by 368 students in 24 courses

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.

Register for complex

keywords:

Used by 171 students in 28 courses

Description:

Register for technovation

keywords:

By: Dr. Jan Pearce, Editor

Used by 24 students in 6 courses

Description: This work is designed as an introduction to the applied topic of computer security. Students will learn ways of preventing, identifying, understanding, and recovering from attacks against computer systems. This text also presents the evolution of computer security, the main threats, attacks and mechanisms, applied computer operation and security protocols, main data transmission and storage protection methods, cryptography, network systems availability, recovery, and business continuation procedures. Some sections that are related to legal issue are US-centric.

Register for comp-sys-sec

keywords:

Computing for the Arts and Sciences

Used by 384 students in 30 courses

Description: Computings impact on Justice: From Text to the Web

Register for comp-justice

keywords:

By: Mark Guzdial

Used by 364 students in 27 courses

Description: Computing for Creative Expression

Register for comp-expression

keywords:

Data Structures

Used by 31,005 students in 832 courses

Description: The Second Edition. You are better off using the 3rd now.

Register for pythonds

keywords:

Used by 12,972 students in 495 courses

Description:

Register for pythonds3

keywords:

Used by 4,021 students in 262 courses

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.

Register for cppds

keywords:

By: Bradley N. Miller, David L. Ranum, Roman Yasinovskyy, J. David Eisenberg

Used by 1,253 students in 86 courses

Description: A solid introduction to algorithms and data structures. Not overly rigorous to keep it very accessible and practical. This book covers the basics very well plus one advanced topic to augment most chapters if you need them. Designed for a 15 week semester (without advanced topics) as a second course in CS, but very adaptable for other schedules. This is a new book. Please send any feedback to David Eisenberg, david.eisenberg@evc.edu

Register for javads

keywords:

Used by 692 students in 8 courses

Description: A Spanish language translation of pythonds second edition. - We need a Spanish speaking maintainer to help with this title!

Register for pythoned

keywords:

Used by 225 students in 21 courses

Description: The understanding of data structures and algorithms is central to understanding computer science. Presented in C++, this second edition 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.

Register for cppds2

keywords:

Used by 173 students in 17 courses

Description: This is a Bridges Data Structures Textbook @shelf Data Structures Textbooks

Register for bridgesds

keywords:

By: Bradley N. Miller, David L. Ranum, Roman Yasinovskyy

Used by 88 students in 3 courses

Description: A solid introduction to algorithms and data structures. Not overly rigorous to keep it very accessible and practical. This book covers the basics very well plus one advanced topic to augment most chapters if you need them. Designed for a 15 week semester (without advanced topics) as a second course in CS, but very adaptable for other schedules.

Register for pswadsup

keywords:

Database

Used by 1,654 students in 99 courses

Description:

Register for practical_db

keywords:

Used by 900 students in 79 courses

Description:

Register for MasteringDatabases

keywords:

Instructor Guide

Used by 661 students in 1 course

Description:

Register for TeacherCSP

keywords:

Used by 396 students in 1 course

Description:

Register for teach-mobilecsp

keywords:

Internet of Things

By: Dr.M.Krishnaveni, Dr.P.Subashini, Ms.V.Narmadha

Used by 0 students in 1 course

Description: This book is purely for beginners, those who want to create innovative products using hardware and software. Main objective of the book is to promote readers into product developers after completing the book. Outcome of the book is to eradicate the fear of taking up a project, especially among the beginners. This book provides information about the software, hardware and experimental setup with step-by-step guidelines, so that they can complete the product development with the ease. The book contains 20 experiments from simple concepts to advance concepts. Every experiment in this book will be illustrated in an easy and understandable fashion so that all readers can explore the experiments. The book contains experiments from embedded system to IOT applications.

Register for Prototype_Experiments_for_Beginners

keywords:

Intro to Computer Science

Used by 125,158 students in 5,139 courses

Description: Based on the original open source book by Allen B. Downey 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!

Register for thinkcspy

keywords:

Used by 41,214 students in 2,352 courses

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.

Register for fopp

keywords:

Used by 12,054 students in 673 courses

Description: This book is a fork of the CSAwesome with most of the AP CS A references removed

Register for csjava

keywords:

Used by 2,977 students in 211 courses

Description:

Register for thinkcpp

keywords:

Used by 2,348 students in 153 courses

Description: The original open source intro to computer science textbook. Great for students of all ages.

Register for httlacs

keywords:

By: Matthew Hrehirchuk, Eric Chalmers, Charlotte Curtis, Patrick Perri

Used by 1,953 students in 156 courses

Description: An adaptation of Foundations of Python Programming with functions introduced before conditionals and loops. This version de-emphasizes Python-specific syntax to focus on procedural programming fundamentals.

Register for foppff

keywords:

By: Ralph Morelli, Ralph Walde, Beryl Hoffman, David G. Cooper

Used by 1,885 students in 155 courses

Description: Objects first textbook for Java

Register for javajavajava

keywords:

Used by 1,268 students in 74 courses

Description: A CS0 / AP CS Principles level text intended for students new to computer science.

Register for welcomecs2

keywords:

Used by 521 students in 50 courses

Description:

Register for Subgoals

keywords:

By: Barbara Ericson, Allen B. Downey

Used by 5 students in 1 course

Description: Based on the original open source book by Allen Downey, Think C++: How to Think Like a Computer Scientist. This book is an introduction to computer science using C++.

Register for thinkcpp2

keywords:

Intro to Data Science

By: Brad Miller

Used by 5,219 students in 358 courses

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.

Register for httlads

keywords:

Used by 719 students in 85 courses

Description:

Register for ac1

keywords:

Intro to Data Science, Intro to Computer Science

Used by 31,538 students in 1,335 courses

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

Register for py4e-int

keywords:

Language Transition

Used by 4,407 students in 226 courses

Description:

Register for java4python

keywords:

Used by 3,838 students in 151 courses

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.

Register for cpp4python

keywords:

Used by 1,222 students in 55 courses

Description:

Register for JS4Python

keywords:

Used by 147 students in 12 courses

Description: This is the PreTeXt alpha version of a short ebook that 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.

Register for cpp4py-v2

keywords:

By: Brad Miller and Jan Pearce

Used by 13 students in 4 courses

Description:

Register for java4py2

keywords:

Mathematics

By: Oscar Levin

Used by 1,883 students in 147 courses

Description: The 4th edition of Levin's Discrete Mathematics: an Open Introduction, released in August 2024. The new edition includes a better arrangement of topics, many more exercises, and much more interactivity. There are sections on relations, probability, and a stronger emphasis on discrete structures.

Register for dmoi-4

keywords:

By: Matthew Boelkins

Used by 1,473 students in 128 courses

Description: Active Calculus Single Variable supports an active learning approach in the first two semesters of calculus. Every section of Active Calculus Single Variable offers engaging activities for students to complete before and during class; additional exercises that challenge students to connect and assimilate core concepts; interactive WeBWorK exercises; opportunities for students to develop conceptual understanding and improve their skills at communicating mathematical idea. The text is free and open-source, available in HTML, PDF, and print formats. Ancillary materials for instructors are also available.

Register for ac-single

keywords:

By: Oscar Levin

Used by 1,236 students in 126 courses

Description: 3rd Edition. A free, open source textbook appropriate for a first or second year undergraduate course for math and computer science majors. The book is especially well-suited for courses that incorporate inquiry-based learning. Since Spring 2013, the book has been used as the primary textbook or a supplemental resource at more than 200 colleges and universities around the world. The text is endorsed by the American Institute of Mathematics' Open Textbook Initiative and is well reviewed on the Open Textbook Library.

Register for dmoi

keywords:

By: Robert A. Beezer

Used by 830 students in 118 courses

Description:

Register for fcla

keywords:

By: Gregory Hartman, Ph.D.

Used by 348 students in 35 courses

Description: A traditional calculus textbook with many exercises and few proofs, covering calculus from limits to vector calculus.

Register for APEX

keywords:

By: Jennifer Firkins Nordstrom

Used by 311 students in 25 courses

Description: This text provides the basics for a one semester Discrete Math course which emphasizes mathematical reasoning and an introduction to proof writing. Each section includes activities to help the students master the definitions and techniques.

Register for DiscreteMathText

keywords:

By: Steve Schlicker, Mitchel T. Keller, Nicholas Long

Used by 243 students in 37 courses

Description: Active Calculus - Multivariable supports an active learning approach to a course involving multivariable and vector calculus. Every section of Active Calculus - Multivariable offers preview activities designed around preparing users for new topics; multiple activities in each section that can be used either in- or out-of-classtime; interactive WeBWorK exercises; other exercises and tasks that foster students' practice of skills and deeper investigation of conceptual material; opportunities for students to refine their effective communication of geometric and algebraic perspectives. This text is free and open-source, available in HTML, PDF, and print (Chapters 911 only) formats. Ancillary materials for instructors are also available.

Register for acmulti

keywords:

By: Thomas W. Judson

Used by 175 students in 26 courses

Description: Abstract Algebra: Theory and Applications is an open-source textbook that is designed to teach the principles and theory of abstract algebra to college juniors and seniors in a rigorous manner. Its strengths include a wide range of exercises, both computational and theoretical, plus many non-trivial applications. The first half of the book presents group theory, through the Sylow theorems, with enough material for a semester-long course. The second half is suitable for a second semester and presents rings, integral domains, Boolean algebras, vector spaces, and fields, concluding with Galois Theory. There is extensive complementary material and exercises using the open source mathematical system, Sage.

Register for AATA

keywords:

By: David Austin

Used by 136 students in 18 courses

Description: A open-access textbook to support a two-course sequence in linear algebra that does not require calculus as a prerequisite. The text includes many activities designed to facilitate an active learning environment, embedded Sage cells to develop computational proficiency, and numerous realistic applications.

Register for ula

keywords:

By: Faculty

Used by 132 students in 37 courses

Description: Introductory and Intermediate Algebra

Register for orcca

keywords:

By: David Austin

Used by 111 students in 12 courses

Description: A open-access textbook to support a two-course sequence in linear algebra that does not require calculus as a prerequisite. The text includes many activities designed to facilitate an active learning environment, embedded Sage cells to develop computational proficiency, and numerous realistic applications.

Register for ula-proteus

keywords:

By: Katherine Yoshiwara

Used by 107 students in 32 courses

Description:

Register for int-algebra

keywords:

By: sean-fitzpatrick

Used by 85 students in 13 courses

Description: A linear algebra textbook using Python and interactive Runestone exercises

Register for linearpython

keywords:

Used by 73 students in 4 courses

Description: This interactive online text is intended to be used to learn the introductory concepts of ordinary differential equations. The book is designed for students who have completed single-variable calculus and is suitable for a one semester course in differential equations. The book is written in a straightforward, readable style and has a large number of worked examples and exercises.

Register for debookrs

keywords:

By: Gregory Hartman, Ph.D.

Used by 70 students in 13 courses

Description: A traditional calculus textbook with many exercises and few proofs, covering calculus from limits to vector calculus.

Register for APEXPROTEUS

keywords:

By: Al Doerr, Ken Levasseur

Used by 48 students in 8 courses

Description: A two semester discrete math text.

Register for ads

keywords:

By: Mike May, S.J., Anneke Bart

Used by 45 students in 13 courses

Description:

Register for ExcelCalculus

keywords:

By: StevenClontz

Used by 29 students in 1 course

Description: Activities and exercises for easily implementing Team-Based Inquiry Learning in a single-variable calculus classroom.

Register for tbilla

keywords:

By: Jennifer Firkins Nordstrom

Used by 3 students in 2 courses

Description: This text provides an inquiry-based introduction to game theory. The material requires no mathematical prerequisites and is suitable for a non-majors quantitative reasoning course.

Register for introgametheory

keywords:

Misc

Used by 1,330 students in 33 courses

Description:

Register for peerplus

keywords:

Used by 1,267 students in 165 courses

Description:

Register for bluebook

keywords:

By: Dr. Jan Pearce

Used by 110 students in 8 courses

Description: This book is designed for instructors, formal students, and self-learners. It explains what open source software is and teaches the basic skills of open source development incrementally, through real involvement in meaningful projects.

Register for opensource

keywords:

By: Grant Braught, Lori Postner, Darci Burdge, Ruth Lamprecht, Stoney Jackson, Karl R. Wurst

Used by 105 students in 18 courses

Description: A hands-on introduction to Open Source collaboration using a git/gitHub forking workflow.

Register for gitkit2ed

keywords:

Used by 91 students in 22 courses

Description:

Register for CS1-Python-Subgoals

keywords:

By: Sara Nurollahian

Used by 21 students in 2 courses

Description: A simple string (no markup is allowed) to describe your book.

Register for codestructure-implicit

keywords:

By: Sara Nurollahian

Used by 19 students in 3 courses

Description: A simple string (no markup is allowed) to describe your book.

Register for codestructure-explicit

keywords:

Used by 5 students in 1 course

Description: This book is mostly for testing WeBWorK and Runestone

Register for PTXWW

keywords:

Python Experiments

Used by 2,375 students in 34 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test Parsons problems versus writing the equivalent code.

Register for p3pt

keywords:

Used by 586 students in 21 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test Parsons with and without distractors.

Register for class-exp

keywords:

By: barbarer

Used by 499 students in 4 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test Parsons with and without distractors.

Register for class-exp2

keywords:

By: barbarer

Used by 236 students in 5 courses

Description: Duke University version of an interactive ebook for an ITiCSE working group led by Dr. Barbara Ericson, Dr. Janice Pearce, and Dr. Susan Rodger to test Parsons with and without distractors.

Register for dclass-exp

keywords:

By: barbarer

Used by 194 students in 11 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson.

Register for python-swap

keywords:

By: barbarer

Used by 128 students in 8 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson.

Register for uc-python-swap2

keywords:

Used by 81 students in 3 courses

Description: This interactive ebook was created by a ITiCSE working group to test the effects of solving Parsons problems with and without distractors.

Register for c3dnd

keywords:

By: barbarer

Used by 61 students in 1 course

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson.

Register for c-swap

keywords:

By: barbarer

Used by 60 students in 12 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson.

Register for python-swap2

keywords:

Used by 33 students in 10 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test code writing problems with Parsons problems as help versus code writing problems with no additional help.

Register for class-tog

keywords:

Used by 25 students in 6 courses

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.

Register for p3tog

keywords:

By: barbarer

Used by 18 students in 8 courses

Description: This interactive ebook was created by a ITiCSE working group to test the effects of solving Parsons problems with and without distractors.

Register for p3dndta

keywords:

By: barbarer

Used by 15 students in 7 courses

Description: This interactive ebook was created by a ITiCSE working group to test the effects of solving Parsons problems with and without distractors.

Register for p3dnd

keywords:

By: barbarer

Used by 11 students in 4 courses

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test Parsons with and without distractors.

Register for class-ta

keywords:

Used by 10 students in 1 course

Description: This interactive ebook was created by a ITiCSE working group to test the effects of solving Parsons problems with and without distractors.

Register for agent-eval-parsons-problems-pre

keywords:

By: barbarer

Used by 8 students in 1 course

Description: This interactive ebook was created by a ITiCSE working group led by Dr. Barbara Ericson to test Parsons problems versus writing the equivalent code.

Register for p3-dist

keywords:

Used by 7 students in 1 course

Description: This interactive ebook was created by a ITiCSE working group to test the effects of solving Parsons problems with and without distractors.

Register for agent-eval-parsons-problems-post

keywords:

By: barbarer

Used by 6 students in 1 course

Description: Duke version of a study for the ITiCSE working group led by Dr. Barbara Ericson, Dr. Janice Pearce, and Dr. Susan Rodger.

Register for dpython-swap

keywords:

By: barbarer

Used by 5 students in 1 course

Description: Duke version of a study for the ITiCSE working group led by Dr. Barbara Ericson, Dr. Janice Pearce, and Dr. Susan Rodger to test code writing problems with Parsons problems as help versus code writing problems with no additional help.

Register for dclass-tog

keywords:

By: barbarer

Used by 5 students in 1 course

Description: Duke version of a study created by a ITiCSE working group led by Dr. Barbara Ericson, Dr. Janice Pearce, and Dr. Susan Rodger to test Parsons problems versus writing the equivalent code.

Register for dp3pt

keywords:

Web programming

Used by 7,566 students in 584 courses

Description:

Register for webfundamentals

keywords:

introcs

Used by 3,581 students in 13 courses

Description: The original open source intro to computer science textbook. Great for students of all ages.

Register for mines_csstem

keywords:

math

By: Thomas W. Judson

Used by 355 students in 52 courses

Description: This book is for a one-semester course in differential equations.

Register for odeproject

keywords:


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 inaccuracies, typos or leave us suggestions using the Github issues page for each book.