MATLAB Course Activity Generator
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:
textgrader-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.

