An introduction to the Ximera system.

Introduction

Ximera (pronounced [kɑɪmɪɹə]) is an open-source software project that seeks to help course instructors create learning materials. The materials take the form of interactive web pages and high quality PDF documents. While these formats are very different, with Ximera an author is able to separate content from deployment, and write the source for both types of materials simultaneously.

Philosophy

Since Ximera is built on LATEX source, we want to use LATEX as a method of validating the code authors write. Hence, if you want to write a Ximera online activity, the first step is compiling LATEX documents.

Once you have compiled the LATEX documents, and you have checked them for typos, accuracy, etc, the fact that they compile should be reasonable evidence that they will display correctly in Ximera.

Basic workflow

An author writes content as a LATEX document. This produces a PDF handout that can be distributed to students. Next the author uploads the same LATEX file to github.com, a free web-based service providing a number of features to developers and authors. In turn github.com delivers the file to the Ximera interpreter, which posts the file on the web. The web page has essentially the same content as the handout. However, the web page typically has interactive features not possible in the handout due to the physical limitations of paper. For example, the web page might pose a question that if answered incorrectly, would offer hints or further questions to the student. This process is illustrated in the figure below.

Trying it out

At this point you need to make a decision, do you want to try out Ximera on CoCalc (a cloud-based solution) or do you want to install on your own machine? If you just want to try this out with as little investment as possible, CoCalc may be the way to go. The downside is that if you become serious about developing in Ximera, you will probably want to use your own machine.

Examples of Ximera courses

Perhaps the best way to learn is by looking at examples. We recommend looking at mooculus and the associated GitHub repository mooculus/calculus.