Proposed Lesson 3.X Improvements
Overview: The lesson module is a very powerful but complex module. The goal of this proposal is to simplify the module without sacrificing flexibility or functionality. A current analysis of the open issues for the lesson module show that the can be grouped into 3 categories:
- Feature requests to add support for features currently provided by core APIs but are not currently implemented in lesson
- Bug fixes for current lesson functionality provided by non-standard APIs
- New features and improvements
What this proposal is trying to fix: The lesson module is considered an advanced module due to the numerous settings that control its behaviors. One major goal of revamping the lesson module should be to make it simpler to use for teachers. This should be done without removing functionality, but making it easier / more intuitive to set up. This can be accomplished a few different ways.
- By removing redundant settings from the module
- By moving some functionality to independent moodle plugins
- By converting different parts of the lesson module to use standard moodle APIs
Proposed changes: Phase I: (Simplify the lesson codebase / reduce the number of options when creating a new lesson)
In order to simplify the user interface, several unnecessary settings can be removed from the lesson module:
- “Maximum number of answers” - This setting is only used to limit the number of answers on multiple choice and matching authoring pages. Most other modules in moodle allow the activity author to add as many answers as needed while creating the activity. (MDL-52874)
- “Password” - There are two settings required to enable a password in a lesson activity. One setting to enable the password, another to actually set the password. Other activities in Moodle that use a password only require a single field (MDL-53143)
In order to simplify the lesson codebase and reduce a significant amount of duplicate code, several lesson features should be converted to separate moodle plugins.
- “Media File / File pop-up” - The lesson module has a feature that allows a teacher to post a single file in a fake block displayed within that specific lesson activity. It makes sense to create a generic block to allow teacher to post any number of files anywhere in moodle and then convert the “media file” feature in lesson to use this block. This should eliminate the confusion about the media popup in lesson. (MDL-29437, MDL-30333)
- Lesson Menu - The lesson module has a couple of configuration settings to determine when a navigation menu should be displayed to the student. There is also a feature request to make this block moveable which would require an additional setting on the lesson configuration screen. It makes sense to create a separate lesson navigation block and remove the left menu settings from the lesson module. Lessons would be converted to use this block instead. (MDL-31920, MDL-22752)
Phase II: (Implement a lesson overview page) Once the lesson codebase has been cleaned up, A few changes can be made to improve the way a lesson is presented to the student. The biggest proposed change is to add a lesson overview page at the start of each lesson activity. (this is similar to how the quiz module works.) This overview page would display the following information:
- Lesson Description (if set)
- Lesson available from date (if set)
- Lesson available until date (if set)
- Time limit (if set)
- Grading method for lesson (no grade, maximum points)
- Whether retakes are allowed.
- How retakes are scored
(It would also display a start lesson / resume lesson button depending on the current state of the students attempt)
The lesson overview page would only be displayed to users who have the lesson:view capability (MDL-14448) and the start lesson button would only be available to users with the lesson:attempt capability (MDL-20087). These improvements should also resolve issues MDL-51735 and MDL-49480.
Once these tasks have been completed it should be easy to improve the reporting for the lesson module. Specifically MDL-19948 allowing students to review their answers choices in lesson. This could be provided as a link on the lesson overview page for users who have completed the lesson and have the lesson:viewmyattempt capability.
Phase III: (Implement partial question bank support) Allowing the Lesson module to fully utilize the questions API (MDL-18954) will resolve a significant number of lesson bugs and feature requests (MDL-34927, MDL-47548, MDL-50256, MDL-43111, MDL-39874, MDL-39261, MDL-39655, MDL-45798, etc)
The moodle lesson activity currently has functionality to import questions stored in Moodle XML format. There currently isn’t a mechanism however to export a lesson into Moodle XML format. The improvement proposed here is to create a utility that will convert / export all existing lesson pages into standard moodle question types to make them available in the moodle question bank. It should be possible to map the existing lesson page types to the following Moodle question types:
- Lesson Essay -> Essay
- Lesson Matching -> Matching
- Lesson T/F -> True / False
- Lesson Multichoice -> Multichoice
- Lesson Content page -> Description
- Lesson Numerical -> Numeric
- Lesson Short Answer -> Short answer (Note: the core short answer question type may need to be extended to support the regular expression option available in it’s lesson counterpart)
- Cluster / subcluster -> Random question (Not Exported)
Phase IV: (Full Question bank support) Implement a new editing page for lesson allowing teachers to choose questions from the question bank and allow teachers to specify page / question sequencing. All existing lessons would be converted to use the question bank in place of lesson's custom page types.
Currently lessons are made up of pages that contain a single question or piece of content. How the user answers these questions dictate which page the user will navigate to next. Rather than displaying a single question per page, This proposal seeks to instead have a lesson constructed of pages and each page constructed of one or more questions. The current approach for lesson sequencing would be changed as follows:
- Each page would allow path selection based on a grade percentage or range (0%, 50%, 100%, etc)
- Each page would allow path selection based on one or more manual links (For non-auto graded pages like description or essay)
- Pages that contain a single question would allow path selection based on the user answer. (Note, this would only be available to specific question types specifically multiple choice, true/false, numeric, and short answer. Each question type would have to announce support for this functionality. This would allow existing lessons to continue working as-is.)