diff --git a/src/components/BlogMarkdownLayout.tsx b/src/components/BlogMarkdownLayout.tsx index 0880ab4..5620dba 100644 --- a/src/components/BlogMarkdownLayout.tsx +++ b/src/components/BlogMarkdownLayout.tsx @@ -85,24 +85,41 @@ export const BlogImage = ({ src, alt = "Blog Image", full = false, + bordered = false, + fillHeight = false, caption, }: { src: string; alt?: string; full?: boolean; + bordered?: boolean; + fillHeight?: boolean; caption?: string | React.ReactNode; }) => { const [showFullscreen, setShowFullscreen] = useState(false); return ( <> -
-
+
+
{alt} setShowFullscreen(true)} diff --git a/src/pages/about/blog/introducing-ai-grading/graded-results.png b/src/pages/about/blog/introducing-ai-grading/graded-results.png new file mode 100644 index 0000000..019f72c Binary files /dev/null and b/src/pages/about/blog/introducing-ai-grading/graded-results.png differ diff --git a/src/pages/about/blog/introducing-ai-grading/image-submission.png b/src/pages/about/blog/introducing-ai-grading/image-submission.png new file mode 100644 index 0000000..88e2c2f Binary files /dev/null and b/src/pages/about/blog/introducing-ai-grading/image-submission.png differ diff --git a/src/pages/about/blog/introducing-ai-grading/index.mdx b/src/pages/about/blog/introducing-ai-grading/index.mdx new file mode 100644 index 0000000..75d830d --- /dev/null +++ b/src/pages/about/blog/introducing-ai-grading/index.mdx @@ -0,0 +1,285 @@ +import { + BlogMarkdownLayout, + BlogImage, + BlogCalloutBox, +} from "../../../../components/BlogMarkdownLayout"; + +import textSubmission from "./text-submission.png"; +import imageSubmission from "./image-submission.png"; +import modelPicker from "./model-picker.png"; +import gradedResults from "./graded-results.png"; +import submissionAndGrading from "./submission-and-grading.png"; +import submissionExplanation from "./submission-explanation.png"; + +export const meta = { + title: "Introducing AI grading", + date: "2026-05-15", + author: "Miguel Aenlle", + tags: ["RELEASE"], +}; + +
+
Use AI to grade hundreds of open ended
+
+ submissions in + minutes + , not + hours + . +
+
+ +AI grading evaluates open-ended submissions, typed or handwritten, and scores them against your rubric in seconds. Grading hundreds of submissions now takes a single click, and it's available to all PrairieLearn instructors today. + +AI grading is opt-in and transparent. AI grading decisions come with detailed explanations and are clearly distinguished from human grades. Course staff remain the final decision-makers on student grading. + + +
Want to try it now?
+ +1. Redeem your free credit under **Instance settings → AI grading**. +2. Head to your assessment question's manual grading page. +3. Click **AI grading mode**. + +For full setup instructions, see the [AI grading documentation](https://docs.prairielearn.com/aiGrading/). + +
+### How it works + +
+
+

1. Collect submissions

+
+ Open-ended text or images from your students — handwritten work fully + supported. +
+
+
+ +
+
+ +
+
+
+
+

2. Run AI grading

+
+ Select the model that fits your assessment best. +
+ +
+
+

3. Come back in a few minutes

+
+ Submissions are graded, with detailed reasoning attached to every + decision. +
+ +
+
+ +### Proven accuracy, backed by peer-reviewed research + +We validated AI grading on thousands of real student submissions across multiple STEM courses at the University of Illinois Urbana-Champaign, where the system has been piloted since Fall 2025. + +Across a range of open-ended questions and frontier models, rubric-item accuracy exceeded 99% when paired with clear student work and a well-aligned rubric. Instructors and TAs reported that AI grading was as accurate as human graders for their needs and saved enormous amounts of grading effort. + +Read our published research on image grading and text grading. + +### Pick the right model for your assessment + +AI grading lets you choose the model that fits your submissions, budget, and timeline. + +
+
+
+
GPT 5.4-mini
+
+ Good default for most assessments. The most affordable option. +
+
+
+
+
+
GPT 5.4
+
+ Best for text submissions where careful reasoning matters most. +
+
+
+
+
+
Gemini 3.1 Pro
+
+ Best for handwriting and image-heavy submissions. +
+
+
+
+ +#### Speed and costs of each model + +Real numbers from two PrairieLearn courses, measured end-to-end from clicking **Grade all submissions** to completion. + +
+
+ **Numerical methods question:** 140 typed paragraph submissions +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
ModelTotal timeTotal cost
GPT 5.4-mini20 seconds{"$0.30"}
GPT 5.430 seconds{"$0.80"}
Gemini 3.1 Pro80 seconds{"$1.80"}
+
+
+ +
+
+ **Intro dynamics question:** 240 image submissions of handwriting +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
ModelTotal timeTotal cost
GPT 5.4-mini1 minute{"$1.00"}
GPT 5.42 minutes{"$3.80"}
Gemini 3.1 Pro6 minutes{"$11.80"}
+
+
+ +### Direction and interpretability at every step + +Every grade comes with a detailed explanation of the model's reasoning and its transcription of image submissions — so you can audit decisions, spot edge cases, and trust the results. AI grading works best as a fast first pass, with human review reserved for the cases that need it. Instructor-assigned grades always take precedence. + +To adjust grading behavior, update the rubric instructions — the model follows them. + + + + + +### Payment options + +Two ways to pay, depending on your preference. + +
+
+
+
PrairieLearn-managed
+
+ Purchase credits with a credit card. PrairieLearn handles all + interaction with AI providers. +
+
+
+
+
+
Bring your own keys
+
+ Use your own AI provider API keys, and costs are billed directly to you. +
+
+
+
+ +### Get started + +To grade your first assignment with AI: + +1. Create a manually graded question with a rubric. +2. Fund your account under **Instance settings → AI Grading → Purchase credits**. +3. Open your assessment's **Manual grading** page. +4. Choose **AI grading → Grade all submissions**, and pick a model. + + +More detailed information can be found in the [AI grading documentation](https://docs.prairielearn.com/aiGrading/). If you have questions, let us know on [Slack](/slack). + + + +export default ({ children }) => ( + {children} +); diff --git a/src/pages/about/blog/introducing-ai-grading/model-picker.png b/src/pages/about/blog/introducing-ai-grading/model-picker.png new file mode 100644 index 0000000..ad3e8e0 Binary files /dev/null and b/src/pages/about/blog/introducing-ai-grading/model-picker.png differ diff --git a/src/pages/about/blog/introducing-ai-grading/submission-and-grading.png b/src/pages/about/blog/introducing-ai-grading/submission-and-grading.png new file mode 100644 index 0000000..8f73c7a Binary files /dev/null and b/src/pages/about/blog/introducing-ai-grading/submission-and-grading.png differ diff --git a/src/pages/about/blog/introducing-ai-grading/submission-explanation.png b/src/pages/about/blog/introducing-ai-grading/submission-explanation.png new file mode 100644 index 0000000..2ce6112 Binary files /dev/null and b/src/pages/about/blog/introducing-ai-grading/submission-explanation.png differ diff --git a/src/pages/about/blog/introducing-ai-grading/text-submission.png b/src/pages/about/blog/introducing-ai-grading/text-submission.png new file mode 100644 index 0000000..3f7a40d Binary files /dev/null and b/src/pages/about/blog/introducing-ai-grading/text-submission.png differ