Skip to content

Structure of a OPL problem

Peter Staab edited this page Feb 11, 2021 · 3 revisions

Thoughts about a next gen OPL

This document will start to organize how we want a next generation of the OPL to look like. In short, the OPL will still just be a large set of pg problems, however if organized better, it will be easier to sift through problems we want.

There are a few aspects to this:

  1. The tagging/metadata structure to each individual problems. The current metadata structure as well as future tags are listed below.
  2. Other desired data structures, including a collection for Homework Sets
  3. A OPL manager interface.

Current Tags/Metadata for Problems

  • Database subject tags
    • DBsubject
    • DBchapter
    • DBsection
  • Date
  • Authorship tags
    • Author
    • Institution
  • Problem tags
    • MLT : More like this
    • Level : difficult
    • Keywords
    • MO
  • Textbook tags
    • title
    • author
    • publish
    • pubdate
    • edition
    • chapter
    • problem number

New tags/metadata for Problems

  • old directory tag (this will let people find old problems)
  • status: (accepted, pending, needs revision, deprecated)
  • can problem be solved by Wolfram Alpha?
  • pedagogical features (scaffolding, free response, multiple choice, randomizable?, number of random problems, ...)
  • what resources for the student (calculator, CAS)?
  • what external dependencies (SAGE, R, ...)
  • what other resources (non-standard macros, images, ...)
  • Problem Quality
    • quality of problem rating (1-5 stars)
    • difficult rating

Tags/Metadata for a Collection/Set/Sequence

This is for collections (Problem sets, Homework Sets, Gateway Quizzes, ...) as a new data structure that is available to everyone.

  • other information in it
  • does set depend on previous set?
  • other resources

Questions about the tag structure

  • Which tags are mandatory?
  • Which tags are optional?
  • Which tags are unique?

OPL manager interface

This would be a web service and front end to manage the library on a global scale. The web service would handle some automatic integration of problems into the library. The front end would be an interface to help manage the library

Front End

This could be a place to manage the library

  • Search for problems
  • Edit tags/metadata
  • Allow crowd sourcing of voting for problems.
  • An interface to evaluate problems
    • report bad problems
    • report bad coding
    • report bad subject/chapter/section tagging

web service

  • The ability to more easily integrate problems written on local server into the OPL

    • Automatic program integration (perhaps inside a future webwork)
  • Some code analyzing (which variables are used/not used, ...) -- AST (abstract ... .. ) stacker perl code tree structure

Future webwork library features

  • better search capabilities
  • ability to fetch/download entire courses/problem sets from a library.