edit: Thanks for all your answers so far.
I have decided to develop my own solution, both because it is fun and I can then form it exactly as I want to. Once I am done (which might take some time, because I first have to learn some Python for it^^), I might share it on github if it turns out well enough (will edit here with a link, but don't expect anything for at least a few months).
As mentioned in the answers and comments, people might find this question through google and your answers might help them, so I will not accept one answer now but instead leave everyone the chance to add other tools they know about.

Original question:

I was just recently thinking about how to best organize exercises to later reuse them. Sometimes you have a nice idea or see something nice (online/in a book), but you are not teaching a fitting class at that moment. Or maybe you just want to reuse some exercises (maybe with altered numbers) when teaching the same course again a few years later.
I am especially thinking about the case where there is no textbook containing exercises, but instead the instructor has to come up with questions themselves (themself?^^).
Yes, of course you can simply write them down somewhere, but wouldn't it be nice to have a database where you simply search for "Gauss algorithm" to get all exercises for that, or where you filter by "Analysis, week 5" tag to show you all exercises you had on this worksheet the last few times you read this course?

I was thinking of maybe coding up my own solution for the problem, but before investing time into that I just wanted to check if someone here knows of a good (free/open source) tool for that; if possible also with LaTeX support.


WebWork maintains an Open Problem Library. It is not necessarily "easy" to construct your own problems on WebWork, but the system is constructed with purposes like these in mind. In particular, if you have set up a WebWork server, you can maintain a local problem database, with a file structure, course structure, tags, difficulty levels, and so on. In general, WebWork is used to make online homework feasible, and also to make it possible to randomly generate the numbers used in each problem so that each student has slightly different calculations, but it could also be used for the purpose you're describing here.

The languages in which problems are written is PG and PGML, and tutorials/examples are located on the WebWork wiki, currently located here and here.


I think you may be able to accomplish the same ends, easier/better by using old tech methods. I suggest to have a personal library that includes a few different versions of texts. Often perusing/parsing them, you can get ideas better than a search retrieve on a database. In addition, you get a feel for how much texts are different from each other or how much they copy each other. This is useful for understanding the terrain of past work. It can be very illuminating to see how much problems repeat, are carried forward, etc. (and this is not "wrong" per se, but good to know). It can also be useful to see the few problems that really differ in some way. (Especially for stronger students, contest math, etc.)

If you have problems you generate yourself or that you find in books, you don't own, I suggest to just make paper copies (of what is of specific interest/use) and then keep those in file folders.

Yes, of course, there are disadvantages of paper--most things are not 100% better. For instance, with paper, it's harder to cross reference (using several tags for a problem). Instead you have to have a file heirarchy. Still, I suspect the effort to fit things into a single heirarchy also has a benefit, in making you think. For that matter, I have a pretty damned good memory, so can generally find anything, even if the interest at the time is from a secondary attribute, not the main one. Also, of course, it's not as convenient for printing. (That said, you can type it when you need to and save a lot of typing never needed.)

I'm sure some Internet person (especially the kind that are more computer centric and thus hang out at places like "stack exchange") will say "lack of space", but that's really a false economy unless you're in a prison cell. Like a really small prison cell. It is extremely easy to get bookcases and to organize files into record boxes or file cabinets. Honestly, this is a false economy if you think about value of your time, etc. Paper is cheap, bookcases are cheap. Time is valuable.

P.s. Before you slam the asnwer with the dislikes, realize that there is more than one way to skin a cat and it's good for someone in the future, thinking about this problem to have competing ideas.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.