A Generator for Parsons problems on LaTeX exams and quizzes
June 8, 2018 at 2:00 am 5 comments
I just finished teaching my Introduction to Media Computation a few weeks ago to over 200 students. After Barb finished her dissertation on Parsons problems this semester, I decided that I should include Parsons problems on my last quiz, on the final exam study guide, and on the final exam. Parsons problems are a great fit for this assessment task. We know that Parsons problems are a more sensitive measure of learning than code writing problems, they’re just as effective as code writing or code fixing problems for learning (so good for a study guide), and they take less time than code writing or fixing.
Barb’s work used an interactive tool for providing adaptive Parsons problems. I needed to use paper for the quiz and final exam. There have been several Parsons problems paper-based implementation, and Barb guided me in developing mine.
But I realized that there’s a challenge to doing a bunch of Parsons problems like this. Scrambling code is pretty easy, but what happens when you find that you got something wrong? The quiz, study guide, and final exam were all going to iterate several times as we developed them and tested them with the teaching assistants. How do I make sure that I always kept aligned the scrambled code and the right answer?
I decided to build a gadget in LiveCode to do it.
I paste the correctly ordered code into the field on the left. When I press “Scramble,” a random ordering of the code appears (in a Verbatim LaTeX environment) along with the right answers, to be used in the LaTeX exam class. If you want to list a number of points to be associated with each correct line, you can put a number into the field above the solution field. If empty, no points will be explicitly allocated in the exam document.
I’d then paste both of those fields into my LaTeX source document. (I usually also pasted in the original source code in the correct order, so that I could fix the code and re-run the scramble when I inevitably found that I did something wrong.)
The wording of the problem was significant. Barb coached me on the best practice. You allow students to write just the line number, but encourage them to write the whole line because the latter is going to be less cognitive load for them.
Unscramble the code below that halves the frequency of the input sound.
Put the code in the right order on the lines below. You may write the line numbers of the scrambled code in the right order, or you can write the lines themselves (or both). (If you include both, we will grade the code itself if there’s a mismatch.)
The problem as the student sees it looks like this:
The exam class can also automatically generate a version of the exam with answers for used in grading. I didn’t solve any of the really hard problems in my script, like how do I deal with lines that could be put in any order. When I found that problem, I just edited the answer fields to list the acceptable options.
I am making the LiveCode source available here: http://bit.ly/scrambled-latex-src
LiveCode generates executables very easily. I have generated Windows, MacOS, and Linux executables and put them in a (20 Mb, all three versions) zip here: http://bit.ly/scrambled-latex
I used this generator probably 10-20 times in the last few weeks of the semester. I have been reflecting on this experience as an example of end-user programming. I’ll talk about that in the next blog post.
Entry filed under: Uncategorized. Tags: assessment, computing education, curriculum, Parsons Problems.
1.
Cody Henrichsen | June 8, 2018 at 11:29 am
This is FANTASTIC – thank you both!!
2.
Reflections of a CS Professor and an End-User Programmer | Computing Education Research Blog | June 11, 2018 at 2:00 am
[…] my last blog post, I talked about the Parsons problems generator that I used to put scrambled code problems on my quiz, study guide, and final exam. I’ve been […]
3.
How do we test the cultural assumptions of our assessments? | Computing Education Research Blog | March 16, 2020 at 1:57 pm
[…] and Parsons problems on my assessments. I use my Parson problem generator a lot (see link here). For example, on this one, students had to arrange the scrambled parts of an HTML file in order to […]
4.
Proposal #1 to Change CS Education to Reduce Inequity: Teach computer science to advantage the students with less computing background | Computing Education Research Blog | July 20, 2020 at 7:00 am
[…] been doing paper-based (and Canvas-based) Parsons for exams and quizzes for several years now (see post here). Parsons problems work great in lower-level classes. There is relatively little research on using […]
5.
Ellen Spertus | August 3, 2020 at 8:22 pm
The contrast on the last two images is very poor. Any chance you could improve that (or at least make sure contrast is better on future posts)? Thanks.