The LaTeX of Interactive Publishing

July 5, 2012 at 2:18 am 3 comments

I love the goal of Runestone Interactive! Last weekend, I saw a cardboard astrolabe, built into a book, using threads to link the pieces. This book was created in the 1500’s, and was part of an exhibit on Renaissance Astronomy.

Today, we can make even more powerful interactive books. But how do we do it? How can we make it easier, more accessible, more scalable than cutting out cardboard and weaving together pieces via threads? How can we manage growth and complexity, to go beyond pamphlet-level tools to book-level tools?

The goal of runestone interactive is to provide the tools, content, and hosting for high quality, interactive computer science textbooks. Everything is available under an open source license. There are really two main branches of the Runestone interactive project:

1. To provide tools for building interactive textbooks. Our ultimate vision is to become ‘The LaTeX of interactive publishing.’ To this end we have built a platform based on Sphinx, comprised of several extensions for building interactive books.

2. To provide hosting for interactive textbooks. We have three books that we host on this site for free, without registration or login required. We can also host a custom book for your course. If you are an instructor and looking to host your own course here is what you get:

  • You can choose which modules you want to include.
  • Your students get login-based access to their book so they can save their work, turn in homework right from the book, and take notes in the scratch edtitor popups.
  • You get access to the grading interface

Runestone interactive is a project of Luther College.

via Runestone Interactive.

Entry filed under: Uncategorized. Tags: , , .

Yup, That’s What CS Textbooks Are Like Education is already Gamified: Dan Hickey on Badges

3 Comments Add your own

  • 1. Jack Toole  |  July 5, 2012 at 3:26 pm

    Hi Mark,

    I’m really excited about the possibilities of interactive textbooks! For most of the courses I took in college, I found the textbooks irrelevant – they were generally another one-way presentation of the material, except unlike lecture they weren’t always very relevant to the course. (Of course, there are some wonderful textbooks, but most my courses assigned were mediocre.) Most of my friends would use the powerpoint slides as study material instead. However, slides were meant to be used as part of lecture rather than comprehensive reading material. I think an engaging, interactive textbook could enhance this out-of-class individual learning tremendously.

    To this extent, I’ve been working on an interactive textbook for UIUC’s CS2/Data Structures course, which I’m using as the textbook this summer. While it’s not nearly finished, I would love it if you took a look at it! It’s available at .

    • 2. Mark Guzdial  |  July 9, 2012 at 5:07 am

      Hi Jack,

      Really interesting! Your visualizations look similar to the kinds of things that people like John Stasko and Juha Sorva have used in the past. They have reported some difficulties for the bottom half of the class in mapping the code to the visualizations. Have you encountered those difficulties? How are you addressing them?


      • 3. Jack Toole  |  July 10, 2012 at 7:50 pm

        Thanks for checking it out!

        I think UUhistle looks amazing, and would definitely use it if I was teaching python. C++ is a pain in this area due to its complexity, compilation, and lack of reflection. We do use iList ( ) when we talk about linked lists, and I like how it links code and visualizations. (Unfortunately there are only 7 exercises and it seems rather inactive lately. I’m trying to make these kinds of interactive exercises for all parts of the course :).)

        I haven’t done any formal studies on how much students are gaining from it, but I have accumulated a large amount of feedback (so that they do the assignments, they are required to write short reflections on what they thought was helpful or a hindrance to their understanding). More code integration has been one of the most requested improvements, so it definitely seems possible that some students are having difficulty mapping the visualizations to code. If a particular part seems to be confusing students, I spend some time talking about it (and writing some code) in lecture. Our data structures course shifts its emphasis during the semester from programming to data structures and algorithms (with implementations), and students are expected to come up with more of the implementations on their own as the semester progresses. (We have programming labs and homework each week to emphasize the implementation part.)

        I haven’t had time to continue implementation since the summer semester began, but a commonly-suggested idea I intend to implement is printing out the code statements that various gestures translate to. So if you set a pointer to NULL, it prints out “p = NULL;”, or if you link around a node in a linked list, it prints “curr->next = curr->next->next;” etc. Some iList-esque visualizations would also be useful and might be able to use the same implementation system in reverse (code->manipulations instead of manipulations->code).

        (I already have several “rearrange the code to implement what you just did” exercises, and while these are fun and students seem to enjoy them, I’m not sure how well this translates to being able to write code.)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers


Recent Posts

Blog Stats

  • 2,060,405 hits
July 2012

CS Teaching Tips

%d bloggers like this: