WeBWorK Problems

Best practice and attribution for edited OPL problems in another project

Best practice and attribution for edited OPL problems in another project

by Sean Fitzpatrick -
Number of replies: 2

For a course that I sometimes teach, I wrote linear a algebra textbook in PreTeXt, and I also have a collection of homework sets that I've curated over the last few years from the OPL.

I've started adding these problems to the book, but the majority of them are not compatible with PreTeXt as-is.

Most are older problems written in PG, and since the answer is often a vector or a matrix, they used an answer array format that PreTeXt doesn't like. I've re-written the code for these problems to make them PreTeXt-compatible.

This has meant converting the problems from PG to PGML, and changing the way some of the answers are handled. (In most cases I've replaced answer arrays with answer blanks, since my students do some work in Python, and Python matrix syntax is the same as WeBWorK matrix syntax, so I think it's reasonable to expect students to know how to enter a matrix without separate blanks for each entry.)

Now I am trying to decide how to best make the edited problems available, since anyone wanting to compile my book from PreTeXt source won't be able to do so unless they use my WeBWorK server where those problems are locally stored. I want to ensure that I proceed in a way that is respectful to the WeBWorK project and the original problem authors. I have considered:

- Submitting my edits as suggested upgrades to these problems in the OPL. (But since I changed the way answer entry is handled in some cases, this may be an unwelcome change in behaviour.)

- Writing my own problems from scratch in PreTeXt source that are similar. (This would be a lot of extra work.)

- Including a folder with the edited problems in the GitHub repo for my book, and ensuring that my copyright page indicates that most exercises are based on existing problems in the OPL, with individual author attribution in the problem source.

I think the last option is preferable for me, but I'd like to make sure I do attribution correctly. Suggestions are welcome, if anyone has advice. Thanks!

In reply to Sean Fitzpatrick

Re: Best practice and attribution for edited OPL problems in another project

by Andrew Parker -
I think the best idea is to submit these updates as replacements for the existing problems. In my opinion, the OPL benefits greatly from any work done to update old code to use more modern techniques.

However, in cases where the student interaction is significantly impacted (e.g. replacing individual matrix entries with a single answer-blank), I agree that this would likely be an unwelcome change. This leaves option 3 as the only realistic option in these cases, and depending on the quantity of problems we're talking about here, may swing the balance towards option 3 for the entirety of your body of work.

As far as attribution, I am of the opinion that the right thing to do would be to include a new tag in the metadata:
## Parent("Library/some-path/to/problem.pg")
for any problem that is derived from existing OPL content. This is not official, but I have been implementing this when I do similar work to update existing OPL content. All the attribution from the original problem are still available at the given path, so everything can still be algorithmically be recovered... curious to hear what others think!
In reply to Andrew Parker

Re: Best practice and attribution for edited OPL problems in another project

by Sean Fitzpatrick -
Thanks. Here is an example in HTML.

I've also done some re-formatting of answer entry in many of these so that the problem looks good when "static": either in print, or in HTML before it's activated. (Aesthetically I find it's better if the answer blanks only appear once the question is activated.)

The original is at Library/NAU/setLinearAlgebra/span.pg in the OPL.
In the original, you can see that the answer entry area is quite prominent. In the textbook context, this isn't desirable.
So in my version, you can see that until you "activate" the question, it appears to be a regular textbook-style question.
The answer blanks (and instructions for how to enter the matrix) don't appear until the question is activated.

Since I did most of my editing work on my server, this problem is now in my PreTeXt source as
<webwork source="local/Library/NAU/setLinearAlgebra/span.pg" />,
so the original path is preserved.

It would be easy enough for me to keep the original directory structure for all updated problems, so that it's clear where they came from.
I kept the original metadata intact, except for adding a line indicating that I edited it.