Create 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.
Scanned 8/31/2026
Install via CLI
openskills install matlab/agent-skills-playground---
name: matlab-create-course-activity
description: Create 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.
license: MathWorks BSD-3-Clause (see LICENSE)
metadata:
author: MathWorks
version: "1.0"
---
# 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 use `matlab-generate-grader-assessments`
- `references/matlab-validation-rules.md` — MATLAB MCP validation workflow
- `references/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_toolboxes` for product/toolbox availability
- `check_matlab_code` for static analysis of `.m` files
- `run_matlab_file` for runnable scripts, validation drivers, or test harnesses
- `evaluate_matlab_code` for 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.txt`
- `template.m`
- `solution.m`
- `tests.m`
- `function_call.m` (Function assessment items)
- `supporting_class.m` (Object usage assessment items)
Store the `matlab-generate-grader-assessments` output under:
```text
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:
1. Read `description.txt` once and mark each paragraph as context, objective,
prerequisite, instruction, deliverable, constraint, self-check, or grading
detail.
2. Put only context, purpose, learning objective, and necessary high-level
prerequisite information in `background.m`.
3. Put concrete learner instructions, ordered task steps, deliverables, required
variable/function/file names, constraints, expected outputs, and self-check
prompts in `task.m`.
4. Move implementation details out of `background.m` and into `task.m`.
5. Move broad conceptual exposition out of `task.m` unless it is needed to
understand a specific instruction.
6. If `description.txt` has no clear boundary, create a concise background from
the opening context and put the full actionable prompt in `task.m`.
7. Keep hidden-test details, reference solution details, and grading mechanics
out of both files unless they are intentionally learner-facing.
8. Do not modify the original `description.txt`; keep it in the `matlab-generate-grader-assessments` source
folder.
Quality check:
- `background.m` should still make sense if read before seeing the task steps.
- `task.m` should 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.m` and `task.m` copy/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`, and `tests.m` exist.
- Run `check_matlab_code` on `solution.m`, `template.m`, and `tests.m` only.
`background.m` and `task.m` are plain-text copy/paste fields, not valid
MATLAB code, and must not be linted.
- Execute or smoke-test `solution.m` when runnable.
- Validate `tests.m` syntax 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.md`
- `background.m`
- `task.m`
- `instructor-notes.md`
- `validation-report.md`
- `course-designer-activity.json`
- `grader-source.md`, the reference file that maps the activity to its
`grader-items/` source folder and component files (see
`references/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-assessments` source 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-assessments` output intact and record any Course Designer-only additions
separately.
No comments yet. Be the first to comment!