An interactive Python learning repository where students work through personalized assignments generated by Claude AI based on their individual progress.
This repository provides a structured yet flexible approach to learning Python. Each student works in their own branch, receiving customized assignments from Claude based on their progress and areas of difficulty.
-
Create Your Branch
git checkout -b student/YOUR_NAME
-
Set Up Your Progress Tracker
cp progress-template.md students/YOUR_NAME/progress.md mkdir -p students/YOUR_NAME/assignments
-
Update Your Progress File
- Edit
students/YOUR_NAME/progress.md - Fill in your name and start date
- This file helps Claude understand where you are in your learning journey
- Edit
-
Commit Your Initial Setup
git add students/YOUR_NAME/ git commit -m "Set up learning environment for YOUR_NAME"
This course uses a skill graph-based learning system that combines pre-made assignments with personalized, Claude-generated exercises:
The course is built around a Skill Graph (SKILL_GRAPH.yaml) that defines:
- Skills: Specific, assessable Python capabilities (e.g.,
python.fundamentals.variables) - Prerequisites: Skills you need to master first
- Mastery States: Your current level with each skill (π Not Started, π In Progress, π Needs Review, β Mastered, β Blocked)
How it helps you:
- π Clear prerequisite chains prevent frustration from jumping ahead
- π― Targeted bridge assignments when prerequisites are weak
- π Personalized practice based on your actual skill gaps
- β Objective mastery tracking (not just "completed" checkboxes)
See SKILL_GRAPH.md for a visual guide to all skills and their relationships.
Pre-Made Assignments:
- Located in the
assignments/directory - Cover core Python concepts with tested, proven exercises
- Include detailed instructions and example solutions
- Provide a solid foundation for each topic
Claude-Generated Assignments:
- Customized based on your skill graph progress
- Created when you need additional practice
- Tailored to your difficulty level
- Focused on areas where you're struggling
Bridge Assignments:
- Automatically generated when you try to learn a skill before prerequisites are mastered
- Target weak prerequisite skills to build a solid foundation
- Prevent frustration from tackling advanced topics too early
- Example: List Comprehensions Bridge
-
Review the Curriculum and Skill Graph
- Check CURRICULUM.md to see all available Python topics
- Review SKILL_GRAPH.md to understand skill relationships
- Ask Claude: "What skills should I work on next?" for personalized recommendations
- Browse the
assignments/directory to see pre-made assignments
-
Check Prerequisites Before Starting
- Claude will automatically check if prerequisites are β mastered
- If prerequisites are weak (π Needs Review), Claude will offer a bridge assignment
- If prerequisites are missing (β Blocked), Claude will redirect you to foundational skills
-
Start with Pre-Made Assignments
- Copy the assignment from
assignments/[topic]/assignment.mdto your student directory - Read through the instructions carefully
- Complete the assignment in your
students/YOUR_NAME/assignments/directory - You can check
assignments/[topic]/solution.pyif you get stuck, but try first!
- Copy the assignment from
-
Request Custom Assignments from Claude
- Open your progress file so Claude can see your skill statuses
- Ask Claude: "Can you generate an assignment for [skill]?"
- Or: "I'm struggling with [concept], can you create practice problems?"
- Claude will check prerequisites and create appropriate exercises
-
Complete the Assignment
- Work on the assignment in your
students/YOUR_NAME/assignments/directory - Test your code and make sure it works
- Commit your solution when complete
- Work on the assignment in your
-
Submit for Review (Triple Assessment)
- Add your self-assessment to your progress file (π Confident, π Comfortable, π Shaky, π Struggling)
- Add your personal notes about what was easy or hard
- Ask Claude to review your solution
- Claude provides:
- AI Code Review (ββββ to β)
- Skill Mastery Update (π β π β π or β )
- Detailed Feedback on implementation
- See ASSESSMENT_RUBRIC.md for review criteria
-
Learn from Feedback and Mastery Updates
- Review your self-assessment, AI review, and skill mastery status
- Mastery Promotion Logic:
- ββββ + π Confident = β Mastered (ready for next skills!)
- βββ + π Comfortable = β Mastered
- ββ or π/π = π Needs Review (more practice recommended)
- If π, Claude will suggest targeted practice or bridge assignments
- Request explanations for concepts you don't understand
-
Update Your Progress
- Commit your updated progress file with all three assessments
- Watch for newly unblocked skills (when prerequisites become β )
- Move on to the next logical skill based on the graph
-
Pull Curriculum Updates
- Periodically merge updates from main:
git fetch origin git merge origin/main
- Trust the skill graph - it prevents frustration from jumping ahead before you're ready
- Be honest in your self-assessments - they combine with AI reviews to determine skill mastery
- Compare all three assessments - self + AI review + mastery status = complete picture
- Don't skip bridge assignments - they're generated specifically to fill your gaps
- Don't rush to β - π Needs Review is valuable; it means you get more targeted practice
- Watch for unblocked skills - when you master prerequisites, new skills become available
- Ask "what's next?" - Claude uses your skill graph to recommend optimal next steps
- Review the graphs - check SKILL_GRAPH.md and ASSESSMENT_RUBRIC.md
As the course creator, you can improve the curriculum while also going through it as a student:
-
Create Your Development Branch
git checkout -b dev/YOUR_NAME
-
Work Through the Course
- Set up your student directory as a real student would
- Request assignments from Claude
- Note any issues with curriculum, unclear topics, or system improvements
-
Make Curriculum Improvements
- Edit CURRICULUM.md to clarify or expand topics
- Update progress-template.md if needed
- Add example code to the
examples/directory - Update this README with better instructions
-
Merge Improvements to Main
# Make sure you're on your dev branch git add CURRICULUM.md progress-template.md examples/ README.md # Only stage curriculum changes, NOT your personal student work git commit -m "Improve curriculum: [description of changes]" # Switch to main and merge git checkout main git merge dev/YOUR_NAME # Push updates git push origin main
-
Important: When merging to main, do not stage or commit:
- Your personal
students/YOUR_NAME/directory - Your personal progress file
- Your assignment solutions
Only commit curriculum improvements that benefit all students.
- Your personal
Branch Strategy:
main- Contains only curriculum, templates, and infrastructure (no student work)dev/instructor-name- Instructor branches for testing and curriculum developmentstudent/name- Long-lived student branches (never merged to main)
Why This Works:
- Students pull curriculum updates from main into their branches
- Instructors can dogfood the system and make improvements
- Main branch stays clean and focused on the curriculum
- Each student's work remains isolated in their branch
Future Enhancements:
- Add automated tests for example code
- Create topic-specific example repositories
- Build a difficulty progression system
- Add achievement tracking
LearnPython/
βββ README.md # This file
βββ CURRICULUM.md # Complete Python learning curriculum
βββ SKILL_GRAPH.yaml # Machine-readable skill graph with prerequisites
βββ SKILL_GRAPH.md # Human-readable skill graph visualization
βββ ASSESSMENT_RUBRIC.md # Detailed code review criteria and examples
βββ progress-template.md # Template for tracking student progress
βββ assignments/ # Pre-made assignments (on main branch)
β βββ 01-variables/ # Each topic has its own directory
β β βββ assignment.md # Assignment instructions
β β βββ solution.py # Reference solution
β βββ 02-conditionals/
β βββ 03-loops/
βββ examples/ # Example code and reference implementations
β βββ bridge-assignments/ # Example bridge assignments
βββ students/ # Student work directories (populated in student branches)
βββ student-name/ # Created in each student's branch
βββ progress.md # Personal progress tracker (with skill mastery)
βββ assignments/ # Completed assignments (pre-made, custom, bridge)
βββ notes.md # Personal notes (optional)
Claude can help you by:
- Checking prerequisites before you start new skills (prevents wasted effort)
- Generating bridge assignments when your foundation needs strengthening
- Guiding you through pre-made assignments with hints and explanations
- Reviewing your code with triple assessment - AI review + skill mastery update + feedback
- Generating custom assignments tailored to your skill graph status
- Explaining concepts in different ways until you understand
- Debugging when you're stuck
- Updating your progress file with all three assessments
- Recommending next skills based on what's β mastered and what's newly unblocked
Example prompts:
- "I'm ready to start learning Python. What should I work on first?"
- "I want to learn list comprehensions" (Claude will check prerequisites)
- "I've completed the variables assignment. My self-assessment is π Comfortable. Can you review my code?"
- "Why is my lists_traversal skill still π Needs Review?"
- "What skills are blocked by my current gaps?"
- "Generate a bridge assignment for conditionals"
- "I'm stuck on part 3 of the loops assignment. Can you give me a hint?"
- "What's the prerequisite chain for decorators?"
- "What should I work on next?" (Claude checks your skill graph)
Claude can help you by:
- Creating new pre-made assignments for topics not yet covered
- Identifying curriculum gaps based on your experience going through the course
- Reviewing and improving existing assignments for clarity and difficulty
- Generating test cases and solution code for assignments
- Reviewing curriculum structure for logical flow and dependencies
- Creating assessment criteria for different topics
- Suggesting improvements to the progress tracking system
If you're a student:
- Create your branch:
git checkout -b student/YOUR_NAME - Set up your progress file (see instructions above)
- Ask Claude: "I'm ready to start learning Python, what should I begin with?"
If you're an instructor:
- Create a dev branch:
git checkout -b dev/YOUR_NAME - Go through the student workflow to test the system
- Make improvements and merge them back to main
This learning repository is open for educational use. Feel free to fork and adapt for your own learning purposes.
If you're an instructor or course developer:
- Test the curriculum by going through it yourself
- Note areas of confusion or missing topics
- Submit improvements via your dev branch
- Help expand the examples directory
- Share feedback on the learning system design
Happy Learning! π