How to Beginner · 3 min read

How teachers use AI for lesson planning

Quick answer
Teachers use AI and LLMs like gpt-4o to generate tailored lesson plans by providing curriculum topics and objectives as prompts. This automates content creation, suggests activities, and adapts materials to different student levels, saving time and enhancing engagement.

PREREQUISITES

  • Python 3.8+
  • OpenAI API key (free tier works)
  • pip install openai>=1.0

Setup

Install the openai Python package and set your API key as an environment variable for secure access.

bash
pip install openai
output
Collecting openai
  Downloading openai-1.x.x-py3-none-any.whl (xx kB)
Installing collected packages: openai
Successfully installed openai-1.x.x

Step by step

Use the gpt-4o model to generate a lesson plan by sending a prompt describing the topic and grade level. The model returns a structured plan with objectives, activities, and resources.

python
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

prompt = (
    "Create a detailed lesson plan for teaching photosynthesis to 8th grade students. "
    "Include learning objectives, key concepts, activities, and assessment ideas."
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": prompt}]
)

lesson_plan = response.choices[0].message.content
print("Generated Lesson Plan:\n", lesson_plan)
output
Generated Lesson Plan:

Learning Objectives:
- Understand the process of photosynthesis...

Key Concepts:
- Chlorophyll, sunlight, carbon dioxide...

Activities:
- Interactive diagram labeling...

Assessment Ideas:
- Quiz on photosynthesis stages...

Common variations

You can use asynchronous calls for integration in web apps or switch to other models like claude-3-5-sonnet-20241022 for different styles. Streaming responses enable real-time display of generated content.

python
import os
import asyncio
from openai import OpenAI

async def generate_lesson_plan():
    client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
    prompt = (
        "Create a lesson plan for basic algebra targeting high school freshmen."
    )
    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}],
        stream=True
    )
    async for chunk in response:
        print(chunk.choices[0].delta.content or "", end="", flush=True)

asyncio.run(generate_lesson_plan())
output
Learning Objectives:
- Understand variables and expressions...
Key Concepts:
- Variables, equations...
Activities:
- Solve simple equations...
Assessment Ideas:
- Homework problems...

Troubleshooting

If you receive authentication errors, verify your OPENAI_API_KEY environment variable is set correctly. For rate limit errors, reduce request frequency or upgrade your plan. If output is irrelevant, refine your prompt with clearer instructions.

Key Takeaways

  • Use gpt-4o to automate and customize lesson plan creation efficiently.
  • Provide clear, detailed prompts to get structured and relevant lesson content.
  • Leverage async and streaming APIs for responsive educational apps.
  • Always secure your API key via environment variables to avoid leaks.
Verified 2026-04 · gpt-4o, claude-3-5-sonnet-20241022
Verify ↗