SKILL.md
Curriculum Design Guide
A structured skill for designing research-informed curricula using backward design, constructive alignment, and competency-based frameworks. Applicable to higher education course design, training program development, and educational research.
Backward Design Framework
Understanding by Design (Wiggins & McTighe, 2005) reverses the traditional content-first approach:
Stage 1: Identify Desired Results
Define what students should know, understand, and be able to do:
course: "Introduction to Research Methods"
big_ideas:
- "Research is a systematic process of inquiry"
- "Methodology must align with research questions"
essential_questions:
- "How do we know what we know?"
- "What makes evidence credible?"
- "When should we use qualitative vs. quantitative methods?"
learning_outcomes:
- "Formulate testable research questions (Apply)"
- "Select appropriate research designs for given questions (Evaluate)"
- "Critically appraise published research methodology (Analyze)"
- "Design and defend a research proposal (Create)"
Stage 2: Determine Acceptable Evidence
Design assessments before planning instruction:
# Assessment blueprint generator
def create_assessment_blueprint(outcomes: list[str], bloom_levels: list[str],
weights: list[float]) -> dict:
"""
Generate an assessment blueprint mapping outcomes to
assessment types and weights.
"""
assessment_types = {
'Remember': 'quiz',
'Understand': 'reflection_paper',
'Apply': 'problem_set',
'Analyze': 'case_study',
'Evaluate': 'peer_review',
'Create': 'research_proposal'
}
blueprint = []
for outcome, level, weight in zip(outcomes, bloom_levels, weights):
blueprint.append({
'outcome': outcome,
'bloom_level': level,
'assessment_type': assessment_types.get(level, 'portfolio'),
'weight_pct': weight * 100
})
return {'blueprint': blueprint, 'total_weight': sum(weights) * 100}
outcomes = [
"Formulate research questions",
"Select research designs",
"Appraise methodology",
"Design research proposal"
]
levels = ['Apply', 'Evaluate', 'Analyze', 'Create']
weights = [0.15, 0.20, 0.25, 0.40]
print(create_assessment_blueprint(outcomes, levels, weights))
