Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modern Matching #843

Open
Alex-Jordan opened this issue Jun 5, 2023 · 6 comments
Open

Modern Matching #843

Alex-Jordan opened this issue Jun 5, 2023 · 6 comments

Comments

@Alex-Jordan
Copy link
Contributor

Thanks to recent work, we now have most of the "classic" multiple choice styles of question covered using some MathObjects parser:

  1. Choose one from a list of short items with no math: DropDown() from parserPopUp.pl
  2. True or False: DropDownTF() from parserPopUp.pl
  3. Choose one from a list of long items or items containing math: RadioButtons() from parserRadioButtons.pl
  4. Choose some subset from a list: CheckboxList from parserCheckboxList.pl

I think that leaves one classic MC type question: matching exercises. One list of M items, and another list of N items, and some way to indicate each item from the first list "goes with" some item from the second list. Not necessarily injective or surjective.

Is there a "modern" (PGML + MathObjects) way to write such exercises? If you are familiar with parserCheckboxList.pl (maybe that is only @drgrice1) can you envision something working out for matching? Markup could be like:

$m = Matching(["fruit", "vegetable"], [["apple", "banana", "cauliflower", "date"]], [0, 0, 1, 0])

That's hard enough to sort out, but then how to lay out the two lists and what mechanism would be used to indicate connections...

@somiaj
Copy link
Contributor

somiaj commented Jun 5, 2023

I just use drop down menus for this, and then manually create a labeled list of choices in the problem for them to choose from. I'll get my problem type for this, and share the randomization I use to randomize both the order of the questions and order of the choices. Could be something that might be wrapped in a macro if you want to automatically generate this. When I get home I'll share a common problem type I use with this and how I randomize it.

@drgrice1
Copy link
Sponsor Member

drgrice1 commented Jun 5, 2023

I added a problem to @pstaabp's #811 that does this one way using parserPopUp.pl. You can see it here. It works. However, it is not really that nice for authoring.

@Alex-Jordan
Copy link
Contributor Author

One reason I would like to have markup for this scenario is that PreTeXt already has a native matching style for exercises, and it would be good to use that. Something that is piecing together several PopUps will probably not work well once rendered in PTX.

@drgrice1
Copy link
Sponsor Member

drgrice1 commented Jun 5, 2023

I can't imagine this working with check boxes in any nice way. Drop down menus are the only nice way that I think this can be done. This is how all of the OPL problems have done this but using PGchoicemacros.pl.

@Alex-Jordan
Copy link
Contributor Author

Dropdown menus would be fine. I just mean that if something with multiple PopUp() calls, it won't come out very nice for PTX output. Basically that means you display the list of "codomain" options once for each "domain" option, and PTX output will be very cluttered. I haven't looked at your example yet.

@drgrice1
Copy link
Sponsor Member

drgrice1 commented Jun 5, 2023

I highly doubt that my example will be what you want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants