Prompt Engineer a Lesson Plan
Build a reusable prompt template that generates lesson plans with Claude.
Introduction
⚡️ 30 Second Summary
Whether you are planning a class, a workshop, or a training session, creating a thorough lesson plan takes hours of research, formatting, and revision.
In this project, you will use three prompt engineering techniques with Claude to generate a polished, standards-aligned lesson plan as a shareable Artifact.
What You'll Build
You will craft a reusable prompt template that combines role prompting, XML-structured instructions, and iterative refinement to produce a complete lesson plan in Claude, ready to share with a single link.
A basic prompt goes in, gets enhanced with role prompting and XML tags, then Claude generates a structured lesson plan as a publishable Artifact.
By the end of this project, you'll have:
- 🧩 A reusable prompt template incorporating role prompting, XML tags, and iterative refinement.
- 📝 A complete, standards-aligned lesson plan on your chosen topic rendered as a Claude Artifact.
- 🔄 A prompt iteration log showing progression from a basic prompt to an advanced, multi-technique prompt.
- 💎 Secret Mission: Add differentiated instruction to generate three difficulty-level lesson plans.
Want a complete demo of how to do this project, from start to finish? Check out our 🎬 walkthrough with Maya
Do I need to pay to do this project?
No. Claude's free tier gives you access to Claude Sonnet and Artifacts at no cost. You can complete this entire project without spending anything.
Not sure if this project is right for you? Check if it matches your goals
If you're up for a bit of a challenge, quiz yourself on the key concepts up ahead in this project.
Get Your Tools Ready
To build your reusable prompt template and lesson plan, you need access to Claude, Anthropic's AI assistant. Claude has features specifically designed for structured content creation, including Projects for persistent context and Artifacts for shareable, standalone documents.
In this step, you will create a free Claude account and set up a Project for your work.
In this step, get ready to:
- Create a free Claude account.
- Create a Project to organize your prompt engineering work.
Create Your Claude Account
Do you already have a Claude account?
✔️ I already have an account
- Click Log in and enter your email and password.
You're all set. Move on to the next section below.
ⓧ I don't have an account yet
- Go to claude.ai and click Sign up.
- Sign up with your email or Google account.
- Verify your email if prompted.
What is Claude?
Claude is an AI assistant made by Anthropic. The free tier gives you access to Claude Sonnet 4.6 with approximately 30 to 100 messages per day on a rolling 5-hour window.
Create a Project for Your Prompt Engineering Work
Projects in Claude let you keep conversations, iterations, and Artifacts organized in one place.
- Find the Projects section in the left sidebar.
- Click New Project.
- Name your project Lesson Plan Generator.
- In the What are you trying to achieve? field, type a short description like Build a reusable prompt template for generating lesson plans.
Why create a Project?
Projects keep all your related conversations and Artifacts in one place. Free users get up to 5 projects. All of the work you do in the rest of this project will happen inside this Project.
Your Claude account is set up and your Project is ready. Next up, you will write your very first prompt inside this Project and see what happens when you ask Claude for a lesson plan without any prompt engineering.
Write Your First Prompt
You have your Claude account set up and your Lesson Plan Generator Project ready. Now it is time to put Claude to work. The goal of this project is to build a reusable prompt that produces professional-quality lesson plans. But first, you need to understand the problem.
What happens when you ask an AI for a lesson plan without any guidance? In this step, you will write a basic prompt, evaluate the output, and identify exactly what is missing.
In this step, get ready to:
- Write a basic prompt and observe the output.
- Analyze the gaps in the generated lesson plan.
- Understand why prompt engineering matters.
Choose Your Lesson Topic
Before writing your first prompt, pick a topic for your lesson plan. You will use this topic throughout the rest of the project.
- What topic would you like to create a lesson plan for?
- Enter your topic: data structures
Any topic works
We use data structures as the default example, but you can follow this project with any subject you teach or study, such as photosynthesis, the American Revolution, or fractions.
Write a Basic Prompt
Most people start using AI the same way: type a simple request and hope for the best. You will do exactly that so you can see the result firsthand.
- Inside your Lesson Plan Generator Project, type the following prompt:
Write me a lesson plan about [[LESSON_TOPIC="data structures"]].
- Press Enter and wait for Claude to respond.
You should see the Artifact panel appear on the right side of the screen. This is where Claude renders standalone documents like lesson plans, code, and other structured content that you can copy, download, or share.
Claude didn't create an Artifact?
If Claude responds with plain text instead of an Artifact, send a follow-up message: Can you create that lesson plan as an Artifact instead? Artifacts are generated automatically for substantial, self-contained content, but sometimes Claude needs a nudge.
💡 What are Artifacts?
Artifacts are standalone pieces of content that Claude creates alongside its chat responses. They appear in a panel on the right side of the screen. You can copy, download, or share them with a link.
Why are we typing such a simple prompt?
This is intentional. You want to see the baseline, the kind of output you get when you give an AI no structure, no role, and no format requirements. The gap between this output and what a professional needs is exactly what prompt engineering solves.
Identify What Is Missing
Review the lesson plan Claude generated. Check whether it includes:
- Measurable learning objectives
- Standards alignment (e.g. CSTA, ISTE)
- Timed activities
- Assessments to check understanding
- Differentiation strategies for different learners
Most likely, the output is generic and surface-level. That is the problem prompt engineering solves. Without clear instructions, Claude guesses what you want and produces something reasonable but not usable in a real classroom.
What is prompt engineering?
Prompt engineering is the skill of crafting inputs to AI models so they produce more accurate, useful, and targeted outputs. In the next steps, you will apply three Anthropic-recommended techniques: role prompting, XML tags, and iterative refinement.
You have seen what a basic prompt produces and why it falls short. Next, you will apply your first prompt engineering technique, role prompting, to transform your results.
Level Up Your Prompts
Your first prompt showed exactly why a plain request produces a generic lesson plan. Now you are going to fix that by applying three techniques one at a time, comparing outputs at each stage to see the improvement.
Anthropic officially recommends several core prompt engineering techniques for Claude: role prompting (giving Claude a persona), XML tags (structuring your request), and iterative refinement (improving through comparison). In this step, you will apply each technique individually so you can see exactly how each one changes the output.
In this step, get ready to:
- Apply role prompting to give Claude an expert persona.
- Use XML tags to request structured output sections.
- Iteratively refine the prompt by comparing outputs and addressing gaps.
Apply Role Prompting
Role prompting tells Claude what expertise to draw from. Instead of answering as a general assistant, Claude adopts the perspective of a specialist, producing more targeted language, appropriate depth, and domain-specific details.
- On the top left corner, click on Lesson Plan Generator to start a new conversation inside the project.
- Copy and paste the following prompt:
You are an experienced [[LESSON_TOPIC="data structures"]] teacher with 15 years of experience designing curriculum aligned to [[STANDARDS_FRAMEWORK="CSTA"]] standards. Write a lesson plan about [[LESSON_TOPIC="data structures"]] for a [[GRADE_LEVEL="high school (grades 9-12)"]] introductory class.
- Press Enter to send the prompt.
You should notice the response now uses pedagogical language, references grade-level standards, and targets a clearly defined audience. The single role assignment sentence made all of that happen.
Why does role prompting work?
When you give Claude a persona, it filters its response through that lens. A "15-year veteran CS teacher" draws on education-specific patterns in its training data, producing vocabulary, structure, and depth appropriate for that role.
Add XML Tags for Structured Output
XML tags are markers like <objectives> and </objectives> that tell Claude exactly how to organize its response. Claude is specifically trained to understand XML tags, making them the most reliable way to request structured output.
- Start a new message in your project.
- Copy and paste the following prompt, which combines role prompting with XML tags:
You are an experienced [[LESSON_TOPIC="data structures"]] teacher with 15 years of experience designing curriculum aligned to [[STANDARDS_FRAMEWORK="CSTA"]] standards.
Create a lesson plan about [[LESSON_TOPIC="data structures"]] for a [[GRADE_LEVEL="high school (grades 9-12)"]] introductory class. Structure your response using these sections:
<objectives>3-5 measurable learning objectives aligned to [[STANDARDS_FRAMEWORK="CSTA"]] standards</objectives>
<materials>Required materials and tools</materials>
<warm-up>5-minute opening activity to activate prior knowledge</warm-up>
<direct-instruction>15-minute teacher-led explanation with examples</direct-instruction>
<guided-practice>15-minute hands-on activity with teacher support</guided-practice>
<assessment>Formative assessment to check understanding</assessment>
<differentiation>Modifications for beginner, intermediate, and advanced students</differentiation>
- Press Enter to send the prompt.
The response should now have clearly labeled sections matching each XML tag, with content scoped to the requirements you defined inside the tags.
- Scroll down to review the full structured output.
Claude is showing the XML tags as literal text?
If Claude outputs the raw XML tags (like <objectives>) instead of using them as section headers, send a follow-up message: Please use the XML tag names as section headers and fill in the content for each section, rather than displaying the tags literally.
💡 What are XML tags?
XML tags use angle brackets with descriptive names to mark the beginning and end of a section, like and. Claude was trained with XML in its training data, so it understands these markers natively. Use descriptive, lowercase tag names with hyphens for multi-word names.
💡 Why use XML tags instead of bullet points or numbered lists?
Bullet points suggest a list format, but XML tags define both the section name and the expected content. This gives Claude clearer boundaries for each part of the response, resulting in more consistent and complete outputs.
Iteratively Refine Your Prompt
Iterative refinement means reviewing Claude's output, identifying gaps, and sending follow-up prompts to improve specific sections. Each round of refinement builds on the previous output.
- Review the XML-structured lesson plan you just generated.
- Look for common issues: non-measurable objectives, unrealistic time allocations, or activities that feel too passive.
- Send a follow-up message in the same conversation:
The learning objectives are good, but the guided practice activity feels too passive. Can you revise the <guided-practice> section to include a hands-on activity where students actively apply the concept? Also, add estimated time in minutes to each section.
- Press Enter to send the follow-up.
- Scroll up in this conversation to compare the revised output with the XML-structured version above it.
Each iteration should be measurably better. The guided practice section should now describe a specific hands-on activity, and every section should include time estimates.
Claude regenerated the entire lesson plan instead of revising just one section?
This can happen. If Claude rewrites everything instead of targeting the specific section, send a follow-up message: I only wanted you to revise the guided-practice section and add time estimates. Please keep all other sections the same and only update those two things.
💡 What improvements should I expect?
Compare the guided practice sections side by side. The original might say something generic like "students will practice with examples," while the refined version should describe a specific activity, like "students will implement a linked list in pairs using a provided starter template (15 minutes)." You should also see time estimates added to every section.
💡 What is iterative refinement?
Iterative refinement is the practice of reviewing AI output, identifying what is missing or weak, and sending targeted follow-up prompts. Instead of trying to write the perfect prompt on the first attempt, you improve incrementally. This is how professional prompt engineers work with Claude.
You have now seen the power of each technique on its own. In the final step, you will combine all three into a single reusable prompt template and generate your polished final deliverable.
Build Your Prompt Template
You have applied role prompting, XML tags, and iterative refinement individually and seen how each one improves your output. The goal of this project is to build a reusable prompt template that consistently produces high-quality lesson plans. Right now, your techniques are scattered across separate conversations.
How do we bring everything together into a single, polished prompt that works every time? And how do we turn the output into something shareable?
In this step, get ready to:
- Assemble a master prompt template combining all three techniques.
- Generate the final lesson plan and request it as an Artifact.
- Review and share your finished Artifact.
Assemble the Master Prompt Template
The real power of prompt engineering is not just getting one good output. It is building reusable templates that consistently produce high-quality results. You are going to combine everything from the previous steps into a single master prompt.
- Start a new conversation inside your Lesson Plan Generator Project.
- Build your master prompt with the four key elements: a role assignment, context about your audience, XML tags defining every required section, and quality requirements for measurable objectives, hands-on activities, time estimates, and differentiation.
💪 Try it yourself
Using what you learned in Steps 2 and 3, write a master prompt that combines:
- A role assignment at the top (like the one from Step 3).
- Context about your data structures, high school (grades 9-12), and CSTA.
- Quality requirements like measurable objectives, time estimates, and hands-on activities.
- XML tags defining each section of the lesson plan (objectives, materials, activities, assessment, differentiation).
🤝 Need assistance
- Copy and paste the following prompt template into the conversation:
You are a veteran [[LESSON_TOPIC="data structures"]] teacher with 15 years of experience designing curriculum for [[GRADE_LEVEL="high school (grades 9-12)"]] students.
Create a comprehensive lesson plan for teaching [[LESSON_TOPIC="data structures"]] to [[GRADE_LEVEL="high school (grades 9-12)"]] students, aligned with [[STANDARDS_FRAMEWORK="CSTA"]].
Structure the lesson plan using these sections:
<lesson-overview>
Include the topic, grade level, duration, and learning objectives. Each objective must be measurable using an action verb.
</lesson-overview>
<materials-needed>
List all required materials, technology, and preparation steps.
</materials-needed>
<lesson-body>
Break the lesson into timed segments:
<opening> An engaging hook activity (5-10 minutes) </opening>
<direct-instruction> Core teaching with examples (10-15 minutes) </direct-instruction>
<guided-practice> Hands-on activity with teacher support (15-20 minutes) </guided-practice>
<independent-practice> Student-led work (10-15 minutes) </independent-practice>
<closing> Recap and exit ticket (5 minutes) </closing>
</lesson-body>
<differentiation>
Provide modifications for:
<advanced> Extensions for students who finish early </advanced>
<struggling> Scaffolds for students who need extra support </struggling>
<ell> Adaptations for English Language Learners </ell>
</differentiation>
<assessment>
Include both formative checks and a summative assessment rubric.
</assessment>
- Paste your assembled prompt into the conversation and move on to the next subsection.
Why combine all three techniques?
Each technique you learned solves a different problem. Role prompting sets the expertise level. XML tags enforce structure. Iterative refinement adds depth. Together, they produce outputs that are consistently detailed, well-organized, and ready to use.
💡 What makes this a good template?
The placeholder variables make this template reusable. You can swap "data structures" for "photosynthesis" or "fractions" and get a quality lesson plan each time without rewriting the whole prompt.
Generate the Final Lesson Plan as an Artifact
Now you will send the prompt and ask Claude to produce the lesson plan as an Artifact, a standalone shareable document.
- Add this instruction to the end of your prompt: Please render the complete lesson plan as an Artifact so I can share it as a standalone document.
- Press Enter to send the full prompt.
Claude will generate the lesson plan and render it in the Artifact panel on the right side of the screen. Artifacts are created automatically when the content is substantial (typically 15 or more lines) and self-contained.
What is an Artifact?
An Artifact is a standalone document that Claude creates alongside its chat response. Unlike regular chat text, Artifacts can be copied, downloaded, and saved. They are available on all Claude plans, including the free tier.
Review and Share Your Artifact
Your lesson plan is generated. Now verify that it includes everything your template requested, and then share it.
- Click the Artifact panel to expand and review the full lesson plan.
- Verify that all the XML-tagged sections you requested are present: lesson overview, materials needed, lesson body with timed segments, differentiation, and assessment.
A section is missing or incomplete?
If any section from your template is missing, send a follow-up message: The lesson plan is missing the [section name] section. Can you add it following the structure I requested in my original prompt? Replace [section name] with whichever section is absent, like "differentiation" or "assessment."
💡 Pro tip: Save your template for future use
Copy the prompt template (with the placeholder variables, before you filled them in) and save it somewhere you can find it later. You now have a reusable tool for generating lesson plans on any topic.
- To save your finished lesson plan, click the Download button on the Artifact to export it as a file, or copy the content directly.
Secret mission
Add Differentiated Instruction
What is differentiated instruction?
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your Claude conversations running, pause them to come back later, or delete them entirely. This project runs entirely in the browser on Claude's free tier, so there are no ongoing costs or cloud resources to clean up.
Resources you used:
- Claude conversation(s) from the project
- Saved Artifact files
- Claude account
✔️ Keep everything running
No action needed. Choose this if you want to keep your conversations and Artifacts for reference.
Your prompt template and Artifacts remain accessible in your Claude account at no cost.
✋ Pause - I'll come back to this later
No action needed for this project. There are no running processes or cloud resources to pause.
Your conversation history and Artifacts stay in your Claude account and are ready whenever you want to revisit them.
ⓧ Delete - I don't want to use this again
Remove your project conversations and Artifacts if you no longer need them.
- Open Settings in Claude and manage your conversation history.
- Delete any saved Artifact files you no longer need.
- To delete your Claude account, go to Settings, select Account, and select Delete Account.
p.s. Does it say "Still tasks to complete!" at the bottom of the screen?
This means you still have screenshots left to upload, or questions left to answer!
- Press Ctrl+F (Windows) or Command+F (Mac) on your keyboard.
- Search for the text Return to later.
- Jump straight to your incomplete tasks!
- 🙋♀️ Still stuck? Ask the community!
That's a Wrap!
That's a Wrap!
Nice work! 🚀 You just went from a vague one-line prompt to a reusable prompt template that produces professional, structured lesson plans. You even rendered the final result as a shareable Claude Artifact.
You've learned how to:
- 📝 Write a basic prompt and identify why generic prompts produce generic results.
- 🎭 Apply role prompting to give Claude expert-level context and perspective.
- 🏷️ Use XML tags to define structured output sections like objectives, activities, assessments, and differentiation.
- 🔄 Practice iterative refinement to progressively improve prompt quality.
- 🧩 Build a reusable prompt engineering template combining all three techniques.
- 🌐 Generate a polished lesson plan as a Claude Artifact and save it for future use.
- 💎 Extend the template to produce differentiated lesson plans at three difficulty levels.
Ready to quiz yourself? 💪