RunestoneComponents icon indicating copy to clipboard operation
RunestoneComponents copied to clipboard

New directive to allow students to toggle between Parsons and active code versions of a question to help scaffold learning

Open vqum opened this issue 5 years ago • 3 comments

Discussion in process with Bradley Miller, Barbara Ericson, Vincent Qiu

vqum avatar Sep 25 '20 20:09 vqum

Current approach is to build additional functionality on top of .. selectquestion::, using a flag of :toggle: to allow the student to switch among any of the questions included in the :fromid: question list. This requires that the instructor provide separately written Parsons and active code versions of problems for the use case described in the issue title, but it enables flexibility of allowing switching among any question type not only limited to Parsons and active code.

vqum avatar Feb 17 '21 16:02 vqum

@bnmnetp Barb has noticed that some students upon seeing a toggle problem are immediately using the dropdown list to switch to the easier version of the problem. We were thinking about adding a setting that would prevent access to the dropdown list until the student has made a few attempts on the initially presented problem, similar to how Parsons' :adaptive: "Help Me" button does not provide assistance until the student has made 3 attempts.

I see that Parsons problems use a variable numDistinct to track how many attempts have been made https://github.com/RunestoneInteractive/RunestoneComponents/blob/3d7c5e99fc24b449af131116333e75a98c6e9bf1/runestone/parsons/js/parsons.js#L1993-L2009 Do active code problems have any built-in tracking? It didn't seem like there was to me.

Might there be a way to create a variable on the toggle problem itself that can detect and track attempts on the internal questions? I assume that changing the programming of Parsons or active code is not a good way to go about this.

vqum avatar Aug 10 '21 19:08 vqum

@vqum activecode problems track every run through the use of the history scrubber. The attributes this.history and this.timestamps are Javascript arrays containing each (unique) run and timestamp of that run. I think you can simply look at the length of one of those arrays to get an idea of how many attempts a student has made. Note if the student just presses the run button repeatedly without changing any code there will only be one element in the array.

bnmnetp avatar Aug 10 '21 22:08 bnmnetp