Hierarchical problem sets ideas
I've started to think about representing problem sets hierarchically, instead of with the two-level approach (set/problem) we have now. There'd be a problem_group object that could contain problem s and other problem_group s. A "problem set" would just be a top-level problem group. Problems and subgroups would inherit the properties of their parents. This would give us some nice behavior, with a little work:
- It makes organizing assignments nicer.
- Each group could have some text along with it (perhaps as a particular type of problem? historically these were called "inserts".) that could be displayed above each problem in the group, or at the beginning of the group, or whatever.
- It would make it easier to make multipart problems.
- You'd have more flexible problem selection functionality. You could have an assignment that consisted of a number of problem groups, representing various topics. You could stick a bunch of problems in each group, and set it up to display a subset of the problems in each group for each student.
- You could use it to make weighting problems easier: if you had 17 problems in one group and 8 problems in another group, you'd be able to easily weight each group equally.
Another consequence of this would be to generalize the various ways there are to display one or more problems. For example, one could view an entire problem set as a hierarchy, with or without displaying the actual problems. Or one could focus in on a particular group, or a particular problem. A group could allow any view "style" or restrict the user to just one.
-- Main.SamHathaway - 21 Oct 2004 (but written a long time ago)