Brief overview of DynamicProblem
DynamicProblem is a system which allows instructors and researchers to embed dynamically improving experiments on problem components (like explanations students receive after completing a problem) in their online course content in a Learning Management System (LMS) like Canvas or MOOC courseware such as edX. A paper describing DynamicProblem in detail was published at CHI 2018:
Williams, J. J., Rafferty, A., Tingley, D., Ang, A., Lasecki, W. S., & Kim, J. (2018). Enhancing Online Problems Through Instructor-Centered Tools for Randomized Experiments. In CHI 2018, 36th Annual ACM Conference on Human Factors in Computing Systems. [PDF] [Related Poster] [Video]
Example of DynamicProblem embedded in Canvas (Instructor view)
DynamicProblem is built on previous work developing the MOOClet specification for experimental infrastructure. See this page on MOOClets for more details about the framework.
How Instructors can use DynamicProblem
Currently DynamicProblem is officially supported on the Canvas Learning Management System (canvas.instructure.com). A guide for instructors wishing to install and use the tool can be found at https://sites.google.com/site/quiptool/home. This uses a shared instance of DynamicProblem that anyone can use. However, the code is open source, so users are free to create their own instances of DynamicProblem (see below on using and modifying the code, which is open source).
While DynamicProblem is not officially supported on other platforms, the system is usable in almost every LMS which supports LTI, with proven integrations with Moodle and edX, which have been used in courses enrolling students. Official support for these platforms will be rolling out in the near future. For information about using DynamicProblem in a given platform, contact the author.
How to use or modify DynamicProblem open source code
The Open Source repository for this code can be found at https://github.com/kunanit/adaptive-mooclet-lti, with documentation for setting up and using the application available in the readme.