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"
-
Review the Curriculum
- Check CURRICULUM.md to see all available Python topics
- You can learn topics in any order, though some build on others
-
Request an Assignment
- Open your progress file so Claude can see where you are
- Ask Claude: "Can you generate an assignment for [topic]?" or "What should I work on next?"
- Claude will create a custom assignment based on your progress
-
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
-
Get Feedback
- Ask Claude to review your solution
- Request explanations for concepts you don't understand
- Ask for additional practice if needed
-
Update Your Progress
- Mark topics as completed (✅), in progress (🔄), or needs review (🔁)
- Add notes about difficult concepts in your progress file
- Commit your updated progress file
-
Pull Curriculum Updates
- Periodically merge updates from main:
git fetch origin git merge origin/main
- Be honest in your progress tracking - marking areas of difficulty helps Claude generate better practice assignments
- Don't rush - it's okay to mark something as "needs review" and come back to it
- Ask questions - Claude can explain concepts, debug code, and provide alternative approaches
- Practice regularly - consistent practice is more effective than cramming
- Explore freely - you don't have to go in order; jump to topics that interest you
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
├── progress-template.md # Template for tracking student progress
├── assignments/ # Placeholder for assignment files (used in student branches)
├── examples/ # Example code and reference implementations
└── students/ # Student work directories (populated in student branches)
└── student-name/ # Created in each student's branch
├── progress.md # Personal progress tracker
├── assignments/ # Completed assignments
└── notes.md # Personal notes (optional)
Claude can help you by:
- Generating assignments tailored to your current level and topic
- Reviewing your code and providing constructive feedback
- Explaining concepts in different ways until you understand
- Debugging when you're stuck
- Creating practice problems for topics you're struggling with
- Suggesting what to learn next based on your progress
Example prompts:
- "I'm ready to start learning Python. What should I work on first?"
- "Can you generate an assignment for list comprehensions?"
- "I'm struggling with recursion. Can you explain it differently and give me a simple practice problem?"
- "Can you review my solution to the dictionary assignment?"
- "What topics should I learn before tackling decorators?"
Claude can help you by:
- Identifying curriculum gaps based on your experience going through the course
- Generating example problems for new topics you want to add
- 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! 🐍