The Ximera Project: Turning LaTeX into Interactive Websites

I’m backtracking a little bit to describe a really cool project I got to work on over this summer. Jim Fowler and Bart Snapp at Ohio State have been developing a way to easily translate LaTeX documents into interactive websites, called Ximera. Since all the students at my school get tablets, which we use pretty heavily in class, I thought this might be an easy way to start designing some of my own online materials. When I saw that they were offering funding for a summer workshop, I signed right up.

Screen Shot 2016-08-31 at 8.12.11 PM

Ximera is the backbone of OSU’s Calculus courses, which they also run as an online-only course on Coursera. Ximera is how they deploy content to students, and how the students do their homework. It produces handouts, and even all the content as a (non-interactive, obviously) textbook if anyone should want one. It collects a ton of data on how students interact with the work. And it’s all free and open source.

There’s a lot that I liked immediately about this project. First is the price tag: I’ve used plenty of proprietary online homework systems out of necessity, but I’ve also known plenty of students for whom the price tag for an access code is a genuine financial hardship. In the old days, a low-income student could always get an older edition of a text and just copy down the homework questions from a classmate with the current book. There’s no equivalent anymore. And when their access expires, so does their book. This could solve both problems.

I also like how easy it is to write my own questions and accompanying exposition. I’ve written online quizzes in lots of different learning management systems, and a little in WeBWorK, and it always feels far more painful than I think it should be. With Ximera, it’s all just a LaTeX document using new premade environments, like \begin{problem} or \begin{multipleChoice}. It’s easy to set the tolerance on numerical answers and give hints. And it natively uses Desmos to produce interactive inline graphs with the command \graph{y=x^2}.

The project does have a few more kinks to work out before it will be doing everything I’d like. It doesn’t do free response questions that well yet, or questions that have non-numeric or -algebraic answers. I’m still not entirely clear how the gradebook or data collection works, but that’s because I haven’t played around with that end yet. And the biggest hurdle for many potential users is the workflow: documents need to be typeset in LaTeX, then added and committed to GitHub, then published. It’s not terrible once you get the hang of it, but I know terminal commands can be a big barrier to entry for some.

I expected I’d be mostly doing curriculum development during my time at the workshop, though I’d indicated in my application that I also had some coding experience. I ended up spending most of my time on developing the backend, making LaTeX, javascript, HTML, CSS, and various sites’ APIs all talk to one another. Which I was woefully unqualified to do, but that’s never stopped me before. I implemented a new command to make content appear in its own scrollable frame within a site, and also added to the Desmos integration. It was great to get to flex some muscles I haven’t used in a long time, even though the work was slow going.

One of my goals for the fall semester is to work on updating the documentation repository for the project. We wrote some new commands and came up with a bunch of tips and tricks this summer, and I don’t want them to all get lost to history. I’d also like to work on the free response question environment, and add a question environment that can parse text answers correctly, but those are beyond what I’m capable of doing solo. Luckily there seem to be enough of us from the summer still interested in working further on the project that I think progress will be made.

I feel like Ximera is really close to being something that could both make my teaching better and my life easier. How often do you get to do both of those at once?





This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

5 Responses to The Ximera Project: Turning LaTeX into Interactive Websites

  1. Avatar Willie Wong says:

    Is it intentional that in this entire blog post that no link is made to the actual Ximera software (e.g. the Git Repo For general audiences, I think the biggest thing missing from the project is a easily accessible guide/overview document showing how to get started with Ximera and showing off some of its features. Currently the docs for the authoring tools tell me how I can install it, and how I can compile documents. But it says nothing about how to deploy the actual content on a website. It would be great if there is a short guide on setting up some kind of “Hello World” document. I think if there is a way to get people past the initial hurdle of setting up the software and using it to build a single webpage, then most mathematicians (being familiar with LaTeX) will have no problem picking it up and doing things with it.

    • Avatar smalec says:

      Not intentional at all, so thanks for providing the link. I agree that the documentation is lacking, which is why I really want to work on that repo this fall. When I get that fixed up, I’ll probably post again.

      • Avatar Paolo says:

        I agree with Willie Wong. It would be great if there was some guide on deploying the content on a website. I think that that is the biggest hurdle, but I hope I can understand something more and start using Ximera. Thanks for this extremely interesting blog post!

  2. Avatar Robert Jacobson says:

    I saw Ximera demoed at the JMM in January and was impressed with the technology. The idea is that users are able to leverage the corpus of latex content that already exists without much effort. Have a ton of quizzes and exams you’ve developed and debugged over the years? Only a smaller amount of effort transforms them into your own version of an online homework system.

    For me personally, the system seeks to solve a problem I don’t have. And philosophically, I really want to see instructors minimizing their role in content creation. Do you really need to spend an hour writing another assignment that has been written a million times before by other instructors? Well, you shouldn’t in my view. Adapt content someone else has created and debugged, perhaps someone who really has a talent for assignment creation, and use the time and energy you save for what you really do best. I’m certainly not arguing against Ximera’s usefulness or saying that it has no place, because I certainly don’t believe that. I only mean to say that Ximera isn’t quite righ for what I personally do with my own teaching.

    • Avatar smalec says:

      I agree entirely in principle, but in practice I can never leave well enough alone and always have to do things my own way – even when I’m just looking at my own assignments from a previous semester. Part of the eventual goal of the project is to have a bunch of open-source Ximera courses published so that anyone can use and adapt them, so perhaps once more content has been developed you’ll find what you’re looking for.

Comments are closed.