{"repo": "asadmirza44/ailearningprogram", "files": {"backend/app/services/curriculum_transformers.py": {"146677d696daf8a4394c8d021ccc94d6cdc84fc5": {"t": 1785846919.891441, "n": 184714, "h": "f6030501d6159eba", "c": "from copy import deepcopy\n\nfrom app.core.config import PROJECT_ROOT\n\n\nPROGRAM_TITLE = \"AI-Enabled Student Program\"\nPROGRAM_SUBTITLE = \"A 7-week practical program to help students understand, use, evaluate, and build with AI.\"\n\n\ndef _program_path(*parts):\n # Returns a forward-slash content-relative path (e.g. \"content/activity-examples/week-01/01-ai-or-not-ai\").\n # Using relative paths means the value is correct on any machine and on Vercel — the\n # /api/course/activity-folder and /api/course/activity-file endpoints resolve it at request time.\n return \"/\".join(parts)\n\n\nCURRICULUM_MAP = {\n \"week-01\": {\n \"id\": \"week-01\",\n \"sequence\": 1,\n \"title\": \"AI Foundations and AI Literacy\",\n \"short_title\": \"AI Foundations\",\n \"theme_color\": \"sky\",\n \"estimated_minutes\": 120,\n \"focus\": \"Understand what AI is, where it is used, what it can and cannot do, and how to think critically about AI output.\",\n \"signature_activity\": \"Five-game AI literacy rotation\",\n \"status\": \"available\",\n },\n \"week-02\": {\n \"id\": \"week-02\",\n \"sequence\": 2,\n \"title\": \"Prompt Engineering and AI for Learning\",\n \"short_title\": \"Prompt Engineering\",\n \"theme_color\": \"pink\",\n \"estimated_minutes\": 120,\n \"focus\": \"Use better prompts, structure, constraints, iteration, and verification to turn AI into a stronger study partner.\",\n \"signature_activity\": \"Bad prompt vs good prompt challenge\",\n \"status\": \"available\",\n },\n \"week-03\": {\n \"id\": \"week-03\",\n \"sequence\": 3,\n \"title\": \"Data Thinking and Machine Learning Basics\",\n \"short_title\": \"Data and ML\",\n \"theme_color\": \"teal\",\n \"estimated_minutes\": 120,\n \"focus\": \"Understand datasets, features, labels, prediction, recommendation, and why biased data creates weak AI systems.\",\n \"signature_activity\": \"Manual classification game\",\n \"status\": \"available\",\n },\n \"week-04\": {\n \"id\": \"week-04\",\n \"sequence\": 4,\n \"title\": \"Python, Automation, and Computational Thinking\",\n \"short_title\": \"Python and Automation\",\n \"theme_color\": \"green\",\n \"estimated_minutes\": 120,\n \"focus\": \"Learn Python basics, logic, and simple automation patterns to understand how AI apps and workflows are built.\",\n \"signature_activity\": \"Build a rule-based chatbot\",\n \"status\": \"available\",\n },\n \"week-05\": {\n \"id\": \"week-05\",\n \"sequence\": 5,\n \"title\": \"RAG, MCP, and AI-Powered Systems\",\n \"short_title\": \"RAG and MCP\",\n \"theme_color\": \"violet\",\n \"estimated_minutes\": 120,\n \"focus\": \"Understand retrieval, semantic search, knowledge grounding, MCP, tools, resources, prompts, and agent-style systems.\",\n \"signature_activity\": \"Paper-based RAG simulation\",\n \"status\": \"available\",\n },\n \"week-06\": {\n \"id\": \"week-06\",\n \"sequence\": 6,\n \"title\": \"Plugins, Rules, Skills, Subagents, Tools, and Hooks\",\n \"short_title\": \"Agent Building Blocks\",\n \"theme_color\": \"indigo\",\n \"estimated_minutes\": 120,\n \"focus\": \"Compare plugins, rules, skills, subagents, tools, and hooks so students know how modern AI coding agents are extended, guided, and automated.\",\n \"signature_activity\": \"Agent building blocks comparison lab\",\n \"status\": \"available\",\n },\n \"week-07\": {\n \"id\": \"week-07\",\n \"sequence\": 7,\n \"title\": \"Capstone Development and AI Showcase\",\n \"short_title\": \"Capstone Showcase\",\n \"theme_color\": \"rose\",\n \"estimated_minutes\": 160,\n \"focus\": \"Apply prompting, RAG, MCP, plugins, rules, skills, subagents, tools, hooks, model choice, and ethics in a final AI-enabled capstone project.\",\n \"signature_activity\": \"Capstone planning workshop with agent building blocks\",\n \"status\": \"available\",\n },\n \"teacher-workshop-01\": {\n \"id\": \"teacher-workshop-01\",\n \"sequence\": 8,\n \"title\": \"AI for Teachers: Practical Classroom Planning Workshop\",\n \"short_title\": \"Teacher Workshop\",\n \"theme_color\": \"amber\",\n \"estimated_minutes\": 360,\n \"focus\": \"Help non-technical teachers use AI for lesson planning, classroom activities, assessment, feedback, differentiation, and productivity with clear review habits.\",\n \"signature_activity\": \"Topic to lesson workflow studio\",\n \"track\": \"teacher\",\n \"delivery_label\": \"Workshop\",\n \"sequence_label\": \"Teacher Workshop\",\n \"audience\": \"Non-technical teachers\",\n \"status\": \"available\",\n },\n}\n\n\ndef _concept(title, definition, why, use_case, examples, mistakes, practices):\n return {\n \"title\": title,\n \"definition\": definition,\n \"why_it_matters\": why,\n \"real_world_use_case\": use_case,\n \"practical_examples\": examples,\n \"common_mistakes\": mistakes,\n \"best_practices\": practices,\n }\n\n\ndef _text_excerpt(value, fallback=\"Concept summary coming soon.\"):\n if isinstance(value, list):\n value = value[0] if value else fallback\n if not value:\n return fallback\n value = value.strip()\n return value if len(value) <= 132 else f\"{value[:129].rstrip()}...\"\n\n\ndef _slugify(text):\n return text.lower().replace(\" \", \"-\").replace(\"/\", \"-\").replace(\",\", \"\").replace(\".\", \"\")\n\n\ndef _attach_media_slots(concepts):\n enriched = []\n for concept in concepts:\n updated = deepcopy(concept)\n slug = _slugify(updated[\"title\"])\n updated[\"media_slots\"] = [\n {\n \"id\": f\"{slug}-image\",\n \"title\": f\"{updated['title']} Image\",\n \"kind\": \"image\",\n \"prompt\": f\"Reserved static visual slot for {updated['title']}.\"\n },\n {\n \"id\": f\"{slug}-gif\",\n \"title\": f\"{updated['title']} GIF\",\n \"kind\": \"gif\",\n \"prompt\": f\"Reserved animated visual slot for {updated['title']}.\"\n }\n ]\n enriched.append(updated)\n return enriched\n\n\ndef _build_visual_gallery(week_id, content):\n gallery = []\n diagrams = content[\"curriculum\"].get(\"diagrams\", [])\n\n for index, diagram in enumerate(diagrams):\n summary = \"\"\n if isinstance(diagram, dict):\n fields = diagram.get(\"fields\", {})\n summary = next(\n (value for value in fields.values() if isinstance(value, str)),\n f\"Reserved week-level visual slot for {diagram.get('title', 'diagram')}.\"\n )\n title = diagram.get(\"title\", f\"Week Visual {index + 1}\")\n else:\n title = f\"Week Visual {index + 1}\"\n summary = \"Reserved week-level visual slot.\"\n\n gallery.append(\n {\n \"id\": f\"{week_id}-visual-{index + 1}\",\n \"title\": title,\n \"kind\": \"image\",\n \"prompt\": summary,\n }\n )\n\n primary_activity = content[\"curriculum\"][\"activities\"][0][\"title\"] if content[\"curriculum\"][\"activities\"] else \"Class Activity\"\n gallery.append(\n {\n \"id\": f\"{week_id}-activity-gif\",\n \"title\": f\"{primary_activity} GIF\",\n \"kind\": \"gif\",\n \"prompt\": f\"Reserved animated week-level activity slot for {primary_activity}.\",\n }\n )\n return gallery\n\n\ndef _sync_core_ideas_with_concepts(content):\n concept_items = [\n {\n \"label\": concept[\"title\"],\n \"description\": _text_excerpt(concept.get(\"definition\"))\n }\n for concept in content[\"curriculum\"][\"concepts\"]\n ]\n\n for block in content[\"lesson\"][\"blocks\"]:\n if block.get(\"type\") == \"concept-card-grid\":\n block[\"items\"] = concept_items\n content[\"lesson\"][\"blocks\"] = [\n block for block in content[\"lesson\"][\"blocks\"]\n if not (block.get(\"type\") == \"callout\" and block.get(\"title\") == \"Tutor Message\")\n ]\n\n\ndef _reorder_teacher_concepts(content):\n desired_order = [\n \"AI\",\n \"Generative AI\",\n \"LLM\",\n \"Machine Learning\",\n \"Prompt and Prompt Template\",\n \"Memory and Context Management\",\n \"Tokens, Context Window, and Inference\",\n \"Lesson Planning with AI\",\n \"Assessment, Feedback, and Rubrics\",\n \"AI Evaluation and Testing\",\n \"Differentiation\",\n \"Student Support and Re-Explanation\",\n \"Teacher Productivity and Communication\",\n \"Multimodal AI and Document AI\",\n \"RAG and Knowledge Grounding\",\n \"Agents, Tools, and Workflows\",\n \"AI Guardrails and Permissions\",\n \"Model Choice, Privacy, and Cost\",\n \"Hallucination\",\n \"Human-in-the-Loop and Workflow\",\n ]\n\n concepts_by_title = {\n concept[\"title\"]: concept for concept in content[\"curriculum\"][\"concepts\"]\n }\n ordered = [concepts_by_title[title] for title in desired_order if title in concepts_by_title]\n remaining = [\n concept for concept in content[\"curriculum\"][\"concepts\"]\n if concept[\"title\"] not in desired_order\n ]\n content[\"curriculum\"][\"concepts\"] = ordered + remaining\n\n\ndef _prune_runtime_content(content, week_id):\n content[\"curriculum\"][\"visual_gallery\"] = _build_visual_gallery(week_id, content)\n content[\"curriculum\"].pop(\"lecture_notes\", None)\n content[\"curriculum\"].pop(\"diagrams\", None)\n content[\"curriculum\"].pop(\"instructor_notes\", None)\n content.pop(\"teacher_notes\", None)\n\n\nWEEK_CONTENT = {\n \"week-01\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Understand AI, ML, Data Science, Deep Learning, and Generative AI in simple language.\",\n \"Recognize where AI appears in daily life and study environments.\",\n \"Identify AI strengths, limitations, hallucinations, bias, and responsible AI concerns.\",\n \"Think critically about AI-generated outputs instead of trusting them automatically.\"\n ],\n \"expected_outcomes\": [\n \"Students can explain key AI terms clearly.\",\n \"Students can identify common AI use cases around them.\",\n \"Students can spot risks such as hallucination and bias.\"\n ],\n },\n \"lesson\": {\n \"id\": \"lecture-1\",\n \"week_id\": \"week-01\",\n \"title\": \"AI Foundations and AI Literacy\",\n \"estimated_minutes\": 120,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should understand what AI is, where it is used, what it can and cannot do, and how to think critically about AI-generated outputs.\"},\n {\"type\": \"objective-list\", \"title\": \"Learning Outcomes\", \"items\": [\n {\"label\": \"AI Literacy\", \"description\": \"Explain AI, ML, Data Science, Deep Learning, and Generative AI simply.\"},\n {\"label\": \"Critical Thinking\", \"description\": \"Evaluate outputs for hallucination, bias, and weakness.\"},\n {\"label\": \"Responsible AI\", \"description\": \"Connect AI use to privacy, fairness, ethics, and human judgment.\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"Core Ideas\", \"items\": [\n {\"label\": \"AI\", \"description\": \"Software performing tasks that usually require human intelligence.\"},\n {\"label\": \"Machine Learning\", \"description\": \"Systems learning patterns from data instead of explicit rules.\"},\n {\"label\": \"Generative AI\", \"description\": \"AI creating new text, images, code, audio, or ideas.\"},\n {\"label\": \"Hallucination\", \"description\": \"A confident AI answer that is false, weak, or unsupported.\"}\n ]},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"This lecture builds AI awareness, but the deeper goal is to help learners become skeptical, capable, and practical AI users.\"}\n ],\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"subtitle\": PROGRAM_SUBTITLE,\n \"learning_objectives\": [\n \"Explain AI, ML, Data Science, Generative AI, and hallucination simply.\",\n \"Recognize daily AI systems and where they help.\",\n \"Evaluate AI risks such as bias, misinformation, and overtrust.\",\n \"Practice responsible AI thinking in classroom discussions.\"\n ],\n \"expected_outcomes\": [\n \"Students become AI-literate and less passive users of AI systems.\",\n \"Students begin identifying strong and weak AI outputs critically.\"\n ]\n },\n \"concepts\": [\n _concept(\"Artificial Intelligence\", \"AI is the ability of software systems to perform tasks that usually require human intelligence, such as understanding language, recognizing patterns, generating content, making predictions, and helping with decisions.\", \"Students need a clear, non-mythical definition before using AI tools seriously.\", \"A study assistant summarizes notes and suggests practice questions.\", [\"Chat assistants\", \"Recommendation systems\", \"Spam filters\", \"Image generators\"], [\"Thinking AI is magic\", \"Assuming all intelligent-looking software is AI\"], [\"Use plain definitions first\", \"Always pair capability with limitation\"]),\n _concept(\"Machine Learning\", \"Machine Learning is a branch of AI where systems learn patterns from data instead of being manually programmed for every rule.\", \"It explains why data matters and why AI systems improve through examples.\", \"A recommendation engine learns from viewing patterns instead of hand-coded rules.\", [\"Spam detection\", \"Product recommendation\", \"Prediction models\"], [\"Thinking ML means human-like understanding\", \"Ignoring the role of training data\"], [\"Describe learning as pattern recognition\", \"Use familiar examples\"]),\n _concept(\"Data Science\", \"Data Science is the process of collecting, cleaning, analyzing, visualizing, and interpreting data to make better decisions.\", \"Students must know that AI depends on data thinking, not just AI tools.\", \"A school survey is cleaned and analyzed to understand student study habits.\", [\"Survey analysis\", \"Visualization\", \"Pattern finding\"], [\"Thinking data science is only statistics\", \"Ignoring data cleaning\"], [\"Teach data as decision support\", \"Show messy vs clean data\"]),\n _concept(\"Generative AI\", \"Generative AI creates new content such as text, images, code, audio, video, summaries, explanations, and ideas.\", \"This is the category students already use most often, so it must be explained precisely.\", \"An AI tool drafts an email, creates flashcards, or suggests project ideas.\", [\"Text generation\", \"Code generation\", \"Image prompts\"], [\"Confusing generation with truth\", \"Using output without checking\"], [\"Explain that generated does not mean verified\", \"Pair with fact-checking habits\"]),\n _concept(\"Multimodal AI and Document AI\", \"Multimodal AI can work across more than one type of input or output, such as text, images, audio, or documents. Document AI includes tasks like OCR, form reading, layout understanding, and extracting useful information from files.\", \"Students need to understand that modern AI is not limited to chat text.\", \"A student scans a worksheet image and uses AI to extract questions, summarize the page, and identify key deadlines.\", [\"OCR from notes\", \"Image understanding\", \"Receipt or form extraction\"], [\"Assuming AI only works with typed prompts\", \"Trusting extracted document text without checking errors\"], [\"Show text, image, and document examples side by side\", \"Verify OCR and extracted fields\"]),\n _concept(\"Hallucination, Bias, and Responsible AI\", \"A hallucination happens when AI produces information that sounds correct but is false, outdated, incomplete, or unsupported. Responsible AI means using AI safely, ethically, transparently, and critically.\", \"These ideas prevent blind trust and academic misuse.\", \"An AI gives a fake citation or a biased answer about a person or group.\", [\"Wrong summaries\", \"Invented references\", \"One-sided advice\"], [\"Believing confidence equals accuracy\", \"Ignoring fairness and privacy\"], [\"Verify claims\", \"Discuss ethics and academic honesty openly\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"AI Literacy Narrative\", \"fields\": {\"summary\": \"Move learners from AI curiosity into critical literacy. Start with familiar tools, then discuss what AI does well, where it fails, and why human judgment remains essential.\"}},\n {\"title\": \"Student-Friendly Definitions\", \"fields\": {\"definitions\": [\n \"AI helps computers perform tasks that usually need human intelligence.\",\n \"ML allows computers to learn patterns from data.\",\n \"Data Science helps us understand data and make decisions.\",\n \"Generative AI creates new content.\",\n \"Hallucination means AI gives a confident but wrong answer.\"\n ]}}\n ],\n \"diagrams\": [\n {\"title\": \"AI Capability Map\", \"fields\": {\"summary\": \"Future visual should compare pattern recognition, generation, prediction, and assistance.\"}},\n {\"title\": \"Human Judgment Loop\", \"fields\": {\"summary\": \"Future visual should show AI output followed by verification, editing, and responsible use.\"}}\n ],\n \"activities\": [\n {\n \"title\": \"AI or Not AI? (Human vs AI Challenge)\",\n \"short_description\": \"The trainer displays different examples on the screen, such as images, text, music clips, chatbot responses, and recommendations. Participants guess whether each example was created by humans or AI.\",\n \"learning_objective\": [\n \"Understand where AI is commonly used.\",\n \"Recognize AI-generated content.\",\n \"Build awareness of AI capabilities and limitations.\"\n ],\n \"instructions\": [\n \"Show one example at a time from the prepared folder.\",\n \"Ask participants to vote before the answer is revealed.\",\n \"Reveal the answer and explain the AI concept behind the example.\"\n ],\n \"participant_interaction\": [\n \"Participants vote by raising hands, using colored cards, or polling.\",\n \"Small groups discuss why they think something is AI-generated.\",\n \"The trainer reveals answers and explains the related AI concept.\"\n ],\n \"main_ai_concept\": \"AI applications and recognition\",\n \"interaction_type\": \"Voting and discussion\",\n \"expected_outcome\": \"Participants can identify common AI and non-AI examples with clearer reasoning.\",\n \"estimated_time\": \"15 minutes\",\n \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-01\", \"01-ai-or-not-ai\")\n },\n {\n \"title\": \"Train the AI! (Sorting & Classification Game)\",\n \"short_description\": \"Participants help train a pretend AI by categorizing items shown on screen, such as emails, images, student comments, and exam answers, into correct groups.\",\n \"learning_objective\": [\n \"Learn the concept of machine learning and training data.\",\n \"Understand classification and pattern recognition.\",\n \"Discover how AI learns from examples.\"\n ],\n \"instructions\": [\n \"Show labeled examples first so participants understand the categories.\",\n \"Ask teams to classify new examples into groups such as Spam / Not Spam, Relevant / Irrelevant, or Positive / Negative feedback.\",\n \"Include a few tricky examples to show why classification is not always obvious.\"\n ],\n \"participant_interaction\": [\n \"Participants shout answers or vote.\",\n \"Teams debate classifications.\",\n \"The trainer uses tricky examples to spark discussion.\"\n ],\n \"main_ai_concept\": \"Machine learning basics\",\n \"interaction_type\": \"Categorization and teamwork\",\n \"expected_outcome\": \"Participants understand that AI classification depends on examples, labels, and patterns.\",\n \"estimated_time\": \"15 minutes\",\n \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-01\", \"02-train-the-ai\")\n },\n {\n \"title\": \"AI Myth Busters\",\n \"short_description\": \"The trainer presents common statements about AI, and participants decide whether each one is true, false, or partly true.\",\n \"learning_objective\": [\n \"Improve AI literacy.\",\n \"Remove misconceptions about AI.\",\n \"Encourage critical thinking and ethical awareness.\"\n ],\n \"instructions\": [\n \"Read or display one myth at a time.\",\n \"Ask participants to choose True, False, or Partly True.\",\n \"Discuss the reasoning and connect the answer to practical AI use.\"\n ],\n \"participant_interaction\": [\n \"Participants move to sides of the room or vote verbally.\",\n \"Teams justify their answers.\",\n \"The trainer facilitates short discussions after each myth.\"\n ],\n \"main_ai_concept\": \"AI literacy and misconceptions\",\n \"interaction_type\": \"Debate and voting\",\n \"expected_outcome\": \"Participants replace exaggerated AI beliefs with a balanced understanding.\",\n \"estimated_time\": \"15 minutes\",\n \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-01\", \"03-ai-myth-busters\")\n },\n {\n \"title\": \"Prompt Battle (Talk to the AI)\",\n \"short_description\": \"Participants compete to create the best prompt for an AI tool. The trainer gives a task, teams suggest prompts, and the trainer shows AI-generated outputs live.\",\n \"learning_objective\": [\n \"Understand prompt engineering basics.\",\n \"Learn how instructions affect AI output.\",\n \"Develop practical classroom AI usage skills.\"\n ],\n \"instructions\": [\n \"Give teams a task such as generating a lesson plan, writing quiz questions, or explaining photosynthesis to children.\",\n \"Let teams write or speak their best prompt.\",\n \"Run selected prompts live and compare the outputs.\"\n ],\n \"participant_interaction\": [\n \"Teams collaboratively write prompts.\",\n \"Participants compare AI outputs.\",\n \"The class discusses which prompt worked best and why.\"\n ],\n \"main_ai_concept\": \"Prompt engineering\",\n \"interaction_type\": \"Team competition\",\n \"expected_outcome\": \"Participants see how clearer instructions produce more useful AI output.\",\n \"estimated_time\": \"20 minutes\",\n \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-01\", \"04-prompt-battle\")\n },\n {\n \"title\": \"AI Ethics Decision Game\",\n \"short_description\": \"Participants review real-life AI scenarios and decide what should happen, such as whether AI should grade student essays, facial recognition should be used in schools, or students should use AI for assignments.\",\n \"learning_objective\": [\n \"Explore ethical and responsible AI use.\",\n \"Encourage balanced thinking about AI in education.\",\n \"Understand fairness, privacy, and bias.\"\n ],\n \"instructions\": [\n \"Show one scenario at a time.\",\n \"Ask groups to choose a decision and explain the safeguards they would require.\",\n \"Compare decisions and summarize the responsible AI principle behind each scenario.\"\n ],\n \"participant_interaction\": [\n \"Groups discuss and debate each scenario.\",\n \"Participants vote on decisions.\",\n \"Participants explain the reasoning behind their choices.\"\n ],\n \"main_ai_concept\": \"Responsible AI\",\n \"interaction_type\": \"Discussion and decision-making\",\n \"expected_outcome\": \"Participants can discuss AI choices using fairness, privacy, bias, and accountability.\",\n \"estimated_time\": \"20 minutes\",\n \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-01\", \"05-ai-ethics-decision-game\")\n }\n ],\n \"assignments\": [\n {\"title\": \"AI in My Life report\", \"fields\": {\n \"problem_statement\": \"Create a one-page report about how AI already affects your studies, work, or daily life.\",\n \"requirements\": [\"Include at least 10 AI tools or systems\", \"Explain where AI is helpful\", \"Identify at least two risks or concerns\", \"Use clear simple language\"],\n \"submission_expectations\": [\"One-page report\", \"Add title and student name\"],\n \"evaluation_criteria\": [\"Clarity\", \"Practical understanding\", \"Critical thinking\", \"Correct use of AI terminology\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Keep the lecture practical and discussion-driven.\",\n \"Use live examples of wrong AI output to build skepticism.\",\n \"Repeat the phrase: useful does not always mean correct.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-01-ai-or-not-ai\",\n \"week_id\": \"week-01\",\n \"type\": \"card-sort\",\n \"title\": \"AI or Not AI? (Human vs AI Challenge)\",\n \"instructions\": \"Vote on each example and decide whether it is AI-generated or not AI-generated. Discuss the clue before revealing the answer.\",\n \"items\": [\n {\"label\": \"A chatbot response that summarizes a textbook paragraph\", \"category\": \"ai\"},\n {\"label\": \"A hand-drawn classroom poster made by a teacher\", \"category\": \"not_ai\"},\n {\"label\": \"A music playlist recommended from listening history\", \"category\": \"ai\"},\n {\"label\": \"A calculator adding two numbers\", \"category\": \"not_ai\"},\n {\"label\": \"An image generated from a text prompt\", \"category\": \"ai\"}\n ],\n \"success_criteria\": \"Correctly classify at least 4 of 5 examples and explain one clue that helped your decision.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-01\",\n \"week_id\": \"week-01\",\n \"title\": \"AI Foundations Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w1-q1\", \"prompt\": \"What is the best simple definition of AI in this program?\", \"options\": [\"A robot only\", \"Software performing tasks that usually require human intelligence\", \"A spreadsheet tool\", \"A hardware device\"], \"answer_index\": 1, \"explanation\": \"AI refers to software systems doing tasks involving language, pattern recognition, prediction, or decision support.\"},\n {\"id\": \"w1-q2\", \"prompt\": \"What is a hallucination?\", \"options\": [\"A perfectly cited answer\", \"A type of database\", \"A confident but false or unsupported AI answer\", \"A method for storing files\"], \"answer_index\": 2, \"explanation\": \"Hallucination means the output sounds plausible but is wrong, incomplete, or unsupported.\"},\n {\"id\": \"w1-q3\", \"prompt\": \"Why is responsible AI important?\", \"options\": [\"Because AI is always correct\", \"Because students should think about privacy, fairness, bias, and human judgment\", \"Because AI replaces all human decisions\", \"Because it makes prompts longer\"], \"answer_index\": 1, \"explanation\": \"Responsible AI connects use of AI to safety, fairness, ethics, and verification.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"Where do you already use AI, and where do you think you should be more careful before trusting it?\",\n \"placeholder\": \"I already use AI in study tools, recommendations, and writing support. I should be more careful with facts, citations, and decisions that affect people.\"\n },\n \"teacher_notes\": [\n \"Begin with familiar tools students already use so the class feels relevant immediately.\",\n \"Do not oversimplify hallucination as a rare mistake. Treat it as a normal risk to be managed.\",\n \"Keep linking AI use back to responsibility and verification.\"\n ]\n },\n \"week-02\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Understand how prompt quality affects AI output quality.\",\n \"Use role, context, constraints, examples, and output format deliberately.\",\n \"Practice iteration and verification when working with AI.\",\n \"Explain tokens, context windows, inference, and sampling settings in simple language.\"\n ],\n \"expected_outcomes\": [\n \"Students can improve weak prompts into useful ones.\",\n \"Students can use AI more effectively for study and learning.\",\n \"Students can connect prompt behavior to model response settings and limits.\"\n ],\n },\n \"lesson\": {\n \"id\": \"lecture-2\",\n \"week_id\": \"week-02\",\n \"title\": \"Prompt Engineering and AI for Learning\",\n \"estimated_minutes\": 120,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should learn how to communicate effectively with AI and use it as a study partner without blindly trusting it.\"},\n {\"type\": \"objective-list\", \"title\": \"Prompt Skills\", \"items\": [\n {\"label\": \"Prompt Structure\", \"description\": \"Use role, task, context, constraints, output format, and examples.\"},\n {\"label\": \"Iteration\", \"description\": \"Improve weak prompts step by step.\"},\n {\"label\": \"Verification\", \"description\": \"Check useful-looking outputs before trusting them.\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"Prompt Formula\", \"items\": [\n {\"label\": \"Role\", \"description\": \"Who the AI should act like.\"},\n {\"label\": \"Task\", \"description\": \"What the AI should do.\"},\n {\"label\": \"Context\", \"description\": \"Important background.\"},\n {\"label\": \"Constraints\", \"description\": \"Limits on length, tone, or detail.\"},\n {\"label\": \"Output Format\", \"description\": \"How the answer should be returned.\"},\n {\"label\": \"Examples\", \"description\": \"Samples that make output more precise.\"}\n ]},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"Prompting is not magic wording. It is structured communication with iteration and review.\"}\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"learning_objectives\": [\n \"Use AI more effectively for study and writing.\",\n \"Improve prompts with structure and iteration.\",\n \"Compare weak and strong AI responses critically.\",\n \"Understand how context limits, memory handling, and sampling settings shape outputs.\"\n ],\n \"expected_outcomes\": [\n \"Students can submit useful study prompts.\",\n \"Students understand that verification remains necessary.\",\n \"Students can explain why the same prompt may yield different outputs.\",\n \"Students can explain why long chat history and crowded prompts reduce output quality.\"\n ]\n },\n \"concepts\": [\n _concept(\"Prompt\", \"A prompt is an instruction given to AI.\", \"This is the main control surface students use in modern AI tools.\", \"A student asks AI to generate revision questions from notes.\", [\"Study prompts\", \"Writing prompts\", \"Coding prompts\"], [\"Being vague\", \"Asking for too many things at once\"], [\"Ask for one clear outcome\", \"Give context and format\"]),\n _concept(\"Role + Task + Context + Constraints + Output Format + Examples\", \"A good prompt gives role, task, context, constraints, expected output format, and sometimes examples.\", \"This structure makes prompting repeatable instead of random.\", \"A learner asks an AI tutor to explain fractions to grade 8 level with practice questions.\", [\"Tutor prompt\", \"Planner prompt\", \"Writing support prompt\"], [\"Forgetting audience\", \"Forgetting output format\"], [\"Reuse the formula\", \"Revise one missing element at a time\"]),\n _concept(\"Iteration\", \"Iteration means improving the prompt step by step.\", \"The first result is often a draft, not the final answer.\", \"A weak explanation becomes better after adding context and a required format.\", [\"Rewrite and retry\", \"Prompt chaining\", \"Refinement loops\"], [\"Expecting perfection on the first try\", \"Changing everything at once\"], [\"Improve one weakness at a time\", \"Compare versions\"]),\n _concept(\"AI as a Learning Partner\", \"AI can act as a tutor, planner, explainer, quiz maker, and writing assistant when guided well.\", \"Students should use AI actively, not passively.\", \"A student turns notes into flashcards and quiz questions.\", [\"Flashcards\", \"Study plans\", \"Practice questions\"], [\"Copying output without understanding\", \"Using AI instead of thinking\"], [\"Use AI to support learning, not replace it\", \"Review and edit outputs\"]),\n _concept(\"Verification\", \"Verification means checking AI output using trusted sources, logic, or human review.\", \"Good prompting still does not remove the need for fact-checking.\", \"A student checks an AI summary against lecture slides or a textbook.\", [\"Cross-checking facts\", \"Comparing with source notes\", \"Peer review\"], [\"Trusting polished text automatically\", \"Ignoring missing details\"], [\"Verify important claims\", \"Use trusted references\"]),\n _concept(\"Memory and Context Management\", \"Memory and context management means deciding what information the AI should keep in view, what should be summarized, and what can be left out so the workflow stays focused.\", \"Beginners often think more pasted text always helps, but strong workflows manage context deliberately instead of crowding the model.\", \"A student summarizes earlier research notes into five bullet points before asking the AI to draft a study guide, instead of pasting a whole long chat history.\", [\"Summarize before continuing\", \"Carry forward only key facts\", \"Reset when the task changes\"], [\"Pasting everything into one giant prompt\", \"Assuming the model remembers old details perfectly\"], [\"Keep only the context needed for the next step\", \"Use short summaries when a workflow becomes long\"]),\n _concept(\"Tokens, Context Windows, and Inference\", \"A token is a small unit of text the model reads or generates. The context window is the amount of information the model can consider at one time. Inference is the process of generating an answer after the model receives a prompt.\", \"Students use AI better when they know the model has memory and output limits.\", \"A long research prompt may lose earlier details if it exceeds the context window.\", [\"Long chat history\", \"Prompt trimming\", \"Short answer vs long answer\"], [\"Thinking the model remembers everything forever\", \"Ignoring token cost and limits\"], [\"Keep prompts focused\", \"Summarize long context before continuing\"]),\n _concept(\"Attention, Temperature, Top-p, and Top-k\", \"Attention is how the model weighs different parts of the input while generating an answer. Temperature controls how predictable or creative the output is. Top-p and top-k are sampling methods that limit which next-token choices the model can select from.\", \"These ideas explain why identical prompts can still produce more stable or more varied outputs.\", \"A factual study guide uses lower temperature, while a brainstorming prompt can tolerate more variation.\", [\"Stable summaries\", \"Creative writing\", \"Controlled generation\"], [\"Using high creativity settings for factual tasks\", \"Thinking randomness equals intelligence\"], [\"Use lower creativity for accuracy-focused tasks\", \"Teach settings through examples instead of math\"]),\n _concept(\"AI Next-Token Generation\", \"Large language models generate one token at a time by predicting the most likely next token based on the prompt and prior tokens.\", \"This gives students a realistic mental model of how text generation works.\", \"When AI writes an explanation, it is repeatedly selecting the next likely piece of text rather than planning like a human.\", [\"Autocomplete at scale\", \"Sentence continuation\", \"Step-by-step generation\"], [\"Confusing fluent text with deep understanding\", \"Thinking the model reasons exactly like a person\"], [\"Teach generation as prediction plus context\", \"Link this idea back to verification\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"Prompt Formula\", \"fields\": {\"template\": [\"Role\", \"Task\", \"Context\", \"Constraints\", \"Output Format\", \"Examples\"]}},\n {\"title\": \"Worked Example\", \"fields\": {\"example\": \"You are a friendly math tutor. Explain fractions to a grade 8 student using simple examples. Keep the answer short and include 3 practice questions.\"}},\n {\"title\": \"Generation Settings Notes\", \"fields\": {\"summary\": \"Use lower temperature for factual tasks, explain context windows as short-term memory limits, and describe next-token generation as prediction happening one token at a time.\"}}\n ],\n \"diagrams\": [\n {\"title\": \"Prompt Improvement Loop\", \"fields\": {\"summary\": \"Future visual should show prompt -> output -> review -> refined prompt -> better output.\"}}\n ],\n \"activities\": [\n {\"title\": \"Bad prompt vs good prompt challenge\", \"objective\": \"Show that prompt quality shapes output quality.\", \"instructions\": [\"Give students weak prompts.\", \"Ask them to improve each using the formula.\", \"Compare results.\"], \"expected_outcome\": \"Students see direct gains from better prompt structure.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-02\", \"01-prompt-repair\")},\n {\"title\": \"Prompt improvement competition\", \"objective\": \"Practice iterative improvement.\", \"instructions\": [\"Students compete to improve a weak prompt most effectively.\", \"Vote on the strongest revised version.\", \"Discuss why it works.\"], \"expected_outcome\": \"Students learn prompt quality through comparison.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-02\", \"02-prompt-ladder\")},\n {\"title\": \"AI tutor simulation\", \"objective\": \"Use AI as a learning partner.\", \"instructions\": [\"Students create a study prompt for a difficult concept.\", \"Test it.\", \"Revise it using feedback.\"], \"expected_outcome\": \"Students produce usable AI tutor prompts.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"AI-generated flashcards\", \"objective\": \"Turn notes into active study material.\", \"instructions\": [\"Paste a short topic summary.\", \"Ask AI for flashcards.\", \"Review and fix any weak cards.\"], \"expected_outcome\": \"Students create better study aids with AI.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Compare weak and strong AI answers\", \"objective\": \"Evaluate quality differences.\", \"instructions\": [\"Run weak and strong prompts for the same task.\", \"Compare usefulness, accuracy, and structure.\", \"Note what changed.\"], \"expected_outcome\": \"Students internalize the value of structured prompting.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Context window compression\", \"objective\": \"Practice trimming overloaded prompts.\", \"instructions\": [\"Give teams the overloaded prompt from the example folder.\", \"They must compress it to under 100 words while keeping all essential context.\", \"Compare compressed versions and discuss what was safe to remove.\"], \"expected_outcome\": \"Students can identify essential vs unnecessary context in a prompt.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-02\", \"03-context-compression\")}\n ],\n \"assignments\": [\n {\"title\": \"Personal AI study assistant prompt pack\", \"fields\": {\n \"problem_statement\": \"Create a prompt pack you can reuse for study, writing, revision, and planning.\",\n \"requirements\": [\"At least five prompts\", \"Include role, task, context, constraints, and format\", \"At least one prompt must be revised after testing\"],\n \"submission_expectations\": [\"Submit as Markdown or document\", \"Label each prompt clearly\"],\n \"evaluation_criteria\": [\"Usefulness\", \"Clarity\", \"Reusability\", \"Quality of iteration\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Show live weak-to-strong examples rather than only describing prompting.\",\n \"Make students explain why each prompt improvement matters.\",\n \"Keep verification connected to every example.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-02\",\n \"week_id\": \"week-02\",\n \"type\": \"prompt-editor\",\n \"title\": \"Prompt Improvement Lab\",\n \"instructions\": \"Rewrite weak prompts using role, task, context, constraints, output format, and examples.\",\n \"items\": [{\"label\": \"Role\"}, {\"label\": \"Task\"}, {\"label\": \"Context\"}, {\"label\": \"Constraints\"}, {\"label\": \"Output Format\"}],\n \"success_criteria\": \"Produce a clearer study prompt that leads to a more useful AI answer.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-02\",\n \"week_id\": \"week-02\",\n \"title\": \"Prompt Engineering Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w2-q1\", \"prompt\": \"What is a prompt?\", \"options\": [\"A file type\", \"An instruction given to AI\", \"A database rule\", \"A browser setting\"], \"answer_index\": 1, \"explanation\": \"A prompt is the instruction or input given to an AI system.\"},\n {\"id\": \"w2-q2\", \"prompt\": \"Which prompt is stronger?\", \"options\": [\"Help me study\", \"You are a friendly tutor. Explain fractions to a grade 8 learner using simple examples and 3 practice questions.\", \"Do something better\", \"Explain anything\"], \"answer_index\": 1, \"explanation\": \"The stronger prompt includes role, audience, context, and output expectations.\"},\n {\"id\": \"w2-q3\", \"prompt\": \"Why is verification still needed even with a strong prompt?\", \"options\": [\"Because prompts are illegal\", \"Because AI can still be wrong or incomplete\", \"Because AI ignores all details\", \"Because constraints remove meaning\"], \"answer_index\": 1, \"explanation\": \"A strong prompt improves quality but does not guarantee accuracy.\"},\n {\"id\": \"w2-q4\", \"prompt\": \"What is a context window?\", \"options\": [\"The amount of information a model can consider at one time\", \"A browser theme\", \"A way to delete tokens\", \"A file folder\"], \"answer_index\": 0, \"explanation\": \"The context window is how much prompt and conversation material the model can work with at once.\"},\n {\"id\": \"w2-q5\", \"prompt\": \"What does temperature mainly influence?\", \"options\": [\"How creative or predictable the output is\", \"Internet speed\", \"Database size\", \"Screen brightness\"], \"answer_index\": 0, \"explanation\": \"Temperature changes how conservative or varied the next-token choices can be.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"What makes a prompt more useful for learning, and what is one way you would verify the answer?\",\n \"placeholder\": \"A useful prompt gives role, task, context, and output format. I would verify key facts by checking my notes or a trusted source.\"\n },\n \"teacher_notes\": [\n \"Turn prompting into an iterative workshop, not a lecture about templates.\",\n \"Always compare at least one weak and one strong answer live.\"\n ]\n },\n \"week-03\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Understand datasets, features, labels, training data, testing data, and prediction.\",\n \"Recognize how recommendation and classification systems work at a simple level.\",\n \"Explain how bias or poor data can weaken ML results.\",\n \"Understand regression and neural networks at a beginner-friendly level.\"\n ],\n \"expected_outcomes\": [\n \"Students can identify features and labels.\",\n \"Students can discuss fairness and bias in simple ML terms.\",\n \"Students can explain the difference between classification and regression.\"\n ]\n },\n \"lesson\": {\n \"id\": \"lecture-3\",\n \"week_id\": \"week-03\",\n \"title\": \"Data Thinking and Machine Learning Basics\",\n \"estimated_minutes\": 120,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should understand how AI systems use data, how simple predictions work, and why poor data creates poor AI results.\"},\n {\"type\": \"objective-list\", \"title\": \"ML Thinking Skills\", \"items\": [\n {\"label\": \"Data\", \"description\": \"Understand datasets and why examples matter.\"},\n {\"label\": \"Prediction\", \"description\": \"Explain features, labels, and outcomes.\"},\n {\"label\": \"Bias\", \"description\": \"Recognize fairness and quality issues in data.\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"Core ML Language\", \"items\": [\n {\"label\": \"Feature\", \"description\": \"An input used by the model.\"},\n {\"label\": \"Label\", \"description\": \"The answer the model is trying to predict.\"},\n {\"label\": \"Training Data\", \"description\": \"Examples used to teach the model.\"},\n {\"label\": \"Testing Data\", \"description\": \"Examples used to check whether learning worked.\"}\n ]},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"This lecture should make prediction systems feel understandable rather than mysterious.\"}\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"learning_objectives\": [\n \"Understand basic machine learning language.\",\n \"Use data thinking to explain prediction systems.\",\n \"Discuss how bias and poor-quality data affect AI.\",\n \"Recognize when ML systems use regression or neural-network style learning.\",\n \"Explain evaluation and testing as part of checking whether an AI system is actually useful.\"\n ],\n \"expected_outcomes\": [\n \"Students can interpret a simple dataset.\",\n \"Students can connect data quality to AI quality.\",\n \"Students can describe simple numeric prediction and layered pattern-learning ideas.\",\n \"Students can explain why testing should include unseen examples and practical checks.\"\n ]\n },\n \"concepts\": [\n _concept(\"Data and Dataset\", \"Data is information collected about something. A dataset is an organized collection of data.\", \"AI systems depend on data as raw material.\", \"A student survey becomes a dataset for analysis or prediction.\", [\"Survey rows\", \"Ratings\", \"Reviews\"], [\"Thinking data means only numbers\", \"Ignoring structure and quality\"], [\"Show concrete datasets\", \"Discuss what each row and column means\"]),\n _concept(\"Features and Labels\", \"A feature is an input used by the model. A label is the answer the model is trying to predict.\", \"These are the most important beginner terms for understanding ML prediction.\", \"A recommendation model may use previous choices as features to predict the next likely choice.\", [\"Email words\", \"Attendance rate\", \"Purchase history\"], [\"Confusing inputs with outputs\", \"Using unreliable labels\"], [\"Name features clearly\", \"Check whether labels are trustworthy\"]),\n _concept(\"Training Data and Testing Data\", \"Training data teaches the model. Testing data checks if the model learned well.\", \"Students need to know that learning and checking are not the same step.\", \"A model is trained on past examples and then tested on unseen examples.\", [\"Train split\", \"Test split\", \"Validation habit\"], [\"Testing on the same data used for training\", \"Assuming memorization means understanding\"], [\"Separate teaching from evaluation\", \"Explain unseen examples\"]),\n _concept(\"AI Evaluation and Testing\", \"AI evaluation and testing means checking whether a system works well enough for its purpose by using unseen examples, edge cases, and clear criteria such as correctness, fairness, and usefulness.\", \"Students should learn that a model or workflow is not good just because it produces impressive-looking output once.\", \"A class compares how an AI system handles normal examples, unusual examples, and tricky edge cases before deciding whether it is reliable enough to use.\", [\"Test with new examples\", \"Check weak cases\", \"Use clear scoring criteria\"], [\"Judging the system from one lucky demo\", \"Testing only the easiest examples\"], [\"Test normal and edge cases\", \"Decide in advance what counts as success\"]),\n _concept(\"Classification, Prediction, and Recommendation\", \"Classification sorts items into categories. Prediction estimates an outcome. Recommendation suggests likely useful items.\", \"These are common ML patterns students already encounter online.\", \"A movie app recommends films, a spam filter classifies messages, and a system predicts exam risk.\", [\"Spam vs not spam\", \"Pass/fail risk\", \"Suggested videos\"], [\"Thinking all AI tasks are the same\", \"Ignoring confidence and uncertainty\"], [\"Compare the three task types explicitly\", \"Use familiar applications\"]),\n _concept(\"Accuracy, Bias, and Overfitting\", \"Accuracy means how often the model is right. Bias happens when data is unfair or one-sided. Overfitting happens when the model learns the training examples too narrowly.\", \"Students should know that performance and fairness both matter.\", \"A model trained on incomplete examples works poorly for underrepresented cases.\", [\"Unbalanced data\", \"Misleadingly high training performance\", \"Unfair recommendations\"], [\"Thinking high accuracy solves everything\", \"Ignoring fairness\"], [\"Discuss performance and fairness together\", \"Use simple examples of one-sided data\"]),\n _concept(\"Regression in Machine Learning\", \"Regression is a machine learning task that predicts a number rather than a category.\", \"Students often hear prediction and assume everything is classification. Regression clarifies that some models estimate values like price, score, or time.\", \"A model predicts exam score, delivery time, or house rent from input features.\", [\"Price prediction\", \"Score prediction\", \"Demand forecasting\"], [\"Thinking regression means repeating backwards\", \"Treating every ML task as pass/fail\"], [\"Compare numeric prediction with category prediction\", \"Use familiar examples like marks or cost\"]),\n _concept(\"Neural Networks\", \"A neural network is a machine learning system made of layers that learn patterns from data by adjusting many internal weights.\", \"Students need a simple bridge from basic ML to modern AI systems such as image models and large language models.\", \"An image classifier learns patterns such as shapes and textures through many training examples.\", [\"Image recognition\", \"Speech recognition\", \"Large language models\"], [\"Thinking neural networks copy the human brain exactly\", \"Assuming more layers automatically means better results\"], [\"Teach them as layered pattern learners\", \"Keep the explanation conceptual rather than mathematical\"]),\n _concept(\"Precision and Recall\", \"Precision is the fraction of positive predictions that are actually correct. Recall is the fraction of actual positives that the model correctly identified. High precision means few false alarms. High recall means few missed cases. Both metrics matter when accuracy alone hides how a model fails.\", \"Students encounter precision and recall in real ML evaluation reports, job descriptions, and tools. Accuracy alone can be misleadingly high when one class dominates the dataset.\", \"A spam filter with high precision rarely marks real emails as spam, but with low recall it misses many actual spam messages. A medical diagnosis model needs high recall so it does not miss sick patients.\", [\"Spam detection trade-off\", \"Medical diagnosis sensitivity\", \"Search result relevance\"], [\"Thinking accuracy is always the right metric\", \"Assuming high precision and high recall are always both achievable easily\"], [\"Show the spam example to make precision and recall concrete\", \"Connect these metrics to fairness: low recall on a group means that group is underserved\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"Student-Friendly Definitions\", \"fields\": {\"definitions\": [\n \"Data is information collected about something.\",\n \"A feature is an input used by the model.\",\n \"A label is the answer the model is trying to predict.\",\n \"Training data teaches the model.\",\n \"Testing data checks if the model learned well.\",\n \"Bias happens when the data is unfair, incomplete, or one-sided.\",\n \"Regression predicts a number such as marks or price.\",\n \"Neural networks learn layered patterns from data.\"\n ]}}\n ],\n \"diagrams\": [\n {\"title\": \"Simple ML Pipeline\", \"fields\": {\"summary\": \"Future visual should show collect data -> choose features and labels -> train -> test -> use prediction.\"}}\n ],\n \"activities\": [\n {\"title\": \"Manual classification game\", \"objective\": \"Experience the logic of sorting examples into categories.\", \"instructions\": [\"Give a set of examples.\", \"Ask students to classify them using visible rules or patterns.\", \"Discuss why edge cases are difficult.\"], \"expected_outcome\": \"Students understand basic classification thinking.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-03\", \"02-classification-regression\")},\n {\"title\": \"Train your friend like an AI\", \"objective\": \"Simulate learning from examples.\", \"instructions\": [\"One student acts as the model.\", \"Others provide labeled examples.\", \"The student predicts the next case.\"], \"expected_outcome\": \"Students understand training through examples.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Classroom survey data collection\", \"objective\": \"Create a mini dataset.\", \"instructions\": [\"Open the study-habits.csv file from the example folder.\", \"Identify the feature columns and the label column.\", \"Discuss: what could a model predict from this data, and where might bias appear?\"], \"expected_outcome\": \"Students connect a real dataset to ML concepts — features, labels, and fairness.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-03\", \"01-study-dataset\")},\n {\"title\": \"Recommendation system on paper\", \"objective\": \"Understand recommendations without code.\", \"instructions\": [\"Create a simple preference table.\", \"Use it to suggest an item to a user.\", \"Explain why the recommendation was made.\"], \"expected_outcome\": \"Students see recommendation as data-based reasoning.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Bias in dataset discussion\", \"objective\": \"Connect fairness and data quality.\", \"instructions\": [\"Open the biased-datasets.md file from the example folder.\", \"For each scenario, identify who is missing, what bad outcome could follow, and one fix.\", \"Discuss: when should a biased system be paused rather than deployed?\"], \"expected_outcome\": \"Students recognise that bad or incomplete data creates unfair results.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-03\", \"03-bias-inspection\")},\n {\"title\": \"Regression estimate challenge\", \"objective\": \"Differentiate classification from numeric prediction.\", \"instructions\": [\"Open the task-cards.csv from the classification-regression folder.\", \"Sort each task into classification, regression, or recommendation.\", \"Defend two borderline choices to the class.\"], \"expected_outcome\": \"Students can separate regression tasks from classification and recommendation tasks.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-03\", \"02-classification-regression\")}\n ],\n \"assignments\": [\n {\"title\": \"Small dataset reflection\", \"fields\": {\n \"problem_statement\": \"Collect a small dataset and explain what predictions could be made from it.\",\n \"requirements\": [\"At least 10 rows of data\", \"Name possible features\", \"Name at least one possible label or prediction target\", \"Discuss one possible bias or weakness\"],\n \"submission_expectations\": [\"Submit as table plus explanation\"],\n \"evaluation_criteria\": [\"Clarity\", \"Correct use of terms\", \"Quality of reasoning\", \"Awareness of bias\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Use paper and human examples before showing technical ML language.\",\n \"Keep overfitting intuitive: memorizing the training set is not the same as generalizing well.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-03\",\n \"week_id\": \"week-03\",\n \"type\": \"match-pairs\",\n \"title\": \"Features and Labels Workshop\",\n \"instructions\": \"Match data examples with whether they act as features, labels, or outcomes in a simple prediction task.\",\n \"items\": [{\"label\": \"Feature\"}, {\"label\": \"Label\"}, {\"label\": \"Training Data\"}, {\"label\": \"Testing Data\"}],\n \"success_criteria\": \"Students can correctly explain how a simple dataset supports classification or prediction.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-03\",\n \"week_id\": \"week-03\",\n \"title\": \"Data and ML Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w3-q1\", \"prompt\": \"What is a feature?\", \"options\": [\"A prediction target\", \"An input used by the model\", \"A file format\", \"A database user\"], \"answer_index\": 1, \"explanation\": \"Features are the input signals used to make a prediction.\"},\n {\"id\": \"w3-q2\", \"prompt\": \"What does testing data do?\", \"options\": [\"Teaches the model\", \"Checks whether the model learned well\", \"Deletes weak examples\", \"Stores API calls\"], \"answer_index\": 1, \"explanation\": \"Testing data helps measure whether the model performs well on unseen cases.\"},\n {\"id\": \"w3-q3\", \"prompt\": \"Why is bias a concern?\", \"options\": [\"Because it makes models too colorful\", \"Because unfair or one-sided data can create unfair outputs\", \"Because it always improves accuracy\", \"Because it removes training data\"], \"answer_index\": 1, \"explanation\": \"Bias can make model outputs unfair, distorted, or weak for some groups or cases.\"},\n {\"id\": \"w3-q4\", \"prompt\": \"What does regression predict?\", \"options\": [\"A number or continuous value\", \"Only categories\", \"Only file names\", \"Only passwords\"], \"answer_index\": 0, \"explanation\": \"Regression predicts values such as marks, cost, or time.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"Choose one small dataset idea and explain what features, labels, and risks it might include.\",\n \"placeholder\": \"A study habits dataset could use attendance and revision hours as features, exam outcome as the label, and may be biased if only one type of student is represented.\"\n },\n \"teacher_notes\": [\n \"Use many concrete examples because dataset language can feel abstract at first.\",\n \"Bias should be taught as a real design problem, not just a theoretical warning.\"\n ]\n },\n \"week-04\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Use computational thinking to break problems into steps.\",\n \"Understand variables, conditions, loops, functions, and lists.\",\n \"Connect Python basics to automation and simple AI-enabled logic.\",\n \"Understand local model use, open-source model workflows, and simple tooling such as Ollama.\"\n ],\n \"expected_outcomes\": [\n \"Students can explain and write simple Python logic.\",\n \"Students can extend a rule-based chatbot or simple automation flow.\",\n \"Students can explain what it means to run an open-source model locally.\"\n ]\n },\n \"lesson\": {\n \"id\": \"lecture-4\",\n \"week_id\": \"week-04\",\n \"title\": \"Python, Automation, and Computational Thinking\",\n \"estimated_minutes\": 120,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should learn basic coding and logical thinking so they can understand how AI apps and simple automation workflows are built.\"},\n {\"type\": \"objective-list\", \"title\": \"Computational Thinking Skills\", \"items\": [\n {\"label\": \"Decomposition\", \"description\": \"Break a problem into smaller steps.\"},\n {\"label\": \"Python Basics\", \"description\": \"Use variables, conditions, loops, functions, and lists.\"},\n {\"label\": \"Automation\", \"description\": \"Connect logic to simple software actions and chat flows.\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"Python Basics\", \"items\": [\n {\"label\": \"Variable\", \"description\": \"Stores information.\"},\n {\"label\": \"Condition\", \"description\": \"Lets a program make decisions.\"},\n {\"label\": \"Loop\", \"description\": \"Repeats an action.\"},\n {\"label\": \"Function\", \"description\": \"Reusable code for a repeated task.\"}\n ]},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"The goal is not advanced software engineering. The goal is enough coding logic to understand AI apps and automation workflows.\"}\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"learning_objectives\": [\n \"Use computational thinking and Python basics.\",\n \"Connect simple code with rule-based automation.\",\n \"Build confidence for future AI workflows and lightweight apps.\",\n \"Introduce practical local-model workflows without changing the app structure.\"\n ],\n \"expected_outcomes\": [\n \"Students can complete simple Python exercises.\",\n \"Students can improve a basic chatbot or automation idea.\",\n \"Students can compare local and cloud model usage at a high level.\"\n ]\n },\n \"concepts\": [\n _concept(\"Computational Thinking\", \"Computational thinking means breaking a problem into smaller steps.\", \"It is the mindset behind both programming and workflow design.\", \"A study scheduling problem becomes inputs, decisions, reminders, and outputs.\", [\"Decomposition\", \"Step planning\", \"Repeatable logic\"], [\"Trying to solve everything at once\", \"Skipping step order\"], [\"Write the process first\", \"Use plain language before code\"]),\n _concept(\"Variables and Conditions\", \"A variable stores information. A condition helps a program make decisions.\", \"These are the foundations of automation and simple app logic.\", \"A chatbot stores the user choice and chooses a response using a condition.\", [\"Marks\", \"User choice\", \"If/else rules\"], [\"Treating stored values and decisions as the same thing\", \"Writing unclear decision paths\"], [\"Use real examples like names, choices, and scores\", \"Trace the logic slowly\"]),\n _concept(\"Loops and Functions\", \"A loop repeats an action. A function is reusable code.\", \"Students need these ideas to understand how programs avoid repetition and structure logic cleanly.\", \"A weekly revision reminder repeats for several tasks, while a function formats messages consistently.\", [\"Repeat tasks\", \"Reusable greeting function\", \"Simple helpers\"], [\"Repeating code manually\", \"Ignoring when a task repeats\"], [\"Show repetition visually\", \"Turn repeated actions into reusable blocks\"]),\n _concept(\"Lists and Simple App Logic\", \"Lists store multiple items and help programs manage collections.\", \"Many beginner apps and workflows depend on keeping track of items, questions, or responses.\", \"A quiz app stores questions in a list and shows them one by one.\", [\"Task lists\", \"Question lists\", \"Response options\"], [\"Treating lists like single values\", \"Hardcoding every step separately\"], [\"Use small practical examples\", \"Connect lists to real student tasks\"]),\n _concept(\"Automation and Rule-Based Chatbots\", \"Automation means letting software perform repetitive tasks. A rule-based chatbot replies using fixed rules.\", \"This bridges programming basics with how students can build simple AI-enabled systems.\", \"A study helper bot responds differently based on selected subjects or deadlines.\", [\"FAQ bot\", \"Reminder bot\", \"Simple calculator\"], [\"Calling any rule-based chatbot true AI\", \"Ignoring edge cases\"], [\"Explain the difference between rule-based and learning-based systems\", \"Keep examples small and useful\"]),\n _concept(\"Open-Source Models, Ollama, and Local Inference\", \"Open-source models are AI models whose weights or code can be used more openly than closed frontier systems. Ollama is a tool that helps run supported models locally on your own machine. Local inference means the model generates output on your device instead of a remote cloud service.\", \"Students should know there are practical ways to explore AI systems beyond browser chat apps.\", \"A student runs a small local model with Ollama to test prompts privately on a laptop.\", [\"Local chatbot\", \"Offline experimentation\", \"Private note summarization\"], [\"Assuming local models are always equal to frontier models\", \"Ignoring hardware limits\"], [\"Compare privacy, cost, speed, and quality\", \"Start with small models and realistic expectations\"]),\n _concept(\"Calling an AI API from Python\", \"An AI API is a web service that accepts prompts and returns model-generated responses. Python can call an API using an SDK such as the Anthropic library in a few lines: create a client, write a prompt, call the API, and print the result. API keys must always be loaded from environment variables, never hard-coded.\", \"This is the bridge between understanding AI and building with it. Students who learn to call an API can integrate AI into any Python project — a study assistant, quiz generator, or summariser.\", \"A student writes a 15-line Python script that sends a question to Claude and prints the answer, then extends it into a personal study assistant that accepts any topic.\", [\"Study helper script\", \"Quiz question generator\", \"Note summariser\", \"Automated flashcard maker\"], [\"Pasting API keys directly into shared code\", \"Not handling errors when the API is unavailable or the key is wrong\"], [\"Always load API keys from environment variables, never hard-code them\", \"Start with small max_tokens limits to manage cost while learning\", \"Use the starter file in content/activity-examples/week-04/05-api-basics/\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"Student-Friendly Definitions\", \"fields\": {\"definitions\": [\n \"Computational thinking means breaking a problem into smaller steps.\",\n \"A variable stores information.\",\n \"A condition helps a program make decisions.\",\n \"A loop repeats an action.\",\n \"A function is reusable code.\",\n \"Automation means letting software perform repetitive tasks.\",\n \"Open-source models can often be run locally.\",\n \"Ollama is a practical tool for running supported models on a local machine.\"\n ]}}\n ],\n \"diagrams\": [\n {\"title\": \"Mini App Logic Flow\", \"fields\": {\"summary\": \"Future visual should show input -> condition -> action -> output for a basic chatbot or quiz app.\"}}\n ],\n \"activities\": [\n {\"title\": \"Human robot instruction game\", \"objective\": \"Practice precise instructions.\", \"instructions\": [\"One student acts as a robot.\", \"Another gives step-by-step instructions for a task.\", \"The class identifies missing or ambiguous steps.\"], \"expected_outcome\": \"Students see why exact logic matters.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Build a simple calculator\", \"objective\": \"Connect variables, input, and output.\", \"instructions\": [\"Open starter.py from the example folder.\", \"Read through the code together.\", \"Students complete the challenge: add a modulo operation and then accept user input.\"], \"expected_outcome\": \"Students see a working Python program and complete their first code edit.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-04\", \"01-calculator\")},\n {\"title\": \"Build a quiz app\", \"objective\": \"Use lists, conditions, and output.\", \"instructions\": [\"Open starter.py from the quiz-app folder.\", \"Walk through the list of questions and the loop structure.\", \"Students complete the TODO: add case-insensitive comparison, add 2 more questions, then tackle the score challenge.\"], \"expected_outcome\": \"Students build a working quiz app with a list, loop, conditions, and score.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-04\", \"02-quiz-app\")},\n {\"title\": \"Build a rule-based chatbot\", \"objective\": \"Apply decision logic.\", \"instructions\": [\"Open starter.py from the rule-chatbot folder.\", \"The bot has 2 conditions built in.\", \"Students add at least 5 more conditions: schedule, grades, absent, help, library.\"], \"expected_outcome\": \"Students build a working multi-branch chatbot and see how rule-based logic differs from AI generation.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-04\", \"03-rule-chatbot\")},\n {\"title\": \"Automate a study schedule\", \"objective\": \"Turn a repetitive task into simple logic.\", \"instructions\": [\"Open starter.py from the study-schedule folder.\", \"Students complete the print statement inside the loop.\", \"Challenge: sort tasks by duration, then group by subject.\"], \"expected_outcome\": \"Students use a list of dicts, a function, and enumerate() to build a working schedule generator.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-04\", \"04-study-schedule\")},\n {\"title\": \"Run an open-source model locally\", \"objective\": \"Understand practical local AI usage.\", \"instructions\": [\"Introduce Ollama as a local model runner.\", \"Compare what changes when the model runs on-device instead of in the cloud.\", \"Discuss privacy, hardware limits, and where local models are useful.\"], \"expected_outcome\": \"Students understand local inference as a practical option for lightweight AI workflows.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"Call an AI API from Python\", \"objective\": \"Connect Python code to a live AI model via the Anthropic SDK.\", \"instructions\": [\"Open starter.py from the api-basics folder.\", \"Walk through the 4 steps: create client, write prompt, call API, print result.\", \"Students run it with the class API key, change the prompt, then complete Challenge 3: accept user input.\"], \"expected_outcome\": \"Students send their first API call and understand client, model, max_tokens, and the prompt-response loop.\", \"estimated_time\": \"25 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-04\", \"05-api-basics\")}\n ],\n \"assignments\": [\n {\"title\": \"Improve the chatbot\", \"fields\": {\n \"problem_statement\": \"Extend the basic chatbot by adding at least five more responses or branches.\",\n \"requirements\": [\"Add at least five new responses\", \"Use conditions clearly\", \"Make the bot useful for study or school questions\"],\n \"submission_expectations\": [\"Submit code or pseudocode plus short explanation\"],\n \"evaluation_criteria\": [\"Logic quality\", \"Clarity\", \"Usefulness\", \"Correct use of Python basics\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Keep Python examples short and confidence-building.\",\n \"Always connect code back to real workflows and AI-enabled systems.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-04\",\n \"week_id\": \"week-04\",\n \"type\": \"flow-builder\",\n \"title\": \"Rule-Based Chatbot Builder\",\n \"instructions\": \"Use variables, conditions, and responses to sketch a small chatbot or automation logic flow.\",\n \"items\": [{\"label\": \"Input\"}, {\"label\": \"Condition\"}, {\"label\": \"Response\"}, {\"label\": \"Loop\"}, {\"label\": \"Function\"}],\n \"success_criteria\": \"Students can explain how the chatbot or automation works step by step.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-04\",\n \"week_id\": \"week-04\",\n \"title\": \"Python and Automation Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w4-q1\", \"prompt\": \"What does a variable do?\", \"options\": [\"Deletes files\", \"Stores information\", \"Finds embeddings\", \"Connects APIs\"], \"answer_index\": 1, \"explanation\": \"A variable stores a value or piece of information.\"},\n {\"id\": \"w4-q2\", \"prompt\": \"What is a condition used for?\", \"options\": [\"To repeat forever\", \"To make a decision in code\", \"To color the screen\", \"To compress data\"], \"answer_index\": 1, \"explanation\": \"Conditions allow a program to choose what happens next.\"},\n {\"id\": \"w4-q3\", \"prompt\": \"What is automation?\", \"options\": [\"A random response\", \"Letting software perform repetitive tasks\", \"A kind of database\", \"A network cable\"], \"answer_index\": 1, \"explanation\": \"Automation means software carries out repeatable tasks with less manual work.\"},\n {\"id\": \"w4-q4\", \"prompt\": \"What does it mean to run a model locally?\", \"options\": [\"The model generates output on your own device instead of a remote service\", \"The model only works in one classroom\", \"The model stops using tokens\", \"The model becomes a spreadsheet\"], \"answer_index\": 0, \"explanation\": \"Local inference means the computation happens on your own machine.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"Describe one repetitive student task you could automate using simple logic or Python.\",\n \"placeholder\": \"I could automate a study schedule by storing tasks in a list, checking deadlines, and printing a daily plan.\"\n },\n \"teacher_notes\": [\n \"Students should leave feeling capable, not intimidated.\",\n \"A working tiny chatbot is more valuable than a long lecture about syntax.\"\n ]\n },\n \"week-05\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Understand how RAG grounds AI in trusted knowledge.\",\n \"Understand retrieval, semantic search, embeddings, vector databases, and knowledge bases.\",\n \"Understand MCP as a standard way for AI apps to connect with tools, resources, prompts, files, APIs, and external systems.\",\n \"Compare RAG with fine-tuning and compare agents with chatbots.\"\n ],\n \"expected_outcomes\": [\n \"Students can explain RAG in steps.\",\n \"Students can explain where MCP is useful in AI-powered systems.\",\n \"Students can justify when to use retrieval, local models, or tool-driven agents.\"\n ]\n },\n \"lesson\": {\n \"id\": \"lecture-5\",\n \"week_id\": \"week-05\",\n \"title\": \"RAG, MCP, and AI-Powered Systems\",\n \"estimated_minutes\": 120,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should understand how modern AI systems connect with external knowledge, tools, files, databases, and applications.\"},\n {\"type\": \"objective-list\", \"title\": \"System Design Concepts\", \"items\": [\n {\"label\": \"RAG\", \"description\": \"Ground AI answers in trusted knowledge.\"},\n {\"label\": \"Semantic Search\", \"description\": \"Retrieve meaning-based matches, not just exact words.\"},\n {\"label\": \"MCP\", \"description\": \"Connect AI apps to tools, resources, and prompts through a shared protocol.\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"AI System Components\", \"items\": [\n {\"label\": \"Knowledge Base\", \"description\": \"Trusted information source for retrieval.\"},\n {\"label\": \"Vector Database\", \"description\": \"Stores meaning-based representations for search.\"},\n {\"label\": \"Tools\", \"description\": \"Actions the AI can perform.\"},\n {\"label\": \"Resources\", \"description\": \"Data or files the AI can access.\"}\n ]},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"This lecture moves beyond using AI tools and into understanding how AI-powered systems are connected and grounded.\"}\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"learning_objectives\": [\n \"Explain RAG, semantic search, embeddings, and knowledge grounding simply.\",\n \"Explain MCP as a connector standard for AI tools and systems.\",\n \"Design a school-style AI assistant with knowledge, tools, and safety rules.\",\n \"Understand how model choice, agents, and retrieval strategies affect system behavior.\"\n ],\n \"expected_outcomes\": [\n \"Students can diagram a simple AI-powered system.\",\n \"Students can separate normal generation from grounded generation.\",\n \"Students can compare RAG, fine-tuning, chatbots, and agents at a high level.\"\n ]\n },\n \"concepts\": [\n _concept(\"Retrieval and Semantic Search\", \"Retrieval means finding useful information before answering. Semantic search finds meaning, not just exact words.\", \"This helps students understand how AI systems can be more accurate when grounded in documents.\", \"A school assistant retrieves the best FAQ section before generating an answer.\", [\"FAQ search\", \"Document retrieval\", \"Meaning-based matching\"], [\"Thinking retrieval means simple keyword search only\", \"Assuming search alone is enough\"], [\"Explain relevance before generation\", \"Contrast exact-word search with meaning-based search\"]),\n _concept(\"Embeddings and Vector Databases\", \"Embeddings turn text into numbers so computers can compare meaning. A vector database stores searchable meaning-based representations.\", \"These are the building blocks behind semantic retrieval systems.\", \"A set of school policies is converted into embeddings so questions can find the most relevant passages.\", [\"Document chunks\", \"Similarity search\", \"Meaning vectors\"], [\"Treating embeddings as readable text\", \"Ignoring that vector search is still only as good as the source material\"], [\"Teach these conceptually, not mathematically\", \"Use analogies like 'meaning fingerprints'\"]),\n _concept(\"RAG\", \"Retrieval-Augmented Generation is a method where an AI system first retrieves relevant information from a trusted knowledge source and then uses that information to generate a more accurate answer.\", \"RAG is a practical pattern that helps reduce unsupported answers.\", \"A school FAQ bot retrieves policy text and then answers a student question using that material.\", [\"Knowledge-grounded Q&A\", \"Document assistant\", \"Research helper\"], [\"Thinking RAG guarantees truth\", \"Skipping the quality of the knowledge base\"], [\"Explain the 5-step flow clearly\", \"Stress source quality and review\"]),\n _concept(\"Chunking, Reranking, Citations, and Freshness\", \"Chunking means splitting source documents into smaller searchable pieces. Reranking means re-ordering retrieved results to keep the most useful ones on top. Citations show where an answer came from. Freshness means keeping the knowledge source updated so retrieval stays useful.\", \"These are the practical details that make real RAG systems more trustworthy.\", \"A class assistant chunks lecture notes, reranks matches, cites the matching file section, and updates its source set after each new class.\", [\"Document chunks\", \"Top-result refinement\", \"Source links\", \"Updated class notes\"], [\"Using chunks that are too large or too small\", \"Returning answers without source traces\", \"Ignoring outdated knowledge files\"], [\"Tune chunk size for the source type\", \"Show citations in answers\", \"Keep the knowledge base updated\"]),\n _concept(\"RAG vs Fine-Tuning\", \"RAG improves answers by retrieving external information at question time. Fine-tuning changes the model itself by training it further on a specific dataset or style.\", \"Students should know that not every knowledge problem requires retraining a model.\", \"A school assistant usually benefits from RAG over fine-tuning because policies change and should stay editable in documents.\", [\"Fresh document updates\", \"Style adaptation\", \"Knowledge grounding\"], [\"Thinking fine-tuning is the default answer to every problem\", \"Using RAG without maintaining source quality\"], [\"Use RAG for changing knowledge\", \"Use fine-tuning when behavior or style must change consistently\"]),\n _concept(\"MCP\", \"Model Context Protocol is an open protocol that standardizes how AI applications connect with external data sources, tools, prompts, and resources.\", \"MCP introduces students to modern AI system connectivity without requiring them to build a complex integration stack.\", \"An AI client connects to an MCP server that exposes file resources, reusable prompts, and actions like search or scheduling.\", [\"Tools\", \"Resources\", \"Prompts\"], [\"Thinking MCP is only one tool\", \"Confusing protocol with a single product\"], [\"Teach MCP as a standard connector idea\", \"Use school assistant examples\"]),\n _concept(\"AI Tools, Resources, APIs, and Agents\", \"AI agents can reason, use tools, and complete multi-step tasks. APIs connect software systems. Tools perform actions, resources provide readable context, and prompts give reusable instructions.\", \"This ties together system design thinking for AI-enabled builders.\", \"A school assistant uses a knowledge base, a timetable API, and a reminder tool to answer student questions.\", [\"School assistant\", \"Research helper\", \"Task assistant\"], [\"Treating an agent like a normal chatbot\", \"Ignoring safety rules for tools\"], [\"Always include user roles and safety rules\", \"Mark what the system can read vs what it can do\"]),\n _concept(\"Agents vs Chatbots\", \"A chatbot mainly responds to messages. An AI agent can plan steps, use tools, retrieve resources, and continue work toward a goal.\", \"Students need this distinction before they hear modern AI systems described as agents.\", \"A chatbot answers a question, while an agent may search documents, check a timetable, and then send a structured answer.\", [\"FAQ bot\", \"Research assistant\", \"Task workflow agent\"], [\"Calling every chatbot an agent\", \"Giving agents tool access without safety checks\"], [\"Define the goal, tools, and review points clearly\", \"Use human approval for sensitive actions\"]),\n _concept(\"Multimodal and Document AI Workflows\", \"Multimodal AI workflows combine text with images, screenshots, PDFs, diagrams, audio, or scanned documents. Document AI uses OCR and layout understanding to turn files into structured information that an AI system can reason over.\", \"Many real school and workplace systems must handle files, screenshots, and forms rather than plain text only.\", \"A class assistant reads a PDF timetable, extracts dates from a scanned notice, and answers questions using those files as input.\", [\"PDF Q&A\", \"OCR from forms\", \"Image-plus-text reasoning\"], [\"Assuming document extraction is always perfect\", \"Ignoring layout errors or OCR mistakes\"], [\"Keep a human check for extracted fields\", \"Use multimodal input only when it improves the task\"]),\n _concept(\"Frontier Models, Open-Source Models, Parameters, MoE, and AI Cost\", \"Frontier models are leading high-capability models trained at very large scale. Open-source models are more openly available to run or adapt. Parameters are the learned internal weights of a model. Mixture of Experts, or MoE, is an architecture where only some expert parts of the model are activated for a given task. AI cost includes tokens, hardware, retrieval infrastructure, and human review time.\", \"These ideas help students talk about model scale, cost, openness, and system choice more realistically.\", \"A classroom team compares using a hosted frontier model for quality versus a smaller local open-source model for privacy and cost.\", [\"Hosted premium models\", \"Local open models\", \"Sparse expert routing\"], [\"Thinking parameter count alone determines usefulness\", \"Assuming bigger always means better for every task\"], [\"Compare capability, cost, privacy, and hardware needs together\", \"Treat MoE as an efficiency design idea, not magic\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"RAG in 5 Steps\", \"fields\": {\"steps\": [\n \"User asks a question.\",\n \"System searches a trusted knowledge source.\",\n \"Relevant information is retrieved.\",\n \"AI uses that information to generate an answer.\",\n \"The answer can include references or citations.\"\n ]}},\n {\"title\": \"MCP in Simple Terms\", \"fields\": {\"summary\": \"MCP lets AI clients connect to MCP servers that expose tools, resources, and prompts in a structured way.\"}},\n {\"title\": \"Model Choice Notes\", \"fields\": {\"summary\": \"Use RAG for changing knowledge, fine-tuning for behavior or style shifts, and compare frontier versus open-source models using cost, privacy, and quality.\"}}\n ],\n \"diagrams\": [\n {\"title\": \"RAG Flow\", \"fields\": {\"summary\": \"Future visual should show user -> retrieval -> trusted documents -> generation -> grounded answer.\"}},\n {\"title\": \"MCP Connection Model\", \"fields\": {\"summary\": \"Future visual should show AI client connecting to tools, resources, and prompt templates through an MCP server.\"}}\n ],\n \"activities\": [\n {\"title\": \"Paper-based RAG simulation\", \"objective\": \"Experience grounded answering without code.\", \"instructions\": [\"Use the school-faq.md knowledge base from the example folder as your trusted source.\", \"Answer 3 questions first from memory, then answer them again by retrieving the right section from the FAQ.\", \"Compare quality and confidence between the memory-only and grounded answers.\"], \"expected_outcome\": \"Students directly experience how grounding changes answer reliability.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-05\", \"01-knowledge-base\")},\n {\"title\": \"Design a RAG for the class file system\", \"objective\": \"Apply retrieval ideas to a realistic school document setup.\", \"instructions\": [\"Open the filesystem-template.md from the example folder.\", \"Fill in: knowledge sources, chunking strategy, retrieval rules, citation format, and freshness triggers.\", \"Present your design and explain one decision that surprised you.\"], \"expected_outcome\": \"Students can design a filesystem-based RAG workflow with chunking, citations, and update logic.\", \"estimated_time\": \"25 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-05\", \"02-rag-design\")},\n {\"title\": \"Mini knowledge base creation\", \"objective\": \"Design source material for RAG.\", \"instructions\": [\"Students assemble a small school or study knowledge base.\", \"Organize sections clearly.\", \"Prepare example questions.\"], \"expected_outcome\": \"Students connect source quality to answer quality.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"Grounded vs ungrounded answer comparison\", \"objective\": \"Compare answer quality.\", \"instructions\": [\"Answer one question normally.\", \"Answer it again using the knowledge base.\", \"Compare reliability.\"], \"expected_outcome\": \"Students see the value of retrieval and grounding.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"MCP-style tool list design\", \"objective\": \"Think like a system designer.\", \"instructions\": [\"Open the tool-blueprint-template.md from the example folder.\", \"Fill in: tool names, what each does, who can use it, and whether it is allowed or restricted.\", \"Add at least one human review checkpoint and explain why it is needed.\"], \"expected_outcome\": \"Students design a tool-connected school assistant with safety boundaries.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-05\", \"03-mcp-design\")},\n {\"title\": \"Document AI reasoning lab\", \"objective\": \"Understand multimodal and OCR-based system behavior.\", \"instructions\": [\"Use a scanned notice, form, or timetable as the source document.\", \"List what OCR could extract correctly and what may need human checking.\", \"Discuss where a multimodal model helps beyond text-only retrieval.\"], \"expected_outcome\": \"Students understand the strengths and weaknesses of document AI workflows.\", \"estimated_time\": \"20 minutes\"}\n ],\n \"assignments\": [\n {\"title\": \"Design an AI school assistant\", \"fields\": {\n \"problem_statement\": \"Design an AI school assistant that uses one knowledge base, three tools, two user roles, and safety rules.\",\n \"requirements\": [\"One knowledge base\", \"Three tools\", \"Two user roles\", \"Safety rules\", \"Simple system diagram\", \"Model choice note explaining whether the design uses a frontier or open-source model\"],\n \"submission_expectations\": [\"Submit as document or slide\"],\n \"evaluation_criteria\": [\"Clarity of system design\", \"Correct use of RAG and MCP ideas\", \"Practicality\", \"Safety awareness\", \"Reasoning about model choice and cost\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Keep the explanations conceptual and system-oriented.\",\n \"Students do not need to implement a vector database; they need to understand why grounding helps.\",\n \"Use MCP as a structured connectivity idea, not a brand-heavy topic.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-05\",\n \"week_id\": \"week-05\",\n \"type\": \"flow-builder\",\n \"title\": \"RAG and MCP System Design Lab\",\n \"instructions\": \"Map the flow between user question, knowledge retrieval, answer generation, and tools/resources exposed to the AI system.\",\n \"items\": [{\"label\": \"User Question\"}, {\"label\": \"Knowledge Base\"}, {\"label\": \"Retrieval\"}, {\"label\": \"Generation\"}, {\"label\": \"Tool\"}, {\"label\": \"Resource\"}],\n \"success_criteria\": \"Students can explain where RAG helps and where MCP adds structured access to external systems.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-05\",\n \"week_id\": \"week-05\",\n \"title\": \"RAG and MCP Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w5-q1\", \"prompt\": \"What does RAG do first?\", \"options\": [\"Generates random text\", \"Retrieves relevant information from a trusted knowledge source\", \"Deletes old prompts\", \"Builds a browser\"], \"answer_index\": 1, \"explanation\": \"RAG starts by retrieving relevant material before generation.\"},\n {\"id\": \"w5-q2\", \"prompt\": \"What is semantic search?\", \"options\": [\"Exact-word matching only\", \"A way of finding meaning-based matches\", \"A file compression method\", \"A database backup tool\"], \"answer_index\": 1, \"explanation\": \"Semantic search focuses on meaning rather than only exact words.\"},\n {\"id\": \"w5-q3\", \"prompt\": \"What can MCP servers expose to AI clients?\", \"options\": [\"Only images\", \"Tools, resources, and prompts\", \"Only hardware\", \"Only passwords\"], \"answer_index\": 1, \"explanation\": \"MCP exposes structured tools, resources, and prompts to AI clients.\"},\n {\"id\": \"w5-q4\", \"prompt\": \"When is RAG usually a better fit than fine-tuning?\", \"options\": [\"When knowledge changes often and should come from documents\", \"When you want to ignore source material\", \"When you want zero tools\", \"When you want no review\"], \"answer_index\": 0, \"explanation\": \"RAG is often the better fit for changing or source-grounded knowledge.\"},\n {\"id\": \"w5-q5\", \"prompt\": \"What is the key difference between a chatbot and an agent?\", \"options\": [\"A chatbot mainly responds, while an agent can plan and use tools\", \"Agents always speak louder\", \"Chatbots use no text\", \"Agents cannot access context\"], \"answer_index\": 0, \"explanation\": \"Agents go beyond direct chatting by planning steps and using tools or resources.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"In simple words, explain how RAG and MCP could help build a safer or more useful AI assistant.\",\n \"placeholder\": \"RAG helps the assistant answer using trusted documents, while MCP helps it connect to tools, files, and prompts in a structured way.\"\n },\n \"teacher_notes\": [\n \"Teach system design through school-oriented examples to keep RAG and MCP concrete.\",\n \"Repeat that grounding improves reliability but does not remove the need for review.\"\n ]\n },\n \"week-06\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Explain plugins, rules, skills, subagents, tools, and hooks in plain language.\",\n \"Compare when each building block is used in modern AI coding agents.\",\n \"Distinguish passive guidance from active tools and event-driven automation.\",\n \"Connect Week 5 MCP learning to general tool use without repeating the protocol lesson.\"\n ],\n \"expected_outcomes\": [\n \"Students can place each building block in the right layer of an agent setup.\",\n \"Students can read a comparison table and justify design choices.\",\n \"Students can describe what should be a rule, skill, tool, hook, plugin, or subagent.\"\n ]\n },\n \"lesson\": {\n \"id\": \"lecture-6\",\n \"week_id\": \"week-06\",\n \"title\": \"Plugins, Rules, Skills, Subagents, Tools, and Hooks\",\n \"estimated_minutes\": 120,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should understand how AI coding agents are extended, guided, delegated, and automated beyond a single chat prompt.\"},\n {\"type\": \"objective-list\", \"title\": \"Building Blocks\", \"items\": [\n {\"label\": \"Plugins\", \"description\": \"Installable extension packages that add bundled capabilities.\"},\n {\"label\": \"Rules, Skills, Subagents\", \"description\": \"Guidance, specialized workflows, and delegated focused workers.\"},\n {\"label\": \"Tools\", \"description\": \"Callable actions the agent can run during a task.\"},\n {\"label\": \"Hooks\", \"description\": \"Event-driven scripts around agent lifecycle moments.\"}\n ]},\n {\"type\": \"table\", \"title\": \"Key Differences Between Agent Building Blocks\", \"items\": [\n {\"Building Block\": \"Plugins\", \"What It Is\": \"Installable extension packages for the AI environment\", \"Primary Job\": \"Add bundled capabilities such as integrations or packaged features\", \"When To Use\": \"When you want shareable, installable capability packs\", \"Key Difference\": \"Product-level extension bundles, not single prompts\"},\n {\"Building Block\": \"Rules\", \"What It Is\": \"Persistent written instructions for the agent\", \"Primary Job\": \"Shape default behavior, standards, and project conventions\", \"When To Use\": \"For always-on guidance such as coding style or safety habits\", \"Key Difference\": \"Passive guidance that steers behavior; it does not execute actions\"},\n {\"Building Block\": \"Skills\", \"What It Is\": \"Specialized workflow or domain instruction files\", \"Primary Job\": \"Teach repeatable procedures the agent can follow\", \"When To Use\": \"For task-specific know-how such as deployment or review workflows\", \"Key Difference\": \"On-demand expertise packs, not permanent environment changes\"},\n {\"Building Block\": \"Subagents\", \"What It Is\": \"Separate delegated agents for focused work\", \"Primary Job\": \"Handle parallel or specialized subtasks with their own scope\", \"When To Use\": \"When a large task should be split across focused workers\", \"Key Difference\": \"Independent workers with separate context and goals\"},\n {\"Building Block\": \"Tools\", \"What It Is\": \"Callable functions or integrations the model can invoke\", \"Primary Job\": \"Let the agent read, write, search, run commands, or call APIs\", \"When To Use\": \"When the agent must act on files, systems, or external services\", \"Key Difference\": \"Active capabilities used during a turn; Week 5 MCP taught one standardized tool protocol\"},\n {\"Building Block\": \"Hooks\", \"What It Is\": \"Event-triggered scripts around agent lifecycle moments\", \"Primary Job\": \"Automate checks or actions before or after events\", \"When To Use\": \"For guardrails such as format checks, logging, or post-edit validation\", \"Key Difference\": \"Reactive automation tied to events, not conversational reasoning\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"Core Ideas\", \"items\": []},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"MCP was covered in Week 5. This week focuses on the other ways agents are extended, guided, delegated, and automated.\"}\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"learning_objectives\": [\n \"Explain plugins, rules, skills, subagents, tools, and hooks clearly.\",\n \"Use the comparison table to justify which building block fits a scenario.\",\n \"Design a simple agent setup for a school assistant without confusing the layers.\",\n \"Explain how guardrails and permissions keep agent workflows safe and controlled.\"\n ],\n \"expected_outcomes\": [\n \"Students can distinguish guidance, action, delegation, packaging, and automation.\",\n \"Students can explain why MCP is related to tools but not the same topic as rules or hooks.\",\n \"Students can explain why tool access should be limited by permissions and review.\"\n ]\n },\n \"concepts\": [\n _concept(\"Plugins\", \"Plugins are installable extension packages that add bundled capabilities to an AI coding environment, such as integrations, packaged workflows, or product features.\", \"Students need to see that agents are not limited to plain chat; environments can be extended with installable capability packs.\", \"A class project installs a documentation plugin so the agent can browse API references while coding.\", [\"Integration packs\", \"Packaged feature bundles\", \"Shared team extensions\"], [\"Installing every plugin without a clear need\", \"Assuming a plugin replaces good rules or review\"], [\"Install only what the project needs\", \"Check permissions and trust before enabling plugins\"]),\n _concept(\"Rules\", \"Rules are persistent instructions that guide how an agent should behave across a project or workspace, such as coding standards, review habits, or safety boundaries.\", \"Rules turn repeated teacher or team expectations into always-on guidance.\", \"A class repository includes rules that require explanations in simple language, citation of sources, and human review before sharing AI output.\", [\"Project standards\", \"Safety boundaries\", \"Style conventions\"], [\"Writing vague rules that never change behavior\", \"Using rules as a substitute for testing\"], [\"Keep rules specific and actionable\", \"Review rules when the project changes\"]),\n _concept(\"Skills\", \"Skills are specialized instruction files that teach an agent how to perform a repeatable workflow or apply domain know-how when relevant.\", \"Skills make complex procedures reusable without rewriting the same prompt every time.\", \"A deployment skill tells the agent the exact review and release steps for a class web app.\", [\"Code review workflow\", \"Testing checklist skill\", \"Lesson-plan formatting skill\"], [\"Creating skills that are too broad to be useful\", \"Duplicating the same content in rules and skills\"], [\"Use skills for repeatable procedures\", \"Keep each skill focused on one job\"]),\n _concept(\"Subagents\", \"Subagents are separate delegated agents that handle focused or parallel parts of a larger task with their own context and goal.\", \"Subagents help students understand delegation without pretending one chat must do everything.\", \"A capstone team sends one subagent to research sources, another to draft UI text, and a lead agent to combine the results.\", [\"Research subagent\", \"Test-runner subagent\", \"Documentation subagent\"], [\"Creating too many subagents for a tiny task\", \"Giving subagents unclear handoff boundaries\"], [\"Split work only when specialization helps\", \"Define inputs, outputs, and review between agents\"]),\n _concept(\"Tools\", \"Tools are callable actions or integrations the agent can invoke during a task, such as reading files, searching the web, running commands, or calling APIs.\", \"Tool use is how agents move from advice to action. Week 5 already introduced MCP as one standardized way to expose tools, resources, and prompts.\", \"A study assistant uses tools to open lecture notes, search a folder, and summarize the best matching section.\", [\"File read tool\", \"Search tool\", \"Command runner\"], [\"Giving tools without permission boundaries\", \"Confusing tools with rules or hooks\"], [\"Grant the minimum tool access needed\", \"Log and review sensitive tool actions\"]),\n _concept(\"AI Guardrails and Permissions\", \"AI guardrails and permissions are the limits and checks that control what an AI system is allowed to do, what tools or data it can access, and when a human should approve the next step.\", \"Once an agent can act on files, systems, or messages, safety depends on controlled access rather than trust alone.\", \"A school assistant is allowed to read class notes and draft announcements, but it is not allowed to send messages or change files without approval.\", [\"Allowed vs blocked tools\", \"Read-only vs write access\", \"Human approval checkpoints\"], [\"Giving every tool full access by default\", \"Hiding permissions so users do not know what the agent can do\"], [\"Grant the least access needed\", \"Put approval gates before high-impact actions\"]),\n _concept(\"Hooks\", \"Hooks are event-driven scripts that run at specific lifecycle moments, such as before a tool runs, after a file is saved, or when a session starts.\", \"Hooks teach students that agent systems also need guardrails and automation around events.\", \"A project hook runs a formatting check after every code edit and blocks unsafe commands before execution.\", [\"Pre-tool guardrail\", \"Post-save formatter\", \"Session startup check\"], [\"Using hooks for business logic that belongs in the main app\", \"Creating hidden automation students do not understand\"], [\"Keep hooks small and observable\", \"Document what each hook does and when it fires\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"Week 5 Connection\", \"fields\": {\"summary\": \"Week 5 covered MCP as a protocol for tools, resources, and prompts. Week 6 covers the broader agent layers around that idea: plugins, rules, skills, subagents, general tools, and hooks.\"}},\n {\"title\": \"Sorting Prompt\", \"fields\": {\"question\": \"For each scenario, ask: Is this guidance, expertise, action, delegation, packaging, or automation?\"}}\n ],\n \"diagrams\": [\n {\"title\": \"Agent Layers Diagram\", \"fields\": {\"summary\": \"Future visual should show rules and skills guiding the agent, tools acting during work, subagents handling subtasks, plugins extending the environment, and hooks firing on events.\"}}\n ],\n \"activities\": [\n {\"title\": \"Agent building blocks comparison lab\", \"objective\": \"Use the comparison table in real scenarios.\", \"instructions\": [\"Open scenarios.csv from the example folder.\", \"For each of the 12 scenarios, label it with the best building block.\", \"Defend two of your answers using the Key Difference column.\"], \"expected_outcome\": \"Students can justify which layer fits each scenario.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-06\", \"01-scenarios\")},\n {\"title\": \"Rules vs skills sorting game\", \"objective\": \"Separate always-on guidance from repeatable workflows.\", \"instructions\": [\"Open sorting-cards.csv from the example folder.\", \"Sort each card into Rules or Skills.\", \"Discuss borderline cases and rewrite one weak example.\"], \"expected_outcome\": \"Students distinguish persistent guidance from procedural expertise.\", \"estimated_time\": \"15 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-06\", \"03-rules-vs-skills\")},\n {\"title\": \"Tool permission boundary design\", \"objective\": \"Practice safe tool access.\", \"instructions\": [\"Open sample-rules.md and sample-hook.sh from the real-examples folder to see what rules and hooks look like in practice.\", \"Design a school assistant: list allowed tools and forbidden tools.\", \"Add one human review checkpoint and write it as a rule.\"], \"expected_outcome\": \"Students connect tools to safety boundaries and see real-world examples.\", \"estimated_time\": \"20 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-06\", \"02-real-examples\")},\n {\"title\": \"Subagent task split workshop\", \"objective\": \"Practice delegation.\", \"instructions\": [\"Choose a medium-sized capstone-style task.\", \"Split it into two or three subagent roles.\", \"Define handoff outputs between them.\"], \"expected_outcome\": \"Students can design focused delegated work.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"Hook lifecycle mapping\", \"objective\": \"Understand event-driven automation.\", \"instructions\": [\"List three events in an agent workflow.\", \"Match each event to a useful hook.\", \"Explain what the hook should block or enforce.\"], \"expected_outcome\": \"Students understand hooks as reactive guardrails.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Plugin capability brainstorm\", \"objective\": \"Think about packaged extensions.\", \"instructions\": [\"Brainstorm one plugin that would help your class project.\", \"List what it would add and what permissions it would need.\", \"Explain why it is better as a plugin than a one-off prompt.\"], \"expected_outcome\": \"Students understand when packaging capabilities matters.\", \"estimated_time\": \"15 minutes\"}\n ],\n \"assignments\": [\n {\"title\": \"Agent setup blueprint\", \"fields\": {\n \"problem_statement\": \"Design a school assistant setup using at least four different building blocks from this week.\",\n \"requirements\": [\"One rule\", \"One skill\", \"One tool or tool group\", \"One hook or subagent\", \"Short comparison-table justification\"],\n \"submission_expectations\": [\"Submit as one-page diagram plus short explanation\"],\n \"evaluation_criteria\": [\"Correct layer choice\", \"Clear reasoning\", \"Safety awareness\", \"Practicality\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Keep MCP in Week 5; reference it only as prior learning about standardized tool access.\",\n \"Use the comparison table repeatedly until students can sort scenarios quickly.\",\n \"Emphasize that rules guide, tools act, hooks react, skills teach workflows, subagents delegate, and plugins package capabilities.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-06\",\n \"week_id\": \"week-06\",\n \"type\": \"flow-builder\",\n \"title\": \"Agent Building Blocks Mapping Lab\",\n \"instructions\": \"For a school assistant project, place plugins, rules, skills, subagents, tools, and hooks in the correct layer of the workflow.\",\n \"items\": [{\"label\": \"Rules\"}, {\"label\": \"Skills\"}, {\"label\": \"Tools\"}, {\"label\": \"Subagents\"}, {\"label\": \"Plugins\"}, {\"label\": \"Hooks\"}, {\"label\": \"Human Review\"}],\n \"success_criteria\": \"Students can explain the key difference between each building block using the comparison table.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-06\",\n \"week_id\": \"week-06\",\n \"title\": \"Agent Building Blocks Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w6-q1\", \"prompt\": \"Which building block provides always-on guidance rather than executing an action?\", \"options\": [\"Hooks\", \"Rules\", \"Tools\", \"Plugins\"], \"answer_index\": 1, \"explanation\": \"Rules shape default behavior and standards without directly running tasks.\"},\n {\"id\": \"w6-q2\", \"prompt\": \"What is the main job of a skill?\", \"options\": [\"Block unsafe commands automatically\", \"Teach a repeatable workflow or domain procedure\", \"Install a packaged integration\", \"Replace the model entirely\"], \"answer_index\": 1, \"explanation\": \"Skills provide specialized know-how the agent can apply when relevant.\"},\n {\"id\": \"w6-q3\", \"prompt\": \"How are hooks different from tools?\", \"options\": [\"Hooks fire on events; tools are invoked during work\", \"Hooks are only for images\", \"Tools never access files\", \"There is no difference\"], \"answer_index\": 0, \"explanation\": \"Hooks are reactive automation around lifecycle events, while tools are active capabilities used during a task.\"},\n {\"id\": \"w6-q4\", \"prompt\": \"When is a subagent the best choice?\", \"options\": [\"When you need a passive style guide\", \"When a large task should be split into focused delegated work\", \"When you only want a one-line answer\", \"When you need to disable all tools\"], \"answer_index\": 1, \"explanation\": \"Subagents help divide complex work across specialized agents.\"},\n {\"id\": \"w6-q5\", \"prompt\": \"Which statement best describes tools in this week?\", \"options\": [\"They are the same thing as rules\", \"They let the agent take action, and Week 5 MCP showed one standardized way to expose them\", \"They only work offline\", \"They replace human review completely\"], \"answer_index\": 1, \"explanation\": \"Tools are active capabilities; MCP from Week 5 is one standardized connector pattern for tools and resources.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"Choose one building block from this week and explain a real school project situation where it would help.\",\n \"placeholder\": \"A rule would help our class assistant always cite sources and ask for human review before sharing answers.\"\n },\n \"teacher_notes\": [\n \"Use the comparison table as the anchor artifact for the whole week.\",\n \"Remind students that MCP was already covered in Week 5 and should not be repeated as the main lesson here.\"\n ]\n },\n\n \"week-07\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Combine prompting, data thinking, Python logic, RAG, MCP, and responsible AI into one practical capstone solution.\",\n \"Apply Week 6 agent building blocks—plugins, rules, skills, subagents, tools, and hooks—in the capstone design.\",\n \"Design and present an AI-enabled project with clear user value, agent-layer choices, and safety thinking.\",\n \"Choose models and workflows with awareness of cost, parameters, openness, and tool use.\"\n ],\n \"expected_outcomes\": [\n \"Students produce a clear capstone workflow or prototype that names each agent layer used.\",\n \"Students justify design choices using the Week 6 comparison table and safety considerations.\",\n \"Students can explain why one model or architecture choice fits their capstone better than another.\"\n ]\n },\n \"lesson\": {\n \"id\": \"lecture-7\",\n \"week_id\": \"week-07\",\n \"title\": \"Capstone Development and AI Showcase\",\n \"estimated_minutes\": 160,\n \"blocks\": [\n {\"type\": \"hero\", \"title\": \"Lecture Goal\", \"content\": \"Students should apply everything they learned—including RAG, MCP, and Week 6 agent building blocks—by designing and presenting an AI-enabled capstone solution.\"},\n {\"type\": \"objective-list\", \"title\": \"Capstone Requirements\", \"items\": [\n {\"label\": \"Problem Statement\", \"description\": \"Describe the problem and user clearly.\"},\n {\"label\": \"AI Workflow\", \"description\": \"Show prompts, data, knowledge, tools, and outputs.\"},\n {\"label\": \"Agent Building Blocks\", \"description\": \"Name which plugins, rules, skills, subagents, tools, and hooks your capstone uses.\"},\n {\"label\": \"Safety\", \"description\": \"Include ethics, review, and responsible use.\"}\n ]},\n {\"type\": \"table\", \"title\": \"Agent Building Blocks in Your Capstone (from Week 6)\", \"items\": [\n {\"Building Block\": \"Plugins\", \"What It Is\": \"Installable extension packages for the AI environment\", \"Primary Job\": \"Add bundled capabilities such as integrations or packaged features\", \"Capstone Question\": \"Does your project need an installable extension pack?\", \"Key Difference\": \"Product-level extension bundles, not single prompts\"},\n {\"Building Block\": \"Rules\", \"What It Is\": \"Persistent written instructions for the agent\", \"Primary Job\": \"Shape default behavior, standards, and project conventions\", \"Capstone Question\": \"What always-on guidance should your assistant follow?\", \"Key Difference\": \"Passive guidance that steers behavior; it does not execute actions\"},\n {\"Building Block\": \"Skills\", \"What It Is\": \"Specialized workflow or domain instruction files\", \"Primary Job\": \"Teach repeatable procedures the agent can follow\", \"Capstone Question\": \"Which repeatable workflow should your agent reuse?\", \"Key Difference\": \"On-demand expertise packs, not permanent environment changes\"},\n {\"Building Block\": \"Subagents\", \"What It Is\": \"Separate delegated agents for focused work\", \"Primary Job\": \"Handle parallel or specialized subtasks with their own scope\", \"Capstone Question\": \"Should any capstone work be split across focused agents?\", \"Key Difference\": \"Independent workers with separate context and goals\"},\n {\"Building Block\": \"Tools\", \"What It Is\": \"Callable functions or integrations the model can invoke\", \"Primary Job\": \"Let the agent read, write, search, run commands, or call APIs\", \"Capstone Question\": \"What actions must your system perform? (Week 5 MCP is one tool protocol.)\", \"Key Difference\": \"Active capabilities used during a turn\"},\n {\"Building Block\": \"Hooks\", \"What It Is\": \"Event-triggered scripts around agent lifecycle moments\", \"Primary Job\": \"Automate checks or actions before or after events\", \"Capstone Question\": \"What guardrails should run automatically on events?\", \"Key Difference\": \"Reactive automation tied to events, not conversational reasoning\"}\n ]},\n {\"type\": \"concept-card-grid\", \"title\": \"Capstone Structure\", \"items\": [\n {\"label\": \"Problem\", \"description\": \"What issue does the solution address?\"},\n {\"label\": \"User Persona\", \"description\": \"Who benefits from the system?\"},\n {\"label\": \"AI Features\", \"description\": \"What AI capabilities are used?\"},\n {\"label\": \"Agent Layers\", \"description\": \"Which plugins, rules, skills, subagents, tools, or hooks are included?\"}\n ]},\n {\"type\": \"callout\", \"title\": \"Tutor Message\", \"content\": \"Use the Week 6 comparison table to justify every agent layer in your capstone. Practical usefulness and clear safety matter more than flashy complexity.\"}\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": PROGRAM_TITLE,\n \"learning_objectives\": [\n \"Apply everything from AI foundations to workflows and systems design.\",\n \"Integrate Week 6 plugins, rules, skills, subagents, tools, and hooks into the capstone plan.\",\n \"Build and present an AI-enabled solution clearly.\",\n \"Reflect on future improvements and responsible deployment.\",\n \"Explain model-choice and deployment tradeoffs in plain language.\"\n ],\n \"expected_outcomes\": [\n \"Students can present a practical AI-enabled project.\",\n \"Students can justify prompts, data, RAG, MCP, agent layers, safety rules, and model choice.\"\n ]\n },\n \"concepts\": [\n _concept(\"Problem Statement and User Persona\", \"A problem statement explains the issue being solved. A user persona describes who the system is for.\", \"Without a clear user problem, the project becomes a tool demo rather than a solution.\", \"An AI study assistant is designed specifically for students who need revision support from lecture notes.\", [\"Study assistant\", \"FAQ bot\", \"Career guide\"], [\"Describing a tool instead of a problem\", \"Ignoring the target user\"], [\"Start with need before technology\", \"Keep the user visible in every design choice\"]),\n _concept(\"AI Workflow\", \"An AI workflow is the sequence of prompts, data, tools, outputs, and review steps that make the solution useful.\", \"This helps students think beyond single prompts and toward system behavior.\", \"A research helper gathers notes, summarizes them, asks questions, and checks claims before sharing results.\", [\"Prompt chain\", \"Task flow\", \"Review loop\"], [\"Skipping review steps\", \"Leaving outputs vague\"], [\"Show inputs and outputs clearly\", \"Mark human review points\"]),\n _concept(\"Plugins in a Capstone\", \"Plugins are installable extension packages that add bundled capabilities to an AI coding environment. In a capstone, a plugin is justified only when the project needs packaged integrations rather than a one-off prompt.\", \"Capstone teams should explain why a capability is packaged as a plugin instead of scattered across prompts.\", \"A capstone study app installs a documentation plugin so the agent can browse API references while building the UI.\", [\"Integration packs\", \"Packaged feature bundles\", \"Shared team extensions\"], [\"Installing plugins without a clear capstone need\", \"Using a plugin to skip safety review\"], [\"Name the plugin and its permission needs\", \"Explain what breaks if the plugin is removed\"]),\n _concept(\"Rules in a Capstone\", \"Rules are persistent instructions that guide how an agent should behave across a project. In a capstone, rules turn team standards and safety expectations into always-on guidance.\", \"Strong capstones include rules for citation, tone, privacy, and human review—not only prompts.\", \"A capstone repository includes rules that require simple-language explanations, source citation, and teacher approval before sharing outputs.\", [\"Project standards\", \"Safety boundaries\", \"Style conventions\"], [\"Vague rules that never change behavior\", \"Treating rules as a substitute for testing\"], [\"List each rule and what behavior it changes\", \"Review rules when the capstone scope changes\"]),\n _concept(\"Skills in a Capstone\", \"Skills are specialized instruction files that teach repeatable workflows. In a capstone, skills capture procedures the team will run more than once.\", \"Skills keep capstone workflows consistent across demos, testing, and presentation prep.\", \"A capstone team creates a demo-rehearsal skill that lists the exact steps for explaining prompts, tools, and safety in under two minutes.\", [\"Code review workflow\", \"Testing checklist skill\", \"Demo rehearsal skill\"], [\"Skills that are too broad to be useful\", \"Duplicating the same content in rules and skills\"], [\"Use skills for repeatable capstone procedures\", \"Keep each skill focused on one job\"]),\n _concept(\"Subagents in a Capstone\", \"Subagents are separate delegated agents that handle focused or parallel parts of a larger task. Capstone teams can split research, drafting, testing, and presentation work across subagents with clear handoffs.\", \"Delegation helps larger capstones stay organized without one overloaded chat thread.\", \"One subagent gathers trusted sources, another drafts student-facing text, and the lead agent combines results for the final demo.\", [\"Research subagent\", \"Test-runner subagent\", \"Presentation subagent\"], [\"Too many subagents for a small project\", \"Unclear handoff boundaries between agents\"], [\"Split work only when specialization helps\", \"Define inputs, outputs, and review between agents\"]),\n _concept(\"Tools and MCP in a Capstone\", \"Tools are callable actions the agent can invoke during a task. MCP, from Week 5, is one standardized way to expose tools, resources, and prompts. Capstone designs should list which tools are allowed and why.\", \"Tool choice is where capstone systems move from advice to action—and where safety boundaries matter most.\", \"A school FAQ capstone uses file-read and search tools plus an MCP connection to schedules and announcements.\", [\"File read tool\", \"Search tool\", \"MCP tool/resource access\"], [\"Giving tools without permission boundaries\", \"Listing tools without explaining capstone value\"], [\"Grant minimum tool access needed\", \"Connect MCP only where structured access helps\"]),\n _concept(\"Hooks in a Capstone\", \"Hooks are event-driven scripts that run at lifecycle moments such as before a tool runs or after a file is saved. In a capstone, hooks provide automatic guardrails around risky actions.\", \"Hooks show that responsible capstone design includes automation around events, not only chat instructions.\", \"A capstone project uses a pre-tool hook to block unsafe commands and a post-save hook to run formatting checks before demo.\", [\"Pre-tool guardrail\", \"Post-save formatter\", \"Session startup check\"], [\"Hidden hooks students cannot explain\", \"Using hooks for core business logic that belongs in the app\"], [\"Document what each hook does and when it fires\", \"Keep hooks small and observable\"]),\n _concept(\"RAG in a Capstone\", \"RAG connects the system with trusted knowledge at answer time by retrieving relevant material before generation.\", \"Capstone assistants that answer from class notes, policies, or research corpora should explain their knowledge source and retrieval flow.\", \"A school FAQ capstone retrieves policy sections before answering and cites the source in the output.\", [\"Knowledge base\", \"Document retrieval\", \"Citations\"], [\"Adding RAG as a buzzword without a real source\", \"Ignoring source freshness or quality\"], [\"Name the knowledge source\", \"Explain chunking, retrieval, and review if used\"]),\n _concept(\"MCP in a Capstone\", \"MCP is the protocol learned in Week 5 for connecting AI clients to tools, resources, and prompts in a structured way.\", \"When a capstone needs standardized external access, MCP should be explained as a design choice—not assumed.\", \"A capstone assistant uses MCP to read class files, call a schedule tool, and reuse approved prompt templates.\", [\"Tools\", \"Resources\", \"Prompt templates\"], [\"Confusing MCP with every tool\", \"Exposing sensitive resources without review\"], [\"Use MCP when structured connectivity helps\", \"List which tools and resources the capstone exposes\"]),\n _concept(\"Model Choice, Frontier vs Open-Source, and Parameters\", \"Model choice means deciding which model best fits the task. Frontier models often offer higher capability through hosted services, while open-source models may offer more control or local use. Parameters are the learned weights inside the model and are one indicator of scale, but not the only indicator of usefulness.\", \"Students should justify why their capstone uses one model type or another.\", \"A research helper uses a hosted frontier model for stronger reasoning, while a private note summarizer uses a smaller local open-source model.\", [\"Hosted premium model\", \"Local private model\", \"Capability vs control tradeoff\"], [\"Treating parameter count as the only decision factor\", \"Ignoring privacy, latency, or cost\"], [\"Choose models by task, cost, privacy, and quality\", \"Explain the tradeoff in plain language\"]),\n _concept(\"Cost, Inference, and Deployment Tradeoffs\", \"Inference is the act of running the model to generate output. Every inference call can have cost, speed, and hardware implications. Deployment tradeoffs include cloud versus local execution, large versus small models, and whether retrieval or tools are needed.\", \"Capstone teams should learn to design solutions that are realistic to run.\", \"A class project chooses a smaller model plus RAG because it is cheaper than using a large frontier model for every question.\", [\"Token usage\", \"Cloud cost\", \"Local hardware tradeoff\"], [\"Designing only for ideal quality\", \"Ignoring usage cost over time\"], [\"Estimate likely usage early\", \"Use the lightest model that still meets the need\"]),\n _concept(\"Agents, MoE, and System Scale\", \"An AI agent can pursue a goal with tools and memory. Mixture of Experts, or MoE, is a model design where only some expert parts of the model are activated for each task, helping large systems scale more efficiently.\", \"Students do not need deep math here, but they should recognize that modern AI systems combine architecture choices with workflow design.\", \"A project may use a multi-step agent workflow on top of a model that is itself optimized through expert routing.\", [\"Tool-using agent\", \"Expert routing\", \"Scalable model design\"], [\"Thinking MoE is the same as having multiple chatbots\", \"Using agent language without defining goals and tool boundaries\"], [\"Teach MoE as selective expert activation\", \"Keep agent design grounded in task flow\"]),\n _concept(\"Safety, Ethics, and Testing\", \"A responsible project includes safety rules, testing, ethics, human review, and future improvements.\", \"Students should learn to evaluate AI solutions, not just build them.\", \"A school-facing assistant avoids private data, uses trusted knowledge, and requires human approval for sensitive outputs.\", [\"Testing checklist\", \"Human review\", \"Ethics note\"], [\"Assuming a working demo is automatically safe\", \"Ignoring privacy and fairness\"], [\"Include clear safeguards\", \"Test edge cases and weak outputs\"]),\n _concept(\"Presentation and Reflection\", \"A good presentation explains the problem, workflow, AI features, data or knowledge source, safety rules, and next steps.\", \"Students should leave able to communicate their AI thinking clearly.\", \"A capstone showcase includes demo screenshots, prompt examples, diagram, and lessons learned.\", [\"Workflow diagram\", \"Prompt examples\", \"Future improvements\"], [\"Overfocusing on style and ignoring logic\", \"Skipping reflection\"], [\"Use a structured presentation template\", \"Explain what would improve in the next version\"])\n ],\n \"lecture_notes\": [\n {\"title\": \"Capstone Options\", \"fields\": {\"options\": [\n \"AI Study Assistant\",\n \"AI School FAQ Bot\",\n \"AI Career Guide\",\n \"AI Research Helper\",\n \"AI Productivity Assistant\",\n \"AI Community Problem Solver\"\n ]}},\n {\"title\": \"Required Capstone Sections\", \"fields\": {\"sections\": [\n \"Problem statement\",\n \"Target users\",\n \"AI features\",\n \"Prompt examples\",\n \"Data or knowledge source\",\n \"RAG idea\",\n \"MCP/tool idea\",\n \"Plugins, rules, skills, subagents, tools, and hooks used\",\n \"Agent building blocks comparison justification\",\n \"Safety and ethics considerations\",\n \"Demo or prototype\",\n \"Final presentation\"\n ]}},\n {\"title\": \"Week 6 Building Blocks Reminder\", \"fields\": {\"summary\": \"Use the comparison table to justify each agent layer: rules guide, skills teach workflows, tools act, subagents delegate, plugins package capabilities, hooks react on events.\"}}\n ],\n \"diagrams\": [\n {\"title\": \"Capstone Workflow Canvas\", \"fields\": {\"summary\": \"Future visual should show problem -> user -> input -> rules/skills -> AI step -> RAG/MCP/tools -> hooks -> review -> output.\"}},\n {\"title\": \"Agent Layers in Capstone\", \"fields\": {\"summary\": \"Future visual should map plugins, rules, skills, subagents, tools, and hooks onto one capstone diagram.\"}}\n ],\n \"activities\": [\n {\"title\": \"Capstone agent building blocks mapping\", \"objective\": \"Apply Week 6 layers to the final project.\", \"instructions\": [\"Choose a capstone option.\", \"Fill the comparison table for your project.\", \"List at least one rule, skill, tool, and either a hook, subagent, or plugin.\"], \"expected_outcome\": \"Students justify each agent layer in capstone terms.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"Capstone planning workshop\", \"objective\": \"Turn project ideas into structured plans.\", \"instructions\": [\"Open capstone-template.md from the example folder.\", \"Fill in every section: problem, users, AI features, prompts, RAG, tools, agent layers, safety, and model choice.\", \"Share your completed template with the class for peer feedback.\"], \"expected_outcome\": \"Students produce a complete capstone plan using the structured template.\", \"estimated_time\": \"25 minutes\", \"example_folder_path\": _program_path(\"content\", \"activity-examples\", \"week-07\")},\n {\"title\": \"Subagent task split for capstone teams\", \"objective\": \"Practice delegation in the final project.\", \"instructions\": [\"Split capstone work into two or three subagent roles.\", \"Define handoff outputs.\", \"Mark where the lead agent reviews results.\"], \"expected_outcome\": \"Teams have a practical delegation plan.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Tool permission and hook guardrail design\", \"objective\": \"Connect Week 6 safety ideas to the capstone.\", \"instructions\": [\"List allowed and forbidden tools.\", \"Add one hook or review checkpoint.\", \"Explain what unsafe action it prevents.\"], \"expected_outcome\": \"Students link tools and hooks to capstone safety.\", \"estimated_time\": \"15 minutes\"},\n {\"title\": \"Peer review\", \"objective\": \"Improve projects through feedback.\", \"instructions\": [\"Pairs review each other's idea.\", \"Check clarity, usefulness, and safety.\", \"Suggest one improvement.\"], \"expected_outcome\": \"Students refine their design before presentation.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"Demo practice\", \"objective\": \"Prepare for final presentation.\", \"instructions\": [\"Students rehearse their explanation.\", \"Receive feedback on clarity and timing.\", \"Refine the presentation flow.\"], \"expected_outcome\": \"Students present more clearly and confidently.\", \"estimated_time\": \"20 minutes\"},\n {\"title\": \"Final showcase\", \"objective\": \"Present the AI-enabled solution.\", \"instructions\": [\"Present the project.\", \"Explain prompts, AI features, and safety rules.\", \"Answer audience questions.\"], \"expected_outcome\": \"Students demonstrate integrated AI understanding.\", \"estimated_time\": \"30 minutes\"},\n {\"title\": \"Feedback session\", \"objective\": \"Reflect on learning and improvement.\", \"instructions\": [\"Discuss what worked.\", \"Discuss what would improve next.\", \"Capture next-step learning goals.\"], \"expected_outcome\": \"Students leave with reflection and direction.\", \"estimated_time\": \"15 minutes\"}\n ],\n \"assignments\": [\n {\"title\": \"Final project submission\", \"fields\": {\n \"problem_statement\": \"Submit the final AI-enabled project and presentation.\",\n \"requirements\": [\n \"Problem statement\",\n \"Target users\",\n \"AI features\",\n \"Prompt examples\",\n \"Data or knowledge source\",\n \"RAG idea\",\n \"MCP/tool idea\",\n \"At least one plugin, rule, skill, subagent, tool, or hook with justification\",\n \"Agent building blocks comparison note\",\n \"Safety and ethics considerations\",\n \"Demo or prototype\",\n \"Presentation\",\n \"Model choice and cost note\"\n ],\n \"submission_expectations\": [\"Submit final project pack and presentation\"],\n \"evaluation_criteria\": [\"Clarity\", \"Usefulness\", \"Correct AI concepts\", \"Agent-layer reasoning\", \"Safety thinking\", \"Presentation quality\", \"Model-choice reasoning\"]\n }}\n ],\n \"instructor_notes\": [\n {\"title\": \"Facilitation Notes\", \"fields\": {\"notes\": [\n \"Push students toward practical usefulness rather than unnecessary complexity.\",\n \"Use the Week 6 comparison table during capstone reviews.\",\n \"Review whether they can justify prompts, RAG, MCP, agent layers, and safety decisions clearly.\"\n ]}}\n ]\n },\n \"activity\": {\n \"id\": \"activity-week-07\",\n \"week_id\": \"week-07\",\n \"type\": \"submission-board\",\n \"title\": \"Capstone Design Canvas\",\n \"instructions\": \"Map the problem, users, prompts, knowledge, RAG, MCP, Week 6 agent building blocks, safety rules, and presentation story for the final project.\",\n \"items\": [{\"label\": \"Problem Statement\"}, {\"label\": \"Target Users\"}, {\"label\": \"AI Features\"}, {\"label\": \"Prompt Examples\"}, {\"label\": \"Knowledge Source\"}, {\"label\": \"RAG Idea\"}, {\"label\": \"MCP/Tool Idea\"}, {\"label\": \"Rules\"}, {\"label\": \"Skills\"}, {\"label\": \"Subagents\"}, {\"label\": \"Plugins\"}, {\"label\": \"Hooks\"}, {\"label\": \"Safety Rules\"}],\n \"success_criteria\": \"Students can explain how the full solution works, which Week 6 building blocks it uses, and why it is safe and useful.\"\n },\n \"quiz\": {\n \"id\": \"quiz-week-07\",\n \"week_id\": \"week-07\",\n \"title\": \"Capstone Readiness Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\"id\": \"w7-q1\", \"prompt\": \"What should every capstone include first?\", \"options\": [\"A random AI tool\", \"A clear problem statement and target users\", \"A long Python program\", \"A logo\"], \"answer_index\": 1, \"explanation\": \"The project should begin with a clear user problem and purpose.\"},\n {\"id\": \"w7-q2\", \"prompt\": \"Why include RAG or MCP ideas in a capstone?\", \"options\": [\"To sound technical only\", \"To explain how knowledge grounding or tool access improves the system\", \"To replace safety thinking\", \"To avoid prompts\"], \"answer_index\": 1, \"explanation\": \"RAG and MCP should be included when they make the system more useful or grounded.\"},\n {\"id\": \"w7-q3\", \"prompt\": \"Which Week 6 building block provides always-on guidance in a capstone?\", \"options\": [\"Hooks\", \"Rules\", \"Plugins\", \"Subagents\"], \"answer_index\": 1, \"explanation\": \"Rules shape default capstone behavior and standards without executing actions directly.\"},\n {\"id\": \"w7-q4\", \"prompt\": \"When should a capstone team use subagents?\", \"options\": [\"For every one-line task\", \"When focused or parallel work should be split with clear handoffs\", \"Instead of any human review\", \"Only to replace RAG\"], \"answer_index\": 1, \"explanation\": \"Subagents help divide larger capstone work across specialized agents.\"},\n {\"id\": \"w7-q5\", \"prompt\": \"How are hooks useful in a capstone?\", \"options\": [\"They replace the need for a problem statement\", \"They automate guardrails around events such as tool use or file save\", \"They are the same as skills\", \"They only install plugins\"], \"answer_index\": 1, \"explanation\": \"Hooks provide reactive automation and guardrails at lifecycle moments.\"},\n {\"id\": \"w7-q6\", \"prompt\": \"What should guide model choice in a capstone?\", \"options\": [\"Only parameter count\", \"Task fit, cost, privacy, and quality needs\", \"Random selection\", \"The brightest logo\"], \"answer_index\": 1, \"explanation\": \"A practical capstone chooses models based on task needs, constraints, and tradeoffs.\"},\n {\"id\": \"w7-q7\", \"prompt\": \"Why are safety and ethics considerations required?\", \"options\": [\"Because they make slides look longer\", \"Because useful AI systems still need privacy, fairness, review, and accountability\", \"Because AI is always unsafe\", \"Because projects need no testing\"], \"answer_index\": 1, \"explanation\": \"Responsible AI thinking is part of practical system design.\"}\n ]\n },\n \"reflection\": {\n \"prompt\": \"Which Week 6 building block is most important in your capstone, and what is one improvement you would make next?\",\n \"placeholder\": \"Rules are most important in my capstone because they keep citations and human review consistent. Next I would add a clearer hook before any tool runs on student data.\"\n },\n \"teacher_notes\": [\n \"Encourage practical AI enablement over ambitious but unclear system ideas.\",\n \"Ask students to justify every agent layer using the Week 6 comparison table.\",\n \"Confirm they can explain RAG, MCP, and at least three other building blocks in plain language.\"\n ]\n },\n \"teacher-workshop-01\": {\n \"overview\": {\n \"learning_objectives\": [\n \"Explain common AI terms in plain teacher-friendly language.\",\n \"Use AI practically for lesson planning, assessment, differentiation, feedback, classroom activities, student support, and teacher productivity.\",\n \"Show live classroom-ready demos with reusable prompt patterns and clear expected outputs.\",\n \"Apply responsible AI habits including verification, privacy protection, hallucination awareness, bias checks, and human review.\"\n ],\n \"expected_outcomes\": [\n \"Teachers can explain commonly used AI terms without technical jargon.\",\n \"Teachers leave with practical prompts, demo flows, and classroom-ready examples they can adapt immediately.\",\n \"Teachers can identify when AI output should be edited, checked, or rejected before classroom use.\"\n ]\n },\n \"lesson\": {\n \"id\": \"teacher-workshop-lesson-01\",\n \"week_id\": \"teacher-workshop-01\",\n \"title\": \"AI for Teachers: Practical Classroom Planning Workshop\",\n \"estimated_minutes\": 360,\n \"blocks\": [\n {\n \"type\": \"hero\",\n \"title\": \"Workshop Goal\",\n \"content\": \"This section shows teachers practical ways to use AI in everyday teaching work, with live demos, reusable prompts, and strong human review habits.\"\n },\n {\n \"type\": \"concept-card-grid\",\n \"title\": \"Common Teacher AI Terms\",\n \"items\": [\n {\"label\": \"AI\", \"description\": \"Tools that can recognize patterns, assist decisions, or generate useful drafts.\"},\n {\"label\": \"Generative AI\", \"description\": \"AI that creates new text, summaries, worksheets, activities, or feedback drafts.\"},\n {\"label\": \"LLM\", \"description\": \"A large language model that predicts and generates text from the prompt you give it.\"},\n {\"label\": \"Prompt\", \"description\": \"The instruction you give the AI to shape the response.\"}\n ]\n },\n {\n \"type\": \"objective-list\",\n \"title\": \"Practical Focus\",\n \"items\": [\n {\"label\": \"Teacher-first use\", \"description\": \"Use AI to save time on planning, assessment drafting, differentiation, student support, and classroom preparation.\"},\n {\"label\": \"Demo-led learning\", \"description\": \"Open each demo to see what will be done, what output to expect, and what teachers can reuse.\"},\n {\"label\": \"Human review\", \"description\": \"Check accuracy, tone, fairness, alignment, and privacy before classroom use.\"},\n {\"label\": \"Routine productivity\", \"description\": \"Use AI for repetitive work such as summaries, messages, question banks, and first drafts.\"}\n ]\n },\n {\n \"type\": \"table\",\n \"title\": \"What Teachers Can Use AI For\",\n \"items\": [\n {\"Task\": \"Lesson planning\", \"What AI Helps With\": \"Draft objectives, structure lessons, suggest starters and exit tickets\", \"Teacher Review\": \"Check accuracy, pacing, and curriculum fit\"},\n {\"Task\": \"Assessment\", \"What AI Helps With\": \"Generate MCQs, short questions, answer keys, and rubrics\", \"Teacher Review\": \"Verify correctness and fairness\"},\n {\"Task\": \"Differentiation\", \"What AI Helps With\": \"Rewrite for support, core, and extension levels\", \"Teacher Review\": \"Keep the same learning goal\"},\n {\"Task\": \"Classroom activities\", \"What AI Helps With\": \"Turn a lecture topic into discussion, group work, debate, card sort, or station activity\", \"Teacher Review\": \"Check feasibility and concept alignment\"},\n {\"Task\": \"Student support\", \"What AI Helps With\": \"Re-explain concepts, simplify language, generate examples, and create revision materials\", \"Teacher Review\": \"Check clarity, correctness, and age appropriateness\"},\n {\"Task\": \"Feedback and admin\", \"What AI Helps With\": \"Draft comments, summarize notes, and prepare communication\", \"Teacher Review\": \"Check tone, privacy, and specific evidence\"},\n {\"Task\": \"Responsible AI use\", \"What AI Helps With\": \"Remind teachers to verify claims and protect privacy\", \"Teacher Review\": \"Never skip human judgment on sensitive outputs\"}\n ]\n },\n {\n \"type\": \"callout\",\n \"title\": \"Tutor Message\",\n \"content\": \"Keep the teacher section grounded in routine work: planning, quizzes, worksheets, differentiation, feedback, and admin productivity.\"\n }\n ]\n },\n \"curriculum\": {\n \"overview\": {\n \"program_title\": \"AI for Teachers Workshop\",\n \"subtitle\": \"A practical teacher enablement section focused on real classroom use of AI.\",\n \"workshop_title\": \"AI for Teachers: Practical Classroom Planning Workshop\",\n \"target_audience\": [\n \"School teachers with non-technical backgrounds\",\n \"Teachers who want practical classroom uses instead of technical AI theory\",\n \"Teachers who need responsible, review-driven AI habits\"\n ],\n \"workshop_goals\": [\n \"Demystify common AI terms in plain language.\",\n \"Show classroom use cases that save time without lowering teaching quality.\",\n \"Give teachers reusable prompts and visible demo flows for real tasks.\",\n \"Build strong habits around privacy, verification, bias checks, human review, and safe workflow design.\"\n ],\n \"expected_outcomes\": [\n \"Teachers can use AI to draft and adapt classroom materials faster.\",\n \"Teachers can identify risks and know where review is required.\",\n \"Teachers can reuse the demo patterns inside their own teaching routine.\",\n \"Teachers can explain context limits, evaluation habits, and permission boundaries in simple classroom language.\"\n ]\n },\n \"concepts\": [\n _concept(\n \"AI\",\n \"AI is software that helps with tasks such as pattern recognition, prediction, summarization, and content generation.\",\n \"Teachers hear the term often, but they need a practical definition instead of a technical one.\",\n \"A teacher uses AI to draft a lesson plan, summarize notes, or suggest questions for class discussion.\",\n [\"Planning support\", \"Question generation\", \"Summaries\", \"Draft feedback\"],\n [\"Thinking AI understands the class context automatically\", \"Treating AI output as final truth\"],\n [\"Use AI for drafting and idea generation\", \"Always adapt the result to your students\"]\n ),\n _concept(\n \"Generative AI\",\n \"Generative AI creates new content such as explanations, worksheets, quiz questions, rubrics, feedback drafts, and classroom activities.\",\n \"This is the kind of AI most teachers will use directly in their routine work.\",\n \"A teacher asks for a worksheet, an exit ticket, or a simplified explanation of a topic.\",\n [\"Lesson plan drafts\", \"Quiz generation\", \"Worksheet rewriting\", \"Parent message drafts\"],\n [\"Assuming generated content is automatically correct\", \"Using generic output without editing\"],\n [\"Treat outputs as first drafts\", \"Check whether the content matches the actual objective\"]\n ),\n _concept(\n \"LLM\",\n \"LLM stands for large language model. It is the system behind many AI chat tools that predicts and generates text from the prompt you provide.\",\n \"Teachers do not need the technical internals, but they should know why wording and context matter.\",\n \"A teacher gives an LLM a subject, grade level, and objective, and the model generates a structured teaching draft.\",\n [\"Chat-based lesson drafting\", \"Text rewriting\", \"Rubric generation\"],\n [\"Using vague prompts\", \"Expecting the LLM to know hidden classroom context\"],\n [\"Provide role, topic, grade level, and output format\", \"Iterate when the first output is weak\"]\n ),\n _concept(\n \"Lesson Planning with AI\",\n \"AI can help teachers draft learning objectives, starter tasks, explanations, guided practice, class activities, and exit tickets from one teaching topic.\",\n \"Lesson planning is one of the fastest practical wins for teachers because it saves time without removing professional judgment.\",\n \"A teacher starts with a topic and asks AI to propose a lesson structure, then edits the draft for pacing and classroom reality.\",\n [\"Lesson outline drafting\", \"Starter tasks\", \"Exit tickets\", \"Alternative class versions\"],\n [\"Using the first draft without checking fit\", \"Letting the tool choose the pedagogy without teacher review\"],\n [\"Use AI for first drafts\", \"Always align the lesson back to your real objective and class needs\"]\n ),\n _concept(\n \"Machine Learning\",\n \"Machine learning is a branch of AI where systems learn patterns from data instead of being manually programmed for every rule.\",\n \"Teachers hear this term often, and it helps them understand why AI tools reflect the data they were trained on.\",\n \"A recommendation system or auto-grading support tool works by learning patterns from previous examples.\",\n [\"Recommendation systems\", \"Pattern detection\", \"Prediction support\"],\n [\"Thinking machine learning means human understanding\", \"Ignoring the role of training data\"],\n [\"Explain it as pattern learning from examples\", \"Connect tool behavior back to its data source\"]\n ),\n _concept(\n \"Prompt and Prompt Template\",\n \"A prompt is the instruction you give to AI. A prompt template is a reusable pattern you can use again with a new topic, grade, or task.\",\n \"Prompt quality strongly affects whether the output is useful or generic.\",\n \"A teacher keeps one prompt template for lesson plans and another for rubrics or differentiated worksheets.\",\n [\"Role-based prompts\", \"Structured output prompts\", \"Reusable teacher templates\"],\n [\"Asking with too little context\", \"Not specifying grade level or output structure\"],\n [\"Use templates for repeat tasks\", \"Ask for bullets, tables, levels, or checklists when needed\"]\n ),\n _concept(\n \"Memory and Context Management\",\n \"Memory and context management means deciding what information the AI should keep in view, what should be summarized, and what should be left out so the workflow stays clear and useful.\",\n \"Teachers often work across long lesson notes, rubrics, examples, and chat threads, so better results come from managing context rather than pasting everything at once.\",\n \"A teacher summarizes last week’s lesson, current objective, and class constraints in a short note before asking AI to draft the next lesson step.\",\n [\"Short context summaries\", \"Carry forward only key class details\", \"Reset when the task changes\"],\n [\"Pasting every note into one prompt\", \"Assuming the chat remembers all earlier context correctly\"],\n [\"Keep only the details needed for the next teaching step\", \"Summarize before continuing a long workflow\"]\n ),\n _concept(\n \"Assessment, Feedback, and Rubrics\",\n \"AI can generate quiz questions, short answers, answer keys, rubric drafts, and first-pass feedback comments.\",\n \"Assessment work is highly practical for teachers, but it also has to be reviewed carefully because mistakes here directly affect learning and fairness.\",\n \"A teacher drafts a quick formative quiz and a rubric with AI, then checks each answer key and rewrites the feedback comments into a more human tone.\",\n [\"MCQs\", \"Short questions\", \"Rubrics\", \"Feedback comment banks\"],\n [\"Trusting auto-generated answer keys\", \"Using generic feedback that does not match student evidence\"],\n [\"Verify every key\", \"Use AI to draft feedback, then personalize it with real evidence\"]\n ),\n _concept(\n \"AI Evaluation and Testing\",\n \"AI evaluation and testing means checking whether an AI draft or workflow is accurate, appropriate, fair, and actually useful before relying on it in real teaching.\",\n \"Teachers need a practical review habit because polished output can still be wrong, vague, biased, or mismatched to the class.\",\n \"A teacher checks a generated quiz with a few strong students, reviews edge cases, and compares the answer key against the learning objective before using it with the full class.\",\n [\"Accuracy checks\", \"Objective alignment\", \"Try one sample before full use\"],\n [\"Judging the output from one quick glance\", \"Testing only the easiest classroom case\"],\n [\"Review normal and tricky cases\", \"Decide what quality checks matter before classroom use\"]\n ),\n _concept(\n \"Tokens, Context Window, and Inference\",\n \"Tokens are small units of text the model reads and generates. The context window is how much information the model can consider at one time. Inference is the act of generating the answer.\",\n \"These ideas help teachers understand why long prompts, pasted notes, and long chats sometimes degrade output quality.\",\n \"A teacher pastes a long worksheet, rubric, and lesson history into one prompt and notices the tool misses earlier details because the context becomes crowded.\",\n [\"Long lesson prompts\", \"Summarizing large notes\", \"Multi-step classroom planning\"],\n [\"Assuming the model remembers everything in a long thread\", \"Pasting too much context without structure\"],\n [\"Keep prompts focused\", \"Summarize long material before asking for the next step\"]\n ),\n _concept(\n \"Hallucination\",\n \"A hallucination happens when AI gives an answer that sounds correct but is false, unsupported, incomplete, or made up.\",\n \"Teachers need this term because polished wording can hide serious mistakes.\",\n \"An AI tool invents an answer key, a reference, or a scientific fact that looks believable.\",\n [\"Wrong answer keys\", \"Invented examples\", \"Misleading summaries\"],\n [\"Trusting fluent wording\", \"Skipping fact checks because the output looks professional\"],\n [\"Verify important claims\", \"Check answer keys and examples before using them with students\"]\n ),\n _concept(\n \"Differentiation\",\n \"Differentiation means adapting the same learning goal for students who need support, core practice, or extension challenge.\",\n \"AI is useful here because it can quickly create multiple versions of the same material.\",\n \"A teacher asks for the same explanation at three levels: simplified, on-level, and extension.\",\n [\"Tiered worksheets\", \"Reading-level rewrites\", \"Support and challenge versions\"],\n [\"Lowering rigor too much\", \"Creating versions that no longer align to the original objective\"],\n [\"Compare all versions side by side\", \"Keep the same core learning target\"]\n ),\n _concept(\n \"Student Support and Re-Explanation\",\n \"AI can help teachers rewrite difficult explanations, generate additional examples, simplify instructions, and create revision support for students who need another path into the same concept.\",\n \"Teachers often need multiple ways to explain the same thing, especially in mixed-ability classrooms.\",\n \"A teacher asks AI to explain the same topic in simpler language, with a real-life example and two revision questions for students who are still confused.\",\n [\"Simplified explanations\", \"Extra examples\", \"Revision questions\", \"Support handouts\"],\n [\"Oversimplifying the content too much\", \"Giving students AI-generated explanations without checking the wording\"],\n [\"Keep the same core concept\", \"Check that support material is clear without becoming inaccurate\"]\n ),\n _concept(\n \"Multimodal AI and Document AI\",\n \"Multimodal AI can work with more than plain text, such as images, PDFs, screenshots, worksheets, and scanned documents. Document AI includes OCR and layout understanding.\",\n \"Teachers increasingly work with handouts, slides, photos of student work, and scanned resources, not just typed prompts.\",\n \"A teacher uploads a worksheet or notice and asks AI to extract questions, summarize instructions, or rewrite the content for a lower reading level.\",\n [\"Worksheet extraction\", \"Slide summarization\", \"OCR from scanned class materials\"],\n [\"Assuming document extraction is always perfect\", \"Trusting OCR text without checking errors\"],\n [\"Use multimodal tools when the source is visual\", \"Always check extracted text before reusing it\"]\n ),\n _concept(\n \"Teacher Productivity and Communication\",\n \"AI can summarize meeting notes, draft parent communication, organize action points, and produce first drafts for repetitive admin work.\",\n \"This matters because teachers spend large amounts of time on routine writing that still needs professional tone and privacy care.\",\n \"A teacher summarizes anonymized student feedback, drafts a calm parent message, or turns meeting notes into next-step actions.\",\n [\"Meeting summaries\", \"Parent message drafts\", \"Action lists\", \"Note cleanup\"],\n [\"Pasting sensitive information into general tools\", \"Sending AI-written messages without checking tone and facts\"],\n [\"Use placeholders for sensitive details\", \"Review every outward-facing message before sending\"]\n ),\n _concept(\n \"RAG and Knowledge Grounding\",\n \"RAG, or retrieval-augmented generation, means the AI first pulls relevant information from trusted material and then generates its answer using that material.\",\n \"Teachers should know this because grounded AI is safer for school policies, syllabi, lesson notes, and curriculum-aligned answers.\",\n \"A school assistant answers questions using the school handbook or curriculum documents instead of guessing from general internet-style knowledge.\",\n [\"School policy Q&A\", \"Curriculum-grounded assistant\", \"Lesson-note-based support\"],\n [\"Thinking RAG removes the need for review\", \"Using weak or outdated source documents\"],\n [\"Use trusted source material\", \"Check whether the answer actually matches the retrieved source\"]\n ),\n _concept(\n \"Agents, Tools, and Workflows\",\n \"A chatbot mainly answers a prompt. An AI workflow links multiple steps together. An agent can use tools, resources, or actions to complete a broader goal.\",\n \"Teachers do not need heavy technical detail, but they should understand why a tool that chains planning, quiz generation, and review feels more useful than a single prompt.\",\n \"A teacher workflow goes from topic to lesson plan to activity to quiz to review checklist instead of treating each step separately.\",\n [\"Planning chains\", \"Teacher workflows\", \"Multi-step classroom preparation\"],\n [\"Calling every chatbot an agent\", \"Skipping review just because the workflow feels automated\"],\n [\"Use workflows for repeat tasks\", \"Keep human approval at the end of every important chain\"]\n ),\n _concept(\n \"AI Guardrails and Permissions\",\n \"AI guardrails and permissions are the limits that control what an AI tool is allowed to access, what it can generate automatically, and when a teacher must approve the next step.\",\n \"This matters because classroom workflows often involve sensitive information, outward-facing communication, and decisions that should stay under teacher control.\",\n \"A teacher allows AI to draft a parent message from anonymized notes but does not allow the system to send the message or access student records directly.\",\n [\"Read-only access\", \"Approval before sending\", \"Privacy-first workflow design\"],\n [\"Giving tools access to sensitive information by default\", \"Letting AI act publicly without teacher approval\"],\n [\"Allow only the access needed for the task\", \"Keep approval checkpoints before any sensitive or high-impact action\"]\n ),\n _concept(\n \"Model Choice, Privacy, and Cost\",\n \"Different AI tools and models vary in quality, speed, privacy, cost, and control. Some are strong cloud tools, while others are smaller or more private.\",\n \"Teachers need this concept to choose practical tools instead of assuming every AI system is equally safe or equally capable.\",\n \"A teacher may use a powerful cloud tool for lesson drafting but avoid putting sensitive student data into it because privacy matters more than convenience.\",\n [\"Cloud AI tools\", \"Private-use constraints\", \"Capability vs privacy tradeoffs\"],\n [\"Choosing tools only by speed or polish\", \"Ignoring privacy and school policy\"],\n [\"Choose tools by task, privacy, and review needs\", \"Avoid sharing sensitive student information unless policy clearly allows it\"]\n ),\n _concept(\n \"Human-in-the-Loop and Workflow\",\n \"Human-in-the-loop means the teacher stays in control by reviewing, editing, and approving AI output before use. A workflow is the repeatable sequence of steps that links planning, activities, assessment, and review.\",\n \"This is how teachers use AI effectively without becoming overdependent on it.\",\n \"A teacher uses one repeatable flow: topic to lesson plan to activity to quiz to final review.\",\n [\"Review checkpoints\", \"Planning workflow\", \"Draft then approve pattern\"],\n [\"Skipping review because AI saves time\", \"Using one-off prompts without a repeatable process\"],\n [\"Build reusable workflows\", \"Insert clear review points before anything reaches students\"]\n )\n ],\n \"diagrams\": [\n {\"title\": \"Teacher AI Workflow\", \"fields\": {\"summary\": \"Future visual should show topic to lesson plan to activity to quiz to review checklist with teacher approval gates.\"}},\n {\"title\": \"Responsible Review Loop\", \"fields\": {\"summary\": \"Future visual should show AI draft to teacher verification to classroom adaptation to final use.\"}}\n ],\n \"activities\": [\n {\n \"title\": \"Live Demo: Photosynthesis Teaching Workflow\",\n \"objective\": \"Show one complete AI-assisted teaching workflow from topic to lesson plan to activity to assessment to review.\",\n \"instructions\": [\n \"Use the prefilled topic, Photosynthesis, to run the full demo live.\",\n \"Show how the AI produces a first draft, then improve it with teacher guidance.\",\n \"Explain each stage: what is happening now, what the audience is seeing, and what comes next.\"\n ],\n \"expected_outcome\": \"Teachers experience one lively end-to-end demo that clearly shows AI drafting, teacher review, and classroom-ready output.\",\n \"what_we_will_do\": [\n \"Start with one topic and generate a lesson plan draft.\",\n \"Turn the same topic into a classroom activity and a short assessment.\",\n \"Add a support version for struggling learners.\",\n \"Review and polish the full workflow before classroom use.\"\n ],\n \"what_you_will_see\": [\n \"How a single prompt can create a first draft quickly.\",\n \"How teacher intervention improves clarity, structure, and practicality.\",\n \"How one workflow can support planning, activity design, assessment, and differentiation together.\"\n ],\n \"what_teachers_can_do\": [\n \"Reuse the same workflow for future topics.\",\n \"Turn one topic into multiple classroom assets in minutes.\",\n \"Keep control by reviewing every important stage before use.\"\n ],\n \"live_demo_flow\": [\n \"Topic and classroom context\",\n \"AI first draft\",\n \"Teacher improvement prompt\",\n \"Activity and assessment expansion\",\n \"Differentiation support version\",\n \"Teacher review and final approval\"\n ],\n \"sample_prompt\": \"Act as an experienced Intermediate science teacher. Create a lesson plan on photosynthesis. Include learning objective, starter, explanation, one interactive classroom activity, 4 quick assessment questions, one support version for struggling learners, and a final teacher review checklist.\",\n \"sample_output\": [\n \"A first-pass teaching workflow with planning, activity, assessment, and support materials.\",\n \"A draft that becomes stronger after teacher review, refinement, and approval.\"\n ],\n \"review_points\": [\n \"Check subject accuracy.\",\n \"Check whether the activity is realistic for your class size and time.\",\n \"Check that the assessment matches the objective.\",\n \"Check that the support version still teaches the same core concept.\"\n ],\n \"demo_config\": {\n \"demo_kind\": \"workflow\",\n \"subject_options\": [\"Science\"],\n \"grade_options\": [\"Intermediate\"],\n \"topic_examples\": [\"Photosynthesis\"],\n \"teacher_goal\": \"Show one lively classroom-ready AI workflow from start to finish\"\n }\n }\n ],\n \"assignments\": [\n {\n \"title\": \"Common AI Terms for Teachers\",\n \"fields\": {\n \"plain_language_meanings\": [\n \"AI: software that helps with tasks like drafting, predicting, recognizing patterns, or organizing information.\",\n \"Generative AI: AI that creates new text, worksheets, activities, summaries, or feedback drafts.\",\n \"LLM: the language model behind many AI chat tools.\",\n \"Prompt: the instruction you give the AI.\",\n \"Prompt template: a reusable prompt pattern for repeat tasks.\",\n \"Hallucination: an answer that sounds strong but is wrong or unsupported.\",\n \"Human-in-the-loop: the teacher checks and approves the result before use.\",\n \"Workflow: a repeatable sequence such as topic to lesson to activity to quiz to review.\"\n ]\n }\n },\n {\n \"title\": \"Prompt Templates for Teachers\",\n \"fields\": {\n \"lesson_planning\": [\n \"Act as an experienced [subject] teacher. Create a lesson plan for [grade level] on [topic]. Include learning objective, starter, explanation, guided practice, class activity, formative check, and homework.\",\n \"Rewrite this lesson plan for a class with mixed ability levels. Add support scaffolds and one extension challenge.\"\n ],\n \"assessment\": [\n \"Create 5 MCQs and 3 short-answer questions for [topic] at [grade level]. Include answer key, difficulty note, and one common misconception each question checks.\",\n \"Generate an exit ticket with 3 questions that checks whether students met this objective: [objective].\"\n ],\n \"rubrics_and_feedback\": [\n \"Create a rubric for [assignment] with 4 criteria and 4 performance levels. Use teacher-friendly language and keep criteria observable.\",\n \"Draft feedback comments for a student who shows [strength] but needs to improve [area]. Keep the tone constructive and specific.\"\n ],\n \"differentiation\": [\n \"Explain [topic] at three levels: support, on-level, and extension. Keep the same core learning goal.\",\n \"Rewrite this worksheet for students who need simpler vocabulary and shorter instructions: [paste content].\"\n ],\n \"productivity\": [\n \"Summarize these anonymized student comments into key themes, strengths, concerns, and suggested next steps: [paste comments].\",\n \"Draft a professional parent message about [issue] in a calm and respectful tone. Leave placeholders where I should add verified details.\"\n ]\n }\n },\n {\n \"title\": \"Responsible AI Guidance\",\n \"fields\": {\n \"core_rules\": [\n \"Do not paste sensitive student data unless school policy clearly allows it.\",\n \"Use anonymized examples whenever possible.\",\n \"Treat AI output as a draft, not as a final professional decision.\",\n \"Check factual claims, answer keys, dates, references, and curriculum alignment before classroom use.\",\n \"Review tone, fairness, and inclusivity in any student-facing or parent-facing text.\"\n ],\n \"academic_integrity\": [\n \"Explain to students when AI support is allowed and when independent work is expected.\",\n \"Use AI to support learning design, not to outsource teacher judgment or student thinking.\"\n ]\n }\n },\n {\n \"title\": \"Risks and Limitations\",\n \"fields\": {\n \"hallucinations\": [\n \"AI may invent facts, references, quotations, examples, or answer keys.\",\n \"Confident wording does not guarantee educational accuracy.\"\n ],\n \"bias_and_fairness\": [\n \"AI can produce stereotypes or one-sided assumptions.\",\n \"Examples, names, and cultural references may not always be inclusive or appropriate.\"\n ],\n \"privacy\": [\n \"Many AI tools should not receive personally identifiable student information.\",\n \"Even summaries and feedback prompts can expose sensitive information if copied carelessly.\"\n ],\n \"pedagogical_limits\": [\n \"AI may suggest activities that are unrealistic for your timetable or class context.\",\n \"Generated content may be too generic, too easy, or misaligned with your curriculum.\"\n ]\n }\n },\n {\n \"title\": \"Human Review Checkpoints\",\n \"fields\": {\n \"before_using_a_lesson\": [\n \"Check subject accuracy and age appropriateness.\",\n \"Confirm classroom feasibility.\",\n \"Make sure the lesson actually matches your objective.\"\n ],\n \"before_using_assessment\": [\n \"Verify every answer key and distractor.\",\n \"Check that the wording is fair and unambiguous.\",\n \"Remove any items that reward guessing over understanding.\"\n ],\n \"before_sharing_feedback_or_messages\": [\n \"Review tone, sensitivity, and school policy alignment.\",\n \"Replace generic language with specific evidence you can stand behind.\",\n \"Confirm no private or unverified claims are included.\"\n ]\n }\n }\n ],\n \"instructor_notes\": [\n {\n \"title\": \"Facilitation Notes\",\n \"fields\": {\n \"notes\": [\n \"Use teacher examples from multiple subjects so the workshop feels widely applicable.\",\n \"Avoid drifting into technical AI explanations unless they support a classroom decision.\",\n \"Pause after every demo to ask: what would you keep, what would you edit, what would you reject?\",\n \"Model privacy-safe prompting and anonymization throughout the day.\"\n ]\n }\n }\n ]\n },\n \"activity\": {\n \"id\": \"teacher-workshop-activity-01\",\n \"week_id\": \"teacher-workshop-01\",\n \"type\": \"workflow-builder\",\n \"title\": \"Teacher Demo Studio\",\n \"instructions\": \"Run one live prefilled teaching demo and narrate each stage from AI draft to teacher-approved classroom output.\",\n \"items\": [\n {\"label\": \"Photosynthesis Live Demo\"}\n ],\n \"success_criteria\": \"Teachers can follow one complete live demo, understand each stage, and see clearly where teacher review improves the result.\"\n },\n \"quiz\": {\n \"id\": \"teacher-workshop-quiz-01\",\n \"week_id\": \"teacher-workshop-01\",\n \"title\": \"Teacher Workshop Checkpoint\",\n \"passing_score\": 70,\n \"questions\": [\n {\n \"id\": \"tw1-q1\",\n \"prompt\": \"What is the healthiest way for teachers to think about AI in this workshop?\",\n \"options\": [\n \"As a replacement for teacher judgment\",\n \"As a drafting and workflow assistant that still needs review\",\n \"As a tool that is always factually correct\",\n \"As a system that should receive all student data\"\n ],\n \"answer_index\": 1,\n \"explanation\": \"The workshop treats AI as a practical assistant, while teachers remain responsible for quality, safety, and final decisions.\"\n },\n {\n \"id\": \"tw1-q2\",\n \"prompt\": \"Which action is most important before using AI-generated quiz questions with students?\",\n \"options\": [\n \"Share them immediately to save time\",\n \"Verify answer keys, wording, and alignment to the learning objective\",\n \"Translate them into another language first\",\n \"Ask the AI to confirm its own accuracy\"\n ],\n \"answer_index\": 1,\n \"explanation\": \"Teachers should review assessment quality and correctness before classroom use.\"\n },\n {\n \"id\": \"tw1-q3\",\n \"prompt\": \"Why should teachers avoid pasting sensitive student information into general AI tools?\",\n \"options\": [\n \"Because AI tools cannot read text\",\n \"Because privacy, policy, and confidentiality risks still apply\",\n \"Because AI only works with images\",\n \"Because it makes prompts shorter\"\n ],\n \"answer_index\": 1,\n \"explanation\": \"Education work often includes sensitive information, so privacy and policy rules must guide tool use.\"\n },\n {\n \"id\": \"tw1-q4\",\n \"prompt\": \"Which example best shows a teacher workflow rather than a one-off prompt?\",\n \"options\": [\n \"Ask for one definition only\",\n \"Topic to lesson plan to activity to quiz to review checklist\",\n \"Copy the first AI answer into class slides\",\n \"Use AI only to write a title\"\n ],\n \"answer_index\": 1,\n \"explanation\": \"A workflow connects multiple useful steps and makes review points explicit.\"\n }\n ]\n },\n \"reflection\": {\n \"prompt\": \"What is one teaching task where AI could save you time, and what review steps would you keep before using the result?\",\n \"placeholder\": \"AI could help me draft a lesson plan for my next topic, but I would still check accuracy, classroom timing, student level, and whether the activity fits my class.\"\n },\n \"teacher_notes\": [\n \"Keep every demo teacher-centered and practical.\",\n \"Repeat that fast drafting is useful only when paired with careful review.\"\n ]\n }\n}\n\n\ndef get_manifest():\n return [deepcopy(CURRICULUM_MAP[key]) for key in CURRICULUM_MAP]\n\n\ndef transform_week(week_id: str):\n if week_id not in WEEK_CONTENT:\n raise FileNotFoundError(f\"Unknown week: {week_id}\")\n\n meta = deepcopy(CURRICULUM_MAP[week_id])\n content = deepcopy(WEEK_CONTENT[week_id])\n if meta.get(\"track\") == \"teacher\":\n _reorder_teacher_concepts(content)\n content[\"curriculum\"][\"concepts\"] = _attach_media_slots(content[\"curriculum\"][\"concepts\"])\n _sync_core_ideas_with_concepts(content)\n _prune_runtime_content(content, week_id)\n content[\"id\"] = week_id\n content[\"title\"] = meta[\"title\"]\n content[\"sequence\"] = meta[\"sequence\"]\n content[\"short_title\"] = meta[\"short_title\"]\n content[\"theme_color\"] = meta[\"theme_color\"]\n content[\"estimated_minutes\"] = meta[\"estimated_minutes\"]\n content[\"focus\"] = meta[\"focus\"]\n content[\"signature_activity\"] = meta[\"signature_activity\"]\n content[\"track\"] = meta.get(\"track\", \"student\")\n content[\"delivery_label\"] = meta.get(\"delivery_label\", \"Week\")\n content[\"sequence_label\"] = meta.get(\"sequence_label\")\n content[\"audience\"] = meta.get(\"audience\")\n return content\n"}}}}