matlab-create-mcq-practice
Use when creating, asking, grading, or explaining multiple choice questions for MATLAB programming practice, concept checks, quizzes, or tutoring exercises.
git clone --depth 1 https://github.com/matlab/agent-skills-playground /tmp/matlab-create-mcq-practice && cp -r /tmp/matlab-create-mcq-practice/demos/ai-tutoring/skills/matlab-create-mcq-practice ~/.claude/skills/matlab-create-mcq-practiceSKILL.md
# MATLAB MCQ Practice
## Purpose
Create interactive multiple choice questions that test MATLAB understanding
through prediction, interpretation, debugging, and transfer. Use with
`matlab-tutor-learners` and `matlab-coach-programming`.
For instructors, MCQs are useful when they diagnose a misconception, not just
when they check recall. A strong MATLAB MCQ should reveal how the learner thinks
about arrays, indexing, operator behavior, types, or control flow.
## Question Design
Each question must include:
- A clear learning objective.
- A small MATLAB code snippet or concrete scenario when possible.
- Four answer choices labeled A-D.
- One best answer.
- Distractors based on plausible MATLAB misconceptions.
- Feedback for each option.
- A follow-up prompt that adapts to the learner's answer.
## Interaction Rule
When actively tutoring, ask one MCQ and wait for the learner's answer before
revealing the answer. Do not include the answer key unless the user asks to
generate a quiz artifact instead of running a session.
An MCQ answer key is an authoritative claim about MATLAB behavior.
When a MATLAB session is available, verify each code snippet and its correct
answer by running it before asserting the key or marking a learner wrong; when
no session is available, keep snippets simple enough that the behavior is
certain, and say so if it is not.
## MATLAB Misconception Bank
Use distractors based on:
- Confusing `*` with `.*`, `/` with `./`, or `^` with `.^`.
- Expecting zero-based indexing instead of one-based indexing.
- Confusing row and column vectors.
- Misunderstanding table variable indexing: `T.Var`, `T(:, "Var")`, `T{:, "Var"}`.
- Assuming strings and character vectors behave identically.
- Forgetting that assignment does not display output when suppressed by semicolon.
- Thinking `length` always means number of rows.
- Confusing logical indexing with numeric indexing.
- Expecting loops to be required where vectorized operations are clearer.
- Misreading function scope or workspace behavior.
## MCQ Template
Read [references/mcq-template.md](references/mcq-template.md) when generating a set of questions, a quiz, or a reusable question bank.
## Difficulty Levels
- **Novice**: syntax recognition, output prediction for one or two lines, indexing basics.
- **Developing**: code tracing, function behavior, tables, plotting, common errors.
- **Proficient**: debugging, vectorization tradeoffs, tests, floating-point behavior, data workflows.
## Grading Response Pattern
Use this after the learner answers:
```text
Correct/Not quite.
Why: [one MATLAB-specific explanation].
The tempting misconception is [misconception].
Try this follow-up: [one transfer question].
```
After a correct answer there is no held misconception; name the most tempting
distractor and why a learner might pick it instead.
## Instructor Adoption Notes
- Use MCQs before hands-on work to surface misconceptions quickly.
- Prefer code-prediction questions over vocabulary-only questions.
- Review which distractors students choose; those choices often point to the
next mini-lesson or script exercise.Use this skill when the user wants to author, design, scope, or refine an Agent Skill (a SKILL.md file). Trigger phrases include "build a new skill", "design an agent skill", "scope a SKILL.md", "how should I structure this skill", "write a skill for X", "my skill isn't working well", or any request to improve an existing SKILL.md. Walks the user through an empirical, test-first process — probe the agent for real failures, design only for genuine knowledge gaps, iterate against runnable examples, and verify across models.
>
Use when a learner asks for help with MATLAB homework, labs, projects, graded assignments, take-home exams, quizzes, or any programming task where academic integrity, course policy, or instructor constraints may limit direct solutions. Use to provide policy-aware hints, conceptual coaching, partial feedback, and assignment-safe MATLAB tutoring.
Use when tutoring a learner through MATLAB debugging, error interpretation, failed tests, incorrect outputs, array-shape problems, indexing mistakes, function argument issues, or code repair practice. Use for guided debugging sessions, debugging drills, teach-the-agent critique, and evidence-based MATLAB troubleshooting.
Use when an AI tutor session concerns MATLAB programming concepts, MATLAB syntax, MATLAB errors, MATLAB code style, MATLAB projects, or MATLAB toolbox workflows.
Use when an instructor wants to create, interview for, configure, install, update, or review a course AI-use policy for MATLAB AI tutoring. Produces an AI-POLICY.md file for LMS sharing and local tutoring-session enforcement by assignment guardrails.
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.
Use when prompting a learner to complete hands-on MATLAB coding exercises, guided practice, debugging drills, code tracing, small MATLAB projects, or MATLAB-script assessment during tutoring. Use when the tutor should create a complete runnable MATLAB script, execute it through MATLAB tools, compare the produced outputs with expected outputs, and evaluate MATLAB programming style.