Mid-Summer Update
The July 4th holiday is just three days away, which for many of us in the academy marks the midpoint of the summer. To say that we have made some big strides in Runestone so far this summer is an understatement, and they are all coming to https://runestone.academy before the holiday. So, put on your seatbelts and get ready for the ride.
New Stuff for Instructors and Students
There are several big changes to Runestone that should make life better for instructors this summer.
Dynamic Pages – wait, what? I thought Runestone pages were already far from static. You’re right, but you know that course building and rebuilding process you had to go through to create a course? Its gone! We now have a single copy of the most up-to-date version of each textbook that we can serve dynamically for you and your own bespoke course. You won’t really notice anything except that creating a course is now instantaneous, and the URL to your book is now going to be
/runestone/books/published/yourbook
instead of the old/runestone/static
URL.In page progress indicators Reading assignments are awesome, but they do have some potential pitfalls. Such as students doing work in the wrong course, or not understanding what they need to do on each page. So at the bottom of each page we have added a progress bar to show how many of the interactive activities on each page the student has tried.
One scratch activecode per book – One thing I learned last year in working more closely with instructors and having more time to listen to students is that most students were confused by the scratch activecode. In the past we had a different scratch activecode for each page for each student. This was confusing as students use these scratch activecode’s a lot, but were often confused about how to find something they were trying on a page somewhere that they could not recall. Now their entire history of all interactions will be available and scrollable through the history slider. Making history searchable is on the todo list somewhere…
Navigation menu within the chapter – another request that I’ve heard from many of you is to improve the navigation in the book. There are many different opinions on what is “best” in this area, but the one I like the best, and the one that keeps the book pages the most uncluttered, is to have a “This Chapter” menu in the navbar. This lets you quickly move to any page in your current chapter. If you want to change to a different chapter then you can click on the course name and that will bring you to the table of contents for the whole book. So, closer is one click away, and anything outside the current chapter is two clicks away. That makes sense to me. But I would love to hear feedback on this. Nothing is set in stone.
Inside Baseball
Unit testing means better reliability and more agile development. We have invested a lot of time this summer in getting a good unit testing framework set up for the Runestone server. I’ve spent some portion of each day writing one or more unit tests. For the functionality required to serve books and collect data reliably we now have excellent test coverage. Not as good for some of the instructor supporting pages, but we are working on it, and they get a lot less traffic than the book pages. I’ve also done a lot of load testing on this new architecture and it seems that it should hold up quite well.
New dynamic architecture for more dynamic features in the future. In addition, the new dynamic architecture changes how we check that login/logout is handled. This should help with making sure that students are always in the course they should be in, rather than some random course they found with a Google search.
http://interactivepython.org is gone. Well its not really gone, it has a permanent redirect to https://runestone.academy. None of the old classes on interactivepython.org made the move. Registrations have been disabled for a year. This move has been coming for two years, so hopefully it doesn’t surprise anyone.
Both RunestoneComponents and RunestoneServer are running Python3. We had to keep Python2.7 a lot longer than I would have liked due to the web2py framework, but happily web2py now fully supports Python 3.7. I look forward to simplifying and dropping support for 2.7 once all this new stuff is live on academy.
Caveats
That is a LOT of change! And, I plan to deploy all of these new features over the next week. Even with all of the testing we have done there is bound to be something we have missed that will break something. Please be patient, and please report it on our GitHub page!
If you have an existing course, in progress, on Runestone Academy that course should continue to work just fine. You will not be able to rebuild it as that functionality is gone.
Newly created courses will use the new dynamic pages feature. This means you don’t need to rebuild, you will automatically get updates that fix typos or squash bugs.
I’m introducing these changes during our summer “downtime” although I fully realize that our summer downtime is now busier than our peak traffic the first couple of years! This means that by the time classes start for people in the Northern Hemisphere in late august – the majority of our users – things should be in good shape.