> generating-practice-questions
Generate educational practice questions from lecture notes to test student understanding. Use when users request practice questions, exam preparation materials, study guides, or assessment items based on lecture content.
curl "https://skillshub.wtf/https-deeplearning-ai/sc-agent-skills-files/generating-practice-questions?format=md"Practice Question Generator
Generate comprehensive practice questions from lecture notes to test student understanding of learning objectives and key concepts.
Input
Supported formats: LaTeX (.tex), PDF, Markdown (.md), plain text (.txt)
-
PDF: Use
pdfplumberfor text extraction -
LaTeX: Read as text, strip preamble (everything before
\begin{document}), preserve math environments ($...$,\[...\],\begin{equation}, etc.) -
Markdown/Text
Content to extract:
- Learning objectives - Usually at beginning: "After this lecture, you should be able to..." or may be in section: "Learning Outcomes","Objectives", "Goals". If absent, derive from main topics.
- Main topics - Section headings, bold terms, definitions, algorithms.
- Examples - Use for realistic scenarios in questions.
Question Structure
Generate questions in this order:
- True/False (one per learning objective, or 3-5 if no objectives)
- Explanatory Questions (3-5 covering main topics)
- Coding Question (1 algorithm implementation or concept simulation)
- Use Case (1 realistic application)
For each question type, follow guidelines below, and never include answer key.
Question Guidelines
Type 1: True/False
Test factual understanding and common misconceptions.
Coverage:
- One per learning objective, or 3-5 covering main topics if no objectives
Difficulty progression:
- Start with 1-2 simple definitional questions
- Include 2-3 reasoning-based questions requiring concept application or testing relationships between concepts
Quality criteria:
- Unambiguous with one correct interpretation
- Clear language without complex nested clauses
- Answer directly found in lecture notes
- Wrong answer reveals common misconception
Examples:
- Easy: "In supervised learning, the training data includes both input features and their corresponding labels."
- Medium: "A model with high training accuracy but low test accuracy is likely underfitting the data."
Type 2: Explanatory Questions
Test deeper understanding by requiring students to articulate concepts, compare approaches, and explain reasoning.
Topic selection:
- Choose 3-5 main topics (key algorithms and their implementations, Advantages/limitations of approaches, Relationships between concepts)
- Avoid repetition: If topic appears in T/F, ask about a different aspect
Question formulations:
- "Explain..." - requires description in student's words
- "Compare and contrast..." - tests understanding of differences
- "Why does..." - tests causal reasoning
- "What are the advantages/disadvantages..." - tests critical analysis
- "Describe the steps..." - tests procedural knowledge
Quality criteria:
- Open-ended but focused
- Cannot be answered with simple yes/no
- Requires 3-5 sentences to answer well
Examples:
- "Explain the bias-variance tradeoff. How does increasing model complexity affect bias and variance?"
- "Compare K-Nearest Neighbors and Decision Trees in terms of decision boundaries, training time, and prediction time."
Type 3: Coding Question
Test practical implementation through code.
Scope:
- Implementation of an algorithm discussed in lecture
- Simulation of a concept or process
- Must be achievable with lecture knowledge only
- Should take 15-30 minutes for prepared student
Required structure:
- Clear objective
- Step-by-step instructions (3-5 steps)
- Function signature (if applicable)
- Expected behavior with input/output examples
- Hints (optional but helpful)
Language:
- Python (default) with standard library.
- If using external libraries: NumPy, pandas, matplotlib, scikit-learn.
- Should not require advanced Python features
Type 4: Use Case Question
Test ability to apply concepts or algorithms explained in lecture notes to realistic scenarios.
Components:
- Context - Realistic scenario description
- Data description - What data is available (provide generation code if needed)
- Task - What needs accomplishment
- Constraints (optional) - Time, space, accuracy requirements
- Hints (2-3) - Guidance without giving solution
- Libraries - Can use scikit-learn, pandas, NumPy
Data generation: If needed, provide simple, clear code to generate appropriate data.
Output Format Guidelines
Output format depends on user request (LaTeX, PDF, Markdown, plain text).
General structure for all formats:
- Title with document name
- Instructions section
- Part 1: True/False Questions (numbered sequentially)
- Part 2: Explanatory Questions (numbered sequentially)
- Part 3: Coding Question (with steps, signature, examples, hints)
- Part 4: Use Case Application (with scenario, data, task, requirements, hints)
For specific formats: For LaTeX and Markdown document structures, use the following templates (in assets/ folder):
questions_template.tex- Complete LaTeX document structure with formattingmarkdown_template.md- Complete Markdown document structure
Supporting Resources
References (in references/ folder):
examples_by_topic.md- Domain-specific question examples for ML topics (algorithms, preprocessing, evaluation, etc.)
> related_skills --same-repo
> learning-a-tool
Create learning paths for programming tools, and define what information should be researched to create learning guides. Use when user asks to learn, understand, or get started with any programming tool, library, or framework.
> reviewing-cli-command
Provides checklist for reviewing Typer CLI command implementations. Covers structure, Annotated syntax, error handling, exit codes, display module usage, destructive action patterns, and help text conventions. Use when user asks to review/check/verify a CLI command, wants feedback on implementation, or asks if a command follows best practices.
> generating-cli-tests
Generate pytest tests for Typer CLI commands. Includes fixtures (temp_storage, sample_data), CliRunner patterns, confirmation handling (y/n/--force), and edge case coverage. Use when user asks to "write tests for", "test my CLI", "add test coverage", or any CLI + test request.
> adding-cli-command
Provides Typer templates, handles registration, and ensures consistency. ALWAYS use this skill when adding or modifying CLI commands. Use when user requests to add/create/implement/build/write a new command (e.g., "add edit command", "create search feature") OR update/modify/change/edit an existing command.