Course Quality
SCOUT Omega
Course QA Pipeline
I built an automated first pass that prepares each course for human QA review.
EdPlus at ASU
- Python
- Canvas API
- Airtable
- Railway
Measured
44 criteria
15 settled by rules alone, 28 rules first with AI only for what rules cannot settle, 1 AI-only (grammar). Yes/No verdict rules cover 43; the last goes to the reviewer.
Measured
100 courses, 50 min
Runtime of the automated first pass on a full production cohort, before any human review.
Measured
56.4 min
Mean assisted human review per course (median 49.2) across 42 reviews timed in Airtable. An upper bound.
The Friction
One instructional designer's full manual QA audit, which I observed, took 6 to 8 hours for a single course. ID assistants run a narrower review at about 1.8 hours per course, so 100 courses still take about 180 reviewer hours. Reviewers were spending their expertise on checks a machine could make.
What I Did First
I shadowed a QA initiate end to end before writing any code, then interviewed the reviewer about the full process. The goal was to find which checks were mechanical and which needed judgment, because only the first kind should be automated.
What I Built
A prototype that completes a QA initiate form from an .imscc package in 3 to 5 minutes, using Python and Google Gemini. It grew into a batch pipeline that grades courses against WCAG 2.1 AA and ASU design standards, with adaptive rate limiting that keeps requests inside the Canvas API quota.
What Came of It
The internal demo led to my leading the technical side of the QA workstream under the AI taskforce. Reviewers now start from a prefilled report and spend their time on judgment calls.
Scope and Limits
Still a 100-course pilot. The manual review step is estimated at about 1.8 hours per course from ID assistants' own reported pace, so the comparison with 56.4 minutes is not a controlled one. The pipeline surfaces issues and leaves the fixing to a person.
More systems, and the learning experiences behind them.
or write directly to brent.michael670@gmail.com