I’m nearing the end of a semester where, for one class, there was no official text. That’s going decently well, though I’ll likely have more to say about that in another post. What I want to talk about here are some avenues I’ve been exploring to produce supplementary reading material for my students. Often the text I’m using doesn’t quite say enough about something, or I can’t find an online resource that attacks a topic in the way I would like to see, so I try to make my own for my students. I’ve been trying several different approaches for that, and I thought I’d reach out to you to figure out if I’m forgetting any issues, or, even better, a whole new approach.
What I really want
Here are the features that I’m looking for. Please add any others that are important to you in the comments:
- Nice pdfs
- Nice html
- Ease of editing
- Easy hyperlinking/navigation
- For external links
- For internal links
- sections
- equations
- figures
- Equation numbers (that are automatically numbered)
- Ease of building in interactivity
- this can be in the form of links to things like the PhET simulations
- But they can also be easily created by me
Home built LMS
Several years ago, I finally decided that I’d had it with Blackboard. So I wrote down what I wanted/needed for a learning management system, and I built my own, using php/mysql. It includes
- A place for notes for each class day. I call those daily outlines, and I often pull them up in class. Here’s an example. It shows how I can (easily) build in links, and
. It also interfaces with my grade book to show what’s been assigned and what’s due.
- A page to edit for the syllabus, where I can also edit the titles of all the daily outlines
- A grade book that allows for a very flexible set of algorithms (even some invented for a particular class).
- The ability to collect daily summaries and outlines from my students
It does the job, but it really falls down with internal hyperlinking, equation numbering, figures, and interactivity. I used to put a lot of webMathematica into them, but we’ve lost support for that, and it was relatively difficult to make those as well.
LaTeX
I would guess that many people would see my list above and jump to the conclusion that LaTeX is the way to go. I would simply point out that interactivity is out (except for the linking kind), and ease of use is a little down as well. Here’s an example: I can make an equation in Mathematica much faster than I can in LaTeX, even though I’m pretty fast at the latter from all the blogging that I do.
Also, LaTeX->html isn’t a fun experience. There’s latex2html, but it takes a while to run. It produces decent html, but it could use some better styling. Here’s a mini-text I wrote in LaTeX and then exported to html using that tool.
MultiMarkDown
MultiMarkDown provides the ability to write readable text documents that can then be separately converted to tex or html. I like it a lot, especially the styling you can do compared with latex2html, and I’ve been able to get the equation numbering and local hyperlinking to work quite well.
I was really sold on it a few weeks ago, but lately I’ve been realizing how many figures I make in other software (namely Mathematica, see below) that makes a clumsy workflow.
Computational Document Format
Wolfram Research (of Mathematica and Wolfram Alpha fame) created the Computational Document Format a few years ago. Basically, you can use the CDF reader to read documents created in Mathematica. Any interactivity you’ve built into the Mathematica document will still work in CDF, though simple Mathematica calculations that don’t have specific interactive elements will just show up as static calculations.
As I’m sure comes as no surprise, I use Mathematica all the time. I love all the keyboard shortcuts it has, allowing me to very rapidly typeset equations. What CDF does is allows me to author documents in this very powerful (and, yes, expensive) software, but deliver the results freely to anyone who downloads the CDF player.
I had long ago decided to stop using Mathematica to edit documents because it didn’t (as far as I knew) allow you to number equations and put in the type of internal links you could so easily do in LaTeX. I also assumed it couldn’t do bibtex integration (how I do bibliographies in LaTeX), figure captions, footnotes, and more. It turns out, I’ve been wrong (at least since Mathematica 8 came out), and CDF’s can do all of those things, most quite easily.
And, of course, you can put in all the figures and interactivity without worrying about exporting things. It’s all just right there. And, as long as you surround things with “Manipulate” commands, the interactivity will be available for your students.
It also opens up the possibility of changing up my “flipped class” approach. In fact, it would seem to put me in a position to do things similar to the UIUC physics department, that uses online tools for students to explore before coming to class ready to work on problem solving and ask questions. Now I have my students watch me play with most of these tools on videos that I create. I think it would be cool to give them all kinds of things to interact with, right in the text they’re reading, before coming to class.
Where am I now?
Well, you’ve probably been able to tell where I am now (CDF). But I’d love to hear about issues you think I’m either not giving enough attention to, or giving too much attention. As is my custom lately, here are some potential conversation starters:
- PhET is great. Just posts links to that and let them play (as the PhET makers always suggest first).
- Just have them buy a good text. Many are very well done, and have thought through many issues that you’ve only guessed at
- You won’t provide a thorough enough “text” for them this way, so just put in additional links for them to augment their book
- What!? You figured out how to get the equations numbered and hyperlinked in both the tex and html formats in multimarkdown? Share!
- I assume your “wikipedia is my textbook” experiment has failed miserably, since you sidestepped that conversation in the first paragraph. Tell us the truth!









