Updated: March 23, 2019

What is Runestone Interactive?

Runestone is a project that has four main parts to it:

Runestone Parts

  1. A Textbook hosting service that allows you and your students to access any of the textbooks written using our tools.

  2. A set of open source textbooks written using the tools that you are free to use and modify in your own classes.

  3. A set of tools for writing interactive textbooks in restructuredText and other markup languages.

  4. A open source server/API that supports the interactive textbooks

    • Save and reload source code written in the book

    • Retrieve results and answers from quizzes

    • Create “Reading Assignments” with analytics that automatically give your students points for doing the readings and getting prepared for class.

    • Grade homework problems right in the textbook

    • Create Assignments by grouping exercises

  5. Well, it has become a small LMS. It is an opinionated LMS in that it mostly does things the way I would want them. Its not the main focus of Runestone though, and changing LMS functionality takes time away from making Runestone a better pedagogical tool.

The Runestone project was originally conceived as only parts 2, and 4. But it became clear very quickly that few people want to write their own textbooks, so part 3 was born, especially with the encouragement of our publisher at Franklin Beedle who allowed us to put our paper textbook online in interactive form. Part 4 was conceived when it became clear that even fewer people wanted to manage their own server.

Currently number 4 is being used by over 50,000 registered students, in over 1000 universities, colleges, and high schools. This number is growing rapidly!

Why Can’t I access the Instructor Page?

How do I become an instructor?

  • I seem to have a student account, how can I get/create an instructor account?

  • I created an instructor account but…

First lets clear up a couple of misconcptions. There is no way for me to know, just by your email address that you are an instructor. You could be anyone. So, there is no such thing as an instructor account.

You become an instructor by creating a course. This gives you the privileges associated with being an instructor but ONLY for that course and any other course(s) you create. You are not an instructor for any of the open courses or anyone else’s course. There is a really nice video to help you get started in the Instructors Guide Please check it out as it will answer many other questions and help you make the most of Runestone.

How do I learn more about the instructor interface

I have made a very informal set of videos for just this purpose.

We also have a nice new Instructor Guide

Help! I cannot log in. Every time I try to log in, I have to reset my password!

In 99.99% of the cases, this is because you are confusing your email address with the username you were forced to enter when you register. So, go through the password reset process and get yourself logged in again. Then look in the upper right hand corner of the page and pull down the user menu (the one that looks like a person.) Your username will be displayed at the top of that menu. We use username instead of email address to protect the privacy of our users.

I’m not getting the password reset email, can you reset my password?

Technically, I can. But I won’t. Runestone handles over 100 password resets a day automatically. It can handle yours as well. There are two things you should check.

  1. Check your SPAM folder for the password reset email. and/or add runestone to your contacts list to avoid that in the future.

  2. Talk to your IT folks and make sure they are not blocking Runestone. We’re a small group, but we did everything right with our email setup to make the military academies happy, so I think your folks ought to be happy too. However some schools disallow any external email that is not whit-elisted. Please ask them to white-list runestoneinteractive@gmail.com as well as info@runestone.academy

  3. If you are a student, talk to your instructor. Your instructor can reset your password in the case where the email system is failing us.

I can’t log in to my Coursera course, what do I do?

Sorry, but we do not have control over Coursera and especially the courses from UMSI. Those courses are designed for you to access through Canvas. If that is not working please contact your coursera instructor.

How do I add students to my course?

See this post for a detailed description: Privacy and Runestone You invite them, either in class or with an email. Tell them to register at runestone.academy and then give them the name of the course you created. During the registration process they type in the name you used, and they are registered. I usually just do this the first day of class to make sure everyone gets registered and then give them a little tour of the book and all of the things they can do.

In the future, we may look into importing a class from some LMS system like Moodle and others.

What do those green checkmarks and orange circles mean?

A green checkmark for a page means that you have completed that page, either you have satisfied yourself that you are done OR you have attempted all of the interactive activities on that page. It does NOT mean you got everything correct. Clicking the button bottom of the page WILL NOT give you full credit on a reading assignment, you still need to do the work.

Historically this was ONLY for your own personal benefit to help you keep track of the things you had read and the things you were currently reading. It has evolved and with that evolution comes some confusion. Hopefully this clears it up.

How come there is no Green Checkmark for the Exercises pages?

Some exercises pages have over 300 problems. Do you really think we expect you to do ALL of them? We expect your instructor to use some discretion when assigning you homework. You will not find green checkmarks for Exercises or for table of contents pages.

Sorry if that freaks you out, but that is just how we do it.

Where do I find answers to all the homework questions?

In my years of teaching computer science I was always learning something new and trying to stay ahead of the students. I understand that for many of you this might be a first time teaching a CS course, and that for many you are overworked and underpaid. I hear you, and I feel your pain.

But just as I tell my students, you can’t really learn this stuff just by reading the answer, you have to do it.

We have many books on Runestone Academy written by many authors. Whether or not authors provide an instructor guide or answers to all the questions is up to them. So there is no blanket answer to the question.

For myself there are several reasons:

  1. Writing an instructor guide that contains all of the answers to the questions essentially doubles the work of writing a book, and even more so maintaining the book. In all the textbooks I’ve used over the years for CS I’ve only ever had one that had a solution guide and that was largely for all of the math in a networking text.

  2. For 99% of the questions there is no one right answer. Very likely if I give you an answer there is a better one out there, and I really don’t want to get into arguments about what is better. Especially since a lot of it comes down to style.

  3. Doing the work is the best way to prepare to teach it. You are smarter, wiser, and a better problem solver than your students. Its actually good for them to see how you approach solving the problem rather consulting some answer key.

  4. From a practical perspective it would be very hard for me to decide who gets the materials. How do I know you are an instructor? I can’t possibly take the time to go check out every user that claims to be an instructor to see if they are legit. Right now the only benefit of being an instructor is that you get to see and grade the work of your students. If you are a student pretending to be an instructor this gives you no advantage.

  5. As I think about how best to invest the hours of my day that I have to work on this, I have very little energy or excitement for writing an answer key. So I choose to spend my time elsewhere. If others were to do so, and want to publish it somehow, I would be very happy to accept a PR!

  6. I wold much rather put my energy into developing good unit tests, so that you know when you are right and when you are not there yet without me giving you solution.

  7. With all of that, behind me, I’m still thinking about it, and trying to find a way to do it where its NOT a huge amount of extra work, and I can keep things in sync. I’ve thought about charging for the instructor guide as one way to both disuade casual cheaters and to help fund Runestone development. Stay tuned…

Can I build my own course and host it here?

Yes, we are currently hosting many courses for many different institutions around the world. In fact in 2013 one large institution had 800 students using one of the books.

The best approach is to use our system to build your own textbook. This gives you several advantages as an instructor including:

  • a simple grading interface for homework problems at the end of each chapter

  • some simple reports on your students activities within the textbook.

  • at a glance information about the multiple choice and fill in the blank questions embedded in the text.

How do I build my own course?

Steps to Build

  1. First you should register yourself as a user on this site. When you register you must pick a course. Just use thinkcspy or pythonds, it doesn’t matter as that will change when you build your own.

  2. Then go to the instructors page.

  3. On this page you will see the links for listing and grading assignments and lots of other things. Right now those won’t show you anything, so move along to the Create a Custom Course link.

  4. Fill in the Project Name. This should be a short one word description of your course like luther150a. When your students register for the course this is the name they will have to type in to join your particular course. No Spaces allwed in this name.

  5. The description can say a bit more about the course.

  6. Choose one of the ready-made books for your course.

  7. Its probably just fine to leave this at today’s date. If you set it into the future and then do some experimenting with assignments and quizzes today you won’t be able to see your results because you are only shown things that come after the start date.

Is this site reliable enough to use in class?

Yes. We host this on a very reliable service and we monitor our traffic constantly. We use a content distribution network for increased scalability and reliability. In the Fall of 2020 we serve over 50,000 students a day with no downtime. Runestone is also used for a couple of courses on coursera which have hundreds of thousands of students, and by many large Universities.

Why did you change domain names?

The old domain name, “interactivepython.org” was becoming quite inacurate. Although we started with Python we have a lot of users that are using the AP CS Review book (Java) and my Java for Python programmers book. There is also at least one statistics textbook written in runestone as well. I saw the domain name “runestone.academy” and thought that would be cool.

I want to reuse my course from last year, what should I do?

You should create a new course and then from the instructor page in the new course copy the assignments from your old course. The assignment dates will be adjusted based on the class start date.


The instructor interface allows you to copy all your assignments from a past course into your current course, so re-using an old assignment is pretty simple. It even re-calculates a due date for your based on the delta between your old term start date and when you had the assignment due that term.

How do I update my course to get the latest bug fixes?

Nothing. Bug fixes are automatically deployed weekly.

I was just experimenting and I want to delete my course

Once you are done experimenting please delete your course from the instructors interface. If this does not happen I may have to invent a way to go back and remove courses that were clearly created as an experiment but never really used by students.

What if I want to add a new section or chapter?

That would be awesome. This whole book is open source. You can grab a copy of the source on github. The source for thinkcspy and pythonds is in the source folder and there is a subfolder for each chapter. If you want to make a whole new chapter then create a folder and follow the conventions of one of the other chapters. There is full documentation for the markup language at docs.runestoneinteractive.org. When you are finished make a pull request and we’ll review your material and incorporate them into the book.

What if I want to add my own exercises?

You can add your own custom exercises by editing the assignments.rst file. This file is meant for the descriptive or question text for a programming exercise. Adding an exercise to this file does not automatically add it to the grading interface for your course, you still need to do that from the instructors interface. See this blog post for more information.

New exercises are always welcome and we would love to expand the number of exercises. The simplest way is to go to the github issues page and file a new issue. In the description simply include the text for the exercise and which chapter you think it should go in. We’ll take it from there. After we’ve added the exercise you can rebuild your book and it will be there.

My students are completing work but it is not showing up. Help!

There are many answers to this, as the question itself is very vague. Where is it not showing up? What is not showing up? The first thing to say is that Runestone goes to great lengths to save everything! It is extremely rare for an action to go unrecorded. With that said here are things to check.

  1. Make sure your students are logged in to YOUR course and not the open course that you based yours on. If your student is logged in to your course they will see the name of your course in the upper left corner of the browser window.

  2. Make sure they are paying attention to the progress bar. If the progress bar is gray they are not logged in! If it is green they are. The progress bar will show how many of their activities have been recorded for that page.

  3. Check the assignment page and click on the self grade button. This is yet another way that students can verify their work has been saved.

  4. For students work to show up in the gradebook you will need to use the grading interface to run the autograder which tabulates the scores for the assignment and saves them in the database. You also need to release the grades in order for the students to see them on the student progress page. If you haven’t released them then they will not see their progress.

  5. Make sure your assignment deadlines are set up correctly or that you have unchecked the box to only count activities before the deadline.

  6. From the student progress page you can click on the name of any student and see the raw log details. You can also click on the overview reports link from that page and download a CSV file that you can import into your favorite spreadsheet. This will show you counts of activities for each student, the timestamp of the first time a student interacts with anything in runestone and more.

How do I change courses or register for an additional course?

Under the 👤 menu you will find the Change Course option. click on that and then at the bottom of the page click on the Enroll in a Course button. From there you can just enter the new course in the Course Name field.

What course name should I use when I register?

If you are enrolled in a course at a high school, college or university your instructor should give you the name. If they didn’t you need to ask them. If you are learning on your own, The registration page gives you the full list as does our library page. But here are the legal, open, courses that anyone can sign up for. Since you are here you didn’t see that so here is the list:

  • apcsareview

  • cpp4python

  • cppds

  • csawesome

  • fopp

  • httlads

  • java4python

  • JS4Python

  • learnwebgl2

  • overview

  • pythonds

  • pythoned

  • StudentCSP

  • TeacherCSP

  • thinkcspy

  • webfundamentals

What version of Python does your book use?

Ok, this is a question that has the potential to start nasty religious wars. The technical answer is that this book uses a version of Python called Skulpt. It is entirely written in Javascript so that it runs right in the browser. We think this is very cool. Now some people get all crazy about whether they should teach Python 3 or Python 2. The truth is that for CS1 and CS2 it really does not matter. Skulpt can do print with or without parenthesis, and / can do true division or integer division and lets face it for CS1 that is really all that matters. Sure, there are differences, but are you really going to start out by teaching your students about dict_keys and how they are different from a list. If so, I think you are cruel and you should teach your students APL. If you want to slant your teaching toward Python 3, you can do that with this book. If you want to lean towards 2, you can do that too. When you build your course there is a configuration parameter that lets you choose Python3, this forces you to use parenthesis when you print, and it makes python / default to true division, and // to integer division.

I think there is a bug in your book what should I do?

Please let us know! You can file bug reports on our github issues page. Thanks! If you don’t have a github account then you can tweet me at iRunestone or visit our google.groups discussion

I have a question that is not covered here!


  1. Tweet me @iRunestone

  2. Post the question on our google group

  3. Send me a private email. runestoneinteractive@gmail.com

My Internet is slow, I want to use Runestone offline

This might require a little extra learning on your part but here is what you need to do. If you can’t get this to work on your own ask your teacher for some help.

  1. Install Python

  2. Use pip to install runestone (pip install runestone)

  3. Download or use git to clone the repository for your book from https://github.com/RunestoneInteractive

  4. Edit the pavement.py file for your book and set dynamic_pages = False and useRunestoneServices=False

  5. In the folder created for your book run runestone build –all

6. Run the command runestone serve and then in your browser go to http://localhost:8000 This will let you access your book from a webserver running on your own computer, It will save your work locally, as long as you use the same browser.  But it will NOT share or sync any information with Runestone.academy

Why can’t I just get a PDF?

Because what we are focused on is building great interactive textbooks, pdfs are not interactive. Sorry, there are not enough hours in the day to do everything.