Closed bnmnetp closed 5 years ago
Should practice look like any other assignment and should instructors have control over the granularity of the practice problems through the assignment interface?
Keep practice as a separate idea but display it in the gradebook.
The big question is how and when do we calculate the points for the practice stuff?
I recommend we at start with option 2, it will be easier to implement and test before the start of the school year, but would not prevent us from migrating
Let's go with option 2. Here's a list of things that I think need to be done, along with proposed assignments of people to them: 1) In the practice tab, instructor can configure the following (@ImanYZ to implement these additions):
Store all this stuff in new course_practice table.
1a) Implement self-paced mode for creating cards. Add a check when they mark a page as completed; if self-paced mode and no card yet, create it. If they unmark a page as complete, remove the flashcard. This stuff is implemented in controllers/ajax/updatelastpage().
In the metacognition visualization, explain that the pages they've marked as complete, at the bottom of the page, are the ones that are eligible for practice. Also explain under the skip button (only if in self-paced mode): "Pages that you marked as complete are eligible for practice. If you mistakenly marked a page as complete, you can remove it from practice by visiting that page and unmarking it as complete."
2) Don't actually create an assignment row for the practice assignment. Each course has a "virtual" assignment id 0, which will never be used for a real assignment because those ids are auto-assigned, starting with 1. Nothing to implement here.
3) When processing a student answer to a flashcard, compute grade (refactor to refer to same code currently used for showing status on each page), and send via LTI if there is a callback GUID for it. @presnick to implement.
4) Update assignments/index to show same info about practice progress that is shown at the top of each practice page. \views\assignments\index.html and controllers\assignments.py (def index()). Select "progress page" from user menu to test this. @ImanYZ to implement.
5) Update the progress shown at the top of each practice page based on the practice configuration from step 1. @ImanYZ to implement.
6) Fix lti.py to not take an assignment_id with /practice. Instead, default to writing id=0. @presnick to implement.
7) If self-paced, when student marks a page complete, create the flashcard for it. @ImanYZ to implement.
8) Nightly scheduled task to create flash cards for reading assignments that have ended but for which cards haven't been created yet. @bnmnetp to implement.
If the practice setting is not set up yet and a student tries to practice, we should show them a message to encourage them to ask their instructor to set up the practice setting. Also, if they want to practice before the start date, we should show them another message.
I have completed #3 in the comment above. @ImanYZ please get it from my branch practice_feature.
I also changed _get_qualified_questions
in assignments.py
and _get_toc_and_questions
in admin.py
so that it also takes questions with no topic
tag. However, I still believe all questions should have their topic
specified.
I completed this thread.
Todo list for making spaced practice ready for production: