MATLAB Course Activity Generator
SkillFiles & storageCreate MATLAB Course Designer MATLAB Exercise learning activities by wrapping the existing matlab-generate-grader-assessments skill, then validating generated solution.m, template.m, and tests.m files with MATLAB MCP Server tool calls. Use when the user asks to create a MATLAB Exercise, MATLAB course activity, Course Designer MATLAB activity, validated MATLAB solution file, or MATLAB Exercise component folder.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the MATLAB Course Activity Generator skill
What this skill tells your AI
The instructions your AI receives, as published by matlab/agent-skills-playground in demos/course-generation/skills/matlab-create-course-activity/SKILL.md and read by ahel’s review.
Create MATLAB Course Designer-ready MATLAB Exercise learning activities. This skill is
a wrapper around the existing matlab-generate-grader-assessments skill: use matlab-generate-grader-assessments first to create the
shared MATLAB Grader-style component parts, then use MATLAB MCP Server tool
calls to validate the generated MATLAB files and add Course Designer authoring
metadata.
Input
The user may have provided a module objective or activity idea in their request. If it is missing or too vague, collect missing activity inputs in Step 1.
Reference Files
Read these references from the references/ directory as needed:
references/grader-wrapper-workflow.md— how to call and usematlab-generate-grader-assessmentsreferences/matlab-validation-rules.md— MATLAB MCP validation workflowreferences/course-designer-artifacts.md— output folder and metadata rules
Read references/grader-wrapper-workflow.md and
references/course-designer-artifacts.md before creating artifacts.
Required Tooling
Use the existing matlab-generate-grader-assessments skill for the initial component generation. Use
MATLAB MCP Server calls for validation:
detect_matlab_toolboxesfor product/toolbox availabilitycheck_matlab_codefor static analysis of.mfilesrun_matlab_filefor runnable scripts, validation drivers, or test harnessesevaluate_matlab_codefor targeted checks, path setup, function calls, and MATLAB Exercise test smoke checks
Do not claim a MATLAB Exercise is ready unless the generated MATLAB files have been checked through MATLAB MCP calls or the final output clearly marks validation as partial.
Pipeline Overview
Step 1: Collect activity inputs and Course Designer placement
Step 2: Invoke grader for shared MATLAB Exercise component parts
Step 3: Split description.txt into background.m and task.m
Step 4: Add Course Designer-only authoring fields
Step 5: Validate solution.m, template.m, and tests.m with MATLAB MCP calls
Step 6: Write Course Designer-ready activity metadata and review notes
Step 1: Activity Inputs
Collect only missing information:
- Course title or course identifier
- Module title and module order
- Learning activity title and activity order
- Module objective and observable learner outcome
- MATLAB concept: script, function, class, object usage, data analysis, visualization, numerical methods, app workflow, or another domain
- Assessment purpose: formative, summative, or both
- Required MATLAB and toolbox products
- Starter/template expectations
- Solution behavior
- Validation requirements
- Output directory
Default to a Course Designer learning activity type of MATLAB Exercise.
Step 2: Invoke matlab-generate-grader-assessments
Use references/grader-wrapper-workflow.md.
Call or prompt the existing matlab-generate-grader-assessments skill before creating Course Designer
metadata. The expected matlab-generate-grader-assessments output is:
description.txttemplate.msolution.mtests.mfunction_call.m(Function assessment items)supporting_class.m(Object usage assessment items)
Store the matlab-generate-grader-assessments output under:
grader-items/module-NN-activity-MM-[slug]/
[slug] is the assessment item's snake_case title with underscores replaced by
hyphens. This wrapper placement overrides the generator's standalone
{snake_title}/ folder rule.
Do not hand-write these files first. If matlab-generate-grader-assessments is unavailable, stop and report
that MATLAB Exercise generation is blocked unless the user explicitly accepts a
planning-only fallback.
Step 3: Split Description for Course Designer
Create two plaintext .m files from description.txt for copy/paste into the
MATLAB Course Designer web application:
Per the MATLAB Course Designer documentation for creating MATLAB Exercises: https://www.mathworks.com/help/matlab-and-simulink-online-courses/ug/create-matlab-exercise-using-matlab-course-designer.html
- The Background field sets the context for the task, explains the learning objective, and provides high-level information learners need to complete the task.
- The Task field provides the instructions learners follow to complete the task, including specific instructions such as which functions or variable names to use.
Treat background.m and task.m as plain-text field transport files, not
executable MATLAB scripts. Preserve the text exactly as it should be pasted into
Course Designer. Do not prefix prose with % solely to make the files valid
MATLAB code.
Split workflow:
- Read
description.txtonce and mark each paragraph as context, objective, prerequisite, instruction, deliverable, constraint, self-check, or grading detail. - Put only context, purpose, learning objective, and necessary high-level
prerequisite information in
background.m. - Put concrete learner instructions, ordered task steps, deliverables, required
variable/function/file names, constraints, expected outputs, and self-check
prompts in
task.m. - Move implementation details out of
background.mand intotask.m. - Move broad conceptual exposition out of
task.munless it is needed to understand a specific instruction. - If
description.txthas no clear boundary, create a concise background from the opening context and put the full actionable prompt intask.m. - Keep hidden-test details, reference solution details, and grading mechanics out of both files unless they are intentionally learner-facing.
- Do not modify the original
description.txt; keep it in thematlab-generate-grader-assessmentssource folder.
Quality check:
background.mshould still make sense if read before seeing the task steps.task.mshould be actionable without duplicating the full background.- Both files should be ready to paste into Course Designer text fields without cleanup.
Step 4: Add Course Designer Fields
Create the Course Designer MATLAB Exercise activity from the matlab-generate-grader-assessments output.
Add fields that are needed by MATLAB Course Designer but not generated by the
first-pass component workflow:
background.mandtask.mcopy/paste fields- Module placement and learning activity order
- Estimated time
- Prerequisite context
- Required products and toolboxes
- Learner setup notes
- Course Designer persistence notes
- Optional Common Cartridge placement notes
Step 5: Validate MATLAB Files
Use references/matlab-validation-rules.md.
At minimum:
- Confirm
solution.m,template.m, andtests.mexist. - Run
check_matlab_codeonsolution.m,template.m, andtests.monly.background.mandtask.mare plain-text copy/paste fields, not valid MATLAB code, and must not be linted. - Execute or smoke-test
solution.mwhen runnable. - Validate
tests.msyntax and MATLAB Exercise assess calls where possible. - Confirm the learner template preserves the expected names and scaffold.
- Write all results to
validation-report.md.
When execution is not possible because the generated item requires MATLAB Grader runtime functions, run static checks and targeted syntax checks, then mark runtime validation as partial.
Step 6: Course Designer Activity Artifacts
Use references/course-designer-artifacts.md.
Write these files in the activity folder:
activity.mdbackground.mtask.minstructor-notes.mdvalidation-report.mdcourse-designer-activity.jsongrader-source.md, the reference file that maps the activity to itsgrader-items/source folder and component files (seereferences/course-designer-artifacts.md)
The course-designer-activity.json file is the import-oriented sidecar for
future Course Designer API work. It must include course, module, learning
activity, background.m, task.m, MATLAB file, product, validation, and
matlab-generate-grader-assessments source metadata.
Output Rules
- The final answer must list the activity folder,
matlab-generate-grader-assessmentssource folder, metadata path, and validation report path. - Do not claim validation passed unless the MATLAB MCP checks passed.
- If validation is partial, state exactly which checks were deferred.
- Preserve the Course Designer hierarchy: course -> module -> learning activity.
- Keep the
matlab-generate-grader-assessmentsoutput intact and record any Course Designer-only additions separately.
Signals
- GitHub stars
- 178
- Forks
- 32
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
matlab-create-course-activity- Source
- github.com/matlab/agent-skills-playground