Last month, we shared strategies for giving students feedback without marking them right or wrong. While that type of feedback can be (relatively) simple for you to create and useful to your students, the lack of correctness can make the teacher dashboard less useful. This month, we’ll share a few ways for you to calculate correctness so that you can replace the sea of dots in your teacher dashboard with checks and X’s.
Many Right Ways, One Wrong Way
Before we begin, we need to address one method that we highly recommend against. Direct string comparisons (for example: this.latex = `y=3x`) require student inputs to match character for character with the answer key you create. Furthermore, the lack of interpretation means that you most likely won’t be able to help students differentiate between an incorrect answer and a correct answer in the wrong form.
For example, lets say you’re marking for correctness in the following way: correct: this.latex = “5”
Here, the only correct answer is exactly “5”.
And while that might make sense in this simplified case, what’s harmful is that all of these answers will be marked identically incorrect:
The question you should ask yourself is whether or not you are comfortable with the marks for two answers like this being indifferentiable.
Many Right Ways, One Strategy
The best methods for determining correctness involve extracting key bits of information from an input and comparing those values to an answer key. For example, if the correct answer is a number (let’s stick with 5). Extract the numericValue of the student’s input and compare it to the correct value:
correct: this.numericValue = 5
But what about when the answer is not so simple? Let’s take a look at a few examples of how you might extract the information. You can follow along in this activity if you want:
If a student enters a function or expression, we can evaluate that function at a few (or several) values.
Coordinate pairs can be parsed and inspected individually.
The slope, y-intercept, x-intercept, and more can be extracted from any two-variable linear equation.
More on simpleFunction, parseEquation, and xyLine here.
Some Quick-Fire Questions
What if nothing above is enough for you to confidently determine correctness? In this case, you probably have some questions. We’ll answer some of the most common ones here.
What if the correct answer is a number that can’t be expressed in a few decimal places?
Use numericValue! This function takes a string and calculates its value for you. For example:
correct: this.numericValue = numericValue(`1/3`) checks that the answer equals one-third.
Do I have to use CL to do my calculations?
Nope! If you have a graph on your screen, you can always send information into the graph and perform your calculations there.
What if the form of their answer matters?
We have an advanced feature called pattern matching that can help with that. Check out our May 2021 Newsletter for more information.
Still Stuck?
Sometimes, despite your best efforts, you’re unable to auto-grade a particular screen. When that happens there are a few things you can do:
Consider leaving the screen ungraded. Many times when a wide variety of responses is expected, its better to know that you should take a look at individual student responses.
Think of different design options. Can you ask the question in a different way or ask a different question? You could even consider changing the input method.
Here to Help
We really want you to have a powerful dashboard experience and understand how tricky that can be to create for yourself. So for the next few weeks, we want to make ourselves available to you. Fill out this form with some details about what you’re having trouble with and someone from the Desmos CL team (Jay or John) will get in touch to help you out!
This past year, we have seen some amazing Desmos creations shared with the mathematics community. We wanted to thank you all for your hard work and the increased excitement for CL. See you all in 2022!