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.
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?