Rubrics
Rubrics indicate how points should be awarded when grading a question, and examy provides a #rubric(points: ..)[..] for that purpose. By default, rubrics are shown in the margin and take up no space in the exam. They can be nested in groups, and they can be authored anywhere in an exam and will point back to the specific location where they are authored.
All rubric items in a particular question/part/subpart are grouped together and shown in a single box in the margin. Rubric items set in the rubric: .. option of a question/part/subpart will not have a traceback line. To hide or show the traceback line of a single rubric item, give it trace: false or trace: true; config’s rubric-trace sets this for all of them.
#show: exam.with(show-rubrics: auto, rubric-width: 4.8cm)
#question(points: 1, rubric: [
#rubric(points: 1)[Name]
Make sure it is correctly spelled.
])[
Spell your name.
]
#question(points: 3, rubric: [
#rubric(points: 0)[Not a derivative]
#rubric(points: 0)[Blank]
])[
Compute $f'(x)$ for $f(x) = x^2 e^x$.
#solution[
By the product rule,#rubric(points: 2)[Uses the product rule]
$f'(x) = 2x e^x + x^2 e^x = x e^x (x + 2)$.#rubric(points: 1)[Factors]
]
]#import "@preview/examy:1.1.0": *
#show: exam.with(show-solutions: false, show-rubrics: auto, rubric-width: 4.8cm) // true for the answer key
#question(points: 1, rubric: [
#rubric(points: 1)[Name]
Make sure it is correctly spelled.
])[
Spell your name.
]
#question(points: 3, rubric: [
#rubric(points: 0)[Not a derivative]
#rubric(points: 0)[Blank]
])[
Compute $f'(x)$ for $f(x) = x^2 e^x$.
#solution[
By the product rule,#rubric(points: 2)[Uses the product rule]
$f'(x) = 2x e^x + x^2 e^x = x e^x (x + 2)$.#rubric(points: 1)[Factors]
]
]A rubric item’s points can be positive or negative. No accounting/checking is done by examy, and it is the author’s responsibility to make sure that rubric points add up to the correct total.
Visibility
Rubrics are hidden by default and can be shown by setting show-rubrics on the global config.
show-rubrics: false- (default) Rubrics are hidden.
show-rubrics: true- Rubrics are shown.
show-rubrics: auto- Rubrics are shown whenever solutions are shown.
As with solutions, a command-line setting can be used to override the exam’s settings.
# the answer key, with its rubric, for the graders
typst compile --input show-solutions=true --input show-rubrics=true exam.typGroups
A #rubric[..] that contains other #rubric[..]s creates a group. Its first paragraph is the group’s title and the #rubrics inside are items. Any other non-rubric text will show up as a note.
A rubric’s annotation argument supplies a short note for the grader, useful for instructions like annotation: [pick one] on a group of mutually exclusive rubric items.
#show: exam.with(show-rubrics: auto, rubric-width: 4.8cm)
#question(points: 4, rubric: [
#rubric[*Deductions*
#rubric(points: -1)[Never says "lowest terms"]
#rubric(annotation: [pick one])[Logic
#rubric(points: -2)[Circular]
#rubric(points: -1)[A step not justified]
]
]
])[
Prove that $sqrt(2)$ is irrational.
#solution[
#rubric(annotation: [pick one])[Setup
#rubric(points: 2)[Assumes $sqrt(2) = p/q$ in lowest terms]
#rubric(points: 1)[Assumes $sqrt(2) = p/q$]
]Suppose $sqrt(2) = p/q$ with $p$ and $q$ coprime. Then
$p^2 = 2q^2$, so $p$ and then $q$ are even,#rubric(points: 2)[Both even]
which contradicts their being coprime.
]
]#import "@preview/examy:1.1.0": *
#show: exam.with(show-solutions: false, show-rubrics: auto, rubric-width: 4.8cm) // true for the answer key
#question(points: 4, rubric: [
#rubric[*Deductions*
#rubric(points: -1)[Never says "lowest terms"]
#rubric(annotation: [pick one])[Logic
#rubric(points: -2)[Circular]
#rubric(points: -1)[A step not justified]
]
]
])[
Prove that $sqrt(2)$ is irrational.
#solution[
#rubric(annotation: [pick one])[Setup
#rubric(points: 2)[Assumes $sqrt(2) = p/q$ in lowest terms]
#rubric(points: 1)[Assumes $sqrt(2) = p/q$]
]Suppose $sqrt(2) = p/q$ with $p$ and $q$ coprime. Then
$p^2 = 2q^2$, so $p$ and then $q$ are even,#rubric(points: 2)[Both even]
which contradicts their being coprime.
]
]Customizing the position of rubrics
The rubric-position option sets where each rubric is placed.
"margin-right"- (default) Place the rubric in the right margin.
"margin-left"- Place the rubric in the left margin.
"end"- Place the rubric at the end of the question/part/subpart where the rubric is placed.
When set in the margins, a rubric takes up no additional space. When rubric-position: "end" is set, the rubrics will take up space on the page, so a rubric vs. no-rubric rendering will have different spacings.
#show: exam.with(show-rubrics: auto, rubric-position: "end")
#question(points: 2, rubric: [
#rubric(points: 1)[States the hypotheses]
#rubric(points: 1)[States the conclusion]
])[
State the Mean Value Theorem.
#answer-box(width: 100%, height: 1cm)[#solution[Let $f:[a,b] -> RR$ ...]]
]
#question(points: 1, rubric: rubric(points: 1)[Anything drawn])[
Draw a picture.
]#import "@preview/examy:1.1.0": *
#show: exam.with(show-solutions: false, show-rubrics: auto, rubric-position: "end") // true for the answer key
#question(points: 2, rubric: [
#rubric(points: 1)[States the hypotheses]
#rubric(points: 1)[States the conclusion]
])[
State the Mean Value Theorem.
#answer-box(width: 100%, height: 1cm)[#solution[Let $f:[a,b] -> RR$ ...]]
]
#question(points: 1, rubric: rubric(points: 1)[Anything drawn])[
Draw a picture.
]Listing and exporting rubrics
To display all rubrics in a list, use the #rubric-list() function. It always displays the rubrics, regardless of whether show-rubrics is set.
#show: exam
#question(points: 2, rubric: [
#rubric(points: 1)[Uses $A = pi r^2$]
#rubric(points: 1)[Gets $9 pi$]
])[What is the area of a circle of radius 3?]
#question(points: 3, rubric: [
#rubric(points: 2)[Uses the chain rule]
#rubric(points: 1)[Simplifies]
#rubric(points: -1, annotation: [once only])[Sign error]
])[Differentiate $sin(x^2)$.]
*Grading guide*
#rubric-list()#import "@preview/examy:1.1.0": *
#show: exam
#question(points: 2, rubric: [
#rubric(points: 1)[Uses $A = pi r^2$]
#rubric(points: 1)[Gets $9 pi$]
])[What is the area of a circle of radius 3?]
#question(points: 3, rubric: [
#rubric(points: 2)[Uses the chain rule]
#rubric(points: 1)[Simplifies]
#rubric(points: -1, annotation: [once only])[Sign error]
])[Differentiate $sin(x^2)$.]
*Grading guide*
#rubric-list()Rubrics can also be exported as JSON data, or attached to the exam’s PDF for a grading tool (see Exam metadata).