19

I have been using the exercise.sty package for a while now, mostly to build exercise lists for my students. After a few months from when I started, the code became very complicated. Today, it is a living nightmare.

But first, let me explain what I am using it for:

I am building Math, Precalculus and Calculus exercise lists and tests for my students. They range from Second Degree Equations, Integration Techniques, Volumes by Disks, you name it. That said, each type of class I teach demands a separate material "filtered" so that it best fits the class: level of dificulty, topic, number of questions on the exercise list and so on.

The problem is: I have close to 500 exercises and I'm not sure where to start. I would like to start the right way, so that I don't fall into a hole (like I am today).

My questions:

  • How can I type these exercises, the most efficient way possible, so that I can easily build these pdfs filled with the exercises that correspond to the given topic? Should I write these 500 exercises in a single .tex file?
  • Is there a package that allows two different types of solution for the same question? Let me explain this one: sometimes I just want to show the final solution, and sometimes the complete (worked-out) solution.
  • Some of my students are native from US so is there a way to, for the same exercise, create two (or more) different descriptions and answers (one in Portuguese and one in English)?
  • Lest's say at one point I reach 10,000 exercises. Can I use a single .tex file with all of them to build, for example, an exercise list with 40 "quadratic equations" exercises? In other words: use the "filters" or "labels" from these packages to make this filtering process?

I understand that these packages' capabilities are HUGE so I would love if someone could shine a light in a very efficient approach.

Thank you.

PS.: If I wasn't very clear on my explanations please let me know.

bru1987
  • 903
  • 3
    With 500+ exercises I think you need a serious workflow that goes beyond TeX. Probably each exercise in a separate file, with tags and a search mechanism to find the ones you want, and glue them together. Maybe even a database solution (might be possible with TeX). I think you should ask the two kinds of answers question separately from this one, with an MWE. – Ethan Bolker Sep 27 '16 at 17:31
  • There are ways to combine different versions. For example, the macro \figurename defaults to "Figure", but can be reset (by Bable) to the appropriate word in the chosen language. – John Kormylo Sep 28 '16 at 04:41
  • @EthanBolker I've tried a few options always with one exercise per .tex file, and that's one of the reasons the whole thing turned into a nightmare. I am wondering if I am missing something: one of these packages may have a feature that, when used properly, makes the process work like a charm – bru1987 Sep 28 '16 at 14:28
  • 4
    Don't know how well it would work with that many entries, but you could try using datatooltk to store the questions, although with 10,000 exercises as @EthanBolker mentioned, you'd be better off using a database solution (which can be integrated with TeX using datatooltk in batch mode). – Nicola Talbot Sep 29 '16 at 08:14
  • @NicolaTalbot I understand that you are the developer of datatoolkt is that correct? If so, can I attribute two answers for the same question (for example, when I only want to show the solution, or when I want to show the complete explanation of the solution)? – bru1987 Sep 29 '16 at 12:22
  • 1
  • is opinion based question you can write all exercises in a single .tex you can make file by exercise or file by topic. for 2) and 3) the answer is yes 4) whatever choice you make (single file or multiple) yes you can do what you're asking.
  • – touhami Sep 29 '16 at 17:29
  • Maybe I'm being naïve, but why don't you just use a directory hierarchy. problems, problems/algebra, problems/algebra/beginners, problems/algebra/cuttingedge, problems/analysis, problems/analysis/complex/intermediate etc. There really isn't a need for a database unless you want to combine questions in different ways such that there are no natural joints. But here the divisions are just that natural ones. [If you cover several topics in a course, you might prefer to have level be the higher directory level and topic the lower one. Otherwise, it probably makes no odds.] – cfr Sep 30 '16 at 01:21
  • Maybe the @EASE package? The short description: @EASE stands for AcroTeX Exam Assembly System Environment. @EASE allows educators to assemble a database of questions. With the @EASE control panel, the educator opens appropriate database files (PDF-files), selects questions of interest to builds an exam, which is a LaTeX source file, consisting of the questions selected. @EASE requires Acrobat Pro 7.0 or later to execute some JavaScript not available in Adobe Reader. Disclaimer: I've not used it. – Ross Sep 30 '16 at 08:25
  • 1
    @bru1987 Yes, that's right. You could just define a boolean, e.g. \newif\ifcomplete and then just have \ifcomplete extra stuff\fi within the answer. Alternatively, with the database approach have an extra field for the complete answer (depends how different the complete answer is from the abridged answer). – Nicola Talbot Sep 30 '16 at 10:38
  • @cfr I understand your approach, that's what I've been currently using, but please trust me that this turns into a nightmare in a really short time! – bru1987 Sep 30 '16 at 10:55
  • @NicolaTalbot I see. The second option you mentioned seems like it will work perfectly. Thank you for your input, I appreciate that. I may have found what I've been looking for. – bru1987 Sep 30 '16 at 11:06
  • 1
    You might look at webwork. That system allows you to use their exercises (1000s of them) and add your own. It gives latex output, or html output, and uses a sophisticated language (Perl) so that you can give online tests using your problems. You can also easily share your problems with other instructors who use webwork. – Benjamin McKay Oct 03 '16 at 08:53