An anime-guided Python tutor that grows with you โ from your first print() to your first trained model.
She's not just patient. She's delighted you're here.
Built by Omega Mu Gamma Studio ยท the team behind SeeDS, KMapX, EG Suite, GateLab, Java-chan, and PlusPlus-chan.
Python-chan is a browser-based Python learning app where a warm, brilliant mascot character walks students all the way from "what is a variable" to "I just trained a logistic regression model." She's the friend who already understands the thing you're stuck on, and explains it like she's genuinely glad you asked.
Unlike the rest of the Chan family, Python-chan isn't a single curriculum โ she's three full courses, stacked. Foundations gets you fluent. Data Science gets you working with real datasets. Machine Learning gets you building models that predict things. Each course is its own complete 5-unit, 75-lesson arc, and they're designed to be taken in order โ but a confident self-learner can jump straight to Course 2 or 3 if they already know their basics.
No abstract theory walls. No condescension. Just Python, three courses deep, taught by someone who's thrilled you're learning it.
๐ Try it live โ python-chan.vercel.app
Every lesson across all 225 lessons follows this exact structure:
| Phase | Name | What Happens |
|---|---|---|
| 1 | See It Work | Python-chan shows working code, the output, and explains what's happening line by line |
| 2 | See It Break | Same code, deliberately broken โ she explains the error, why it happened, and what it teaches you |
| 3 | You Try | Student writes code or fills in blanks; pattern-based validation gives immediate feedback |
Validation is regex/pattern-based โ no code execution in the browser. This keeps the app lightweight and deployable anywhere.
| Course | Focus | Units | Lessons |
|---|---|---|---|
| 1 | Foundations | 5 | 75 |
| 2 | Data Science Track | 5 | 75 |
| 3 | Machine Learning Track | 5 | 75 |
๐ View Course 1 โ Foundations (75 lessons)
Unit 1 โ Getting Started 1.1 What is Python and Why It Matters ยท 1.2 Setting Up Your Environment ยท 1.3 Your First Python Program ยท 1.4 Variables and Assignment ยท 1.5 Basic Data Types โ int, float, str, bool ยท 1.6 Type Conversion ยท 1.7 Arithmetic Operators ยท 1.8 Comparison and Logical Operators ยท 1.9 String Formatting with f-strings ยท 1.10 Getting Input from the User ยท 1.11 Comments and Code Hygiene ยท 1.12 Common Beginner Errors ยท 1.13 How Python Reads Your Code ยท 1.14 The Python REPL ยท 1.15 Mini Challenge โ Hello, World Done Right
Unit 2 โ Control Flow and Functions 2.1 if, elif, else ยท 2.2 Nested Conditionals ยท 2.3 while Loops ยท 2.4 for Loops ยท 2.5 break, continue, pass ยท 2.6 Defining Functions ยท 2.7 Parameters and Arguments ยท 2.8 Return Values ยท 2.9 Default and Keyword Arguments ยท 2.10 Scope โ Local vs Global ยท 2.11 Recursion Basics ยท 2.12 Lambda Functions ยท 2.13 map and filter ยท 2.14 List Comprehensions ยท 2.15 Mini Challenge โ FizzBuzz Your Way
Unit 3 โ Collections 3.1 Lists and Indexing ยท 3.2 List Methods and Slicing ยท 3.3 Tuples โ Immutable Sequences ยท 3.4 Dictionaries โ Keys and Values ยท 3.5 Dictionary Methods ยท 3.6 Sets and Set Operations ยท 3.7 Nested Collections ยท 3.8 Iterating Over Collections ยท 3.9 zip and enumerate ยท 3.10 Sorting and Reversing ยท 3.11 Unpacking and Spreading ยท 3.12 Dictionary Comprehensions ยท 3.13 Choosing the Right Collection ยท 3.14 Common Collection Patterns ยท 3.15 Mini Challenge โ Word Frequency Counter
Unit 4 โ Files, Errors, and Modules 4.1 Opening and Reading Files ยท 4.2 Writing to Files ยท 4.3 Working with CSV ยท 4.4 Try, Except, Finally ยท 4.5 Raising Custom Exceptions ยท 4.6 Context Managers โ with Statement ยท 4.7 Importing Modules ยท 4.8 The Standard Library Tour ยท 4.9 Installing Packages with pip ยท 4.10 Virtual Environments ยท 4.11 os and pathlib ยท 4.12 datetime Module ยท 4.13 random Module ยท 4.14 Writing Your Own Module ยท 4.15 Mini Challenge โ File-Based To-Do List
Unit 5 โ Object Oriented Python and Final Project 5.1 Classes and Objects ยท 5.2 The init Method ยท 5.3 Instance Attributes and Methods ยท 5.4 Class Attributes and Class Methods ยท 5.5 Inheritance ยท 5.6 Method Overriding ยท 5.7 Encapsulation ยท 5.8 Polymorphism ยท 5.9 Magic Methods โ str, len, eq ยท 5.10 Decorators ยท 5.11 PEP 8 and Writing Clean Code ยท 5.12 Debugging Techniques ยท 5.13 Writing Tests with unittest ยท 5.14 Project โ Build a CLI App ยท 5.15 Project โ Polish and Submit
๐ View Course 2 โ Data Science Track (75 lessons)
Unit 1 โ The Data Science Setup 1.1 What is Data Science? ยท 1.2 The Data Science Workflow ยท 1.3 Setting Up Jupyter and Anaconda ยท 1.4 NumPy Arrays vs Python Lists ยท 1.5 Creating and Inspecting Arrays ยท 1.6 Array Operations and Broadcasting ยท 1.7 Indexing and Slicing Arrays ยท 1.8 Reshaping and Stacking Arrays ยท 1.9 Introduction to Pandas ยท 1.10 Series and DataFrames ยท 1.11 Loading Data โ CSV, Excel, JSON ยท 1.12 Exploring Your Dataset ยท 1.13 Selecting and Filtering Data ยท 1.14 Handling Missing Values ยท 1.15 Mini Challenge โ Load and Describe a Dataset
Unit 2 โ Data Cleaning and Transformation 2.1 Identifying Dirty Data ยท 2.2 Renaming Columns and Reindexing ยท 2.3 Data Type Conversion ยท 2.4 Deduplication ยท 2.5 String Cleaning in Pandas ยท 2.6 Sorting and Ranking ยท 2.7 GroupBy and Aggregation ยท 2.8 Merging and Joining DataFrames ยท 2.9 Pivot Tables ยท 2.10 Apply and Lambda in Pandas ยท 2.11 Binning and Discretization ยท 2.12 Outlier Detection ยท 2.13 Feature Engineering Basics ยท 2.14 Saving Cleaned Data ยท 2.15 Mini Challenge โ Clean a Messy Dataset
Unit 3 โ Visualization 3.1 Why Visualization Matters ยท 3.2 Matplotlib โ Your First Plot ยท 3.3 Line Charts and Bar Charts ยท 3.4 Scatter Plots and Histograms ยท 3.5 Subplots and Layouts ยท 3.6 Styling and Themes ยท 3.7 Seaborn vs Matplotlib ยท 3.8 Distribution Plots ยท 3.9 Categorical Plots ยท 3.10 Heatmaps and Correlation ยท 3.11 Pair Plots ยท 3.12 Annotating Charts ยท 3.13 Interactive Plots with Plotly Intro ยท 3.14 Choosing the Right Chart ยท 3.15 Mini Challenge โ Visualize a Real Dataset
Unit 4 โ Statistics and Exploratory Analysis 4.1 Descriptive Statistics ยท 4.2 Probability Basics ยท 4.3 Normal Distribution ยท 4.4 Binomial and Poisson Distributions ยท 4.5 Hypothesis Testing ยท 4.6 p-Values and Significance ยท 4.7 Correlation vs Causation ยท 4.8 Univariate Analysis ยท 4.9 Bivariate Analysis ยท 4.10 Multivariate Analysis ยท 4.11 Time Series Basics ยท 4.12 Rolling Statistics ยท 4.13 EDA Workflow ยท 4.14 EDA Case Study ยท 4.15 Mini Challenge โ Full EDA Pass
Unit 5 โ Intro to ML and Final Project 5.1 What is Machine Learning? ยท 5.2 Supervised vs Unsupervised ยท 5.3 Training, Validation, Test Sets ยท 5.4 Overfitting and Underfitting ยท 5.5 The Scikit-Learn API ยท 5.6 Linear Regression ยท 5.7 Logistic Regression ยท 5.8 Model Evaluation Metrics ยท 5.9 Cross Validation ยท 5.10 Web Scraping with BeautifulSoup ยท 5.11 APIs and JSON Data ยท 5.12 SQL with Pandas ยท 5.13 Project โ Choose a Dataset ยท 5.14 Project โ Full EDA and Modeling ยท 5.15 Project โ Present Your Findings
๐ View Course 3 โ Machine Learning Track (75 lessons)
Unit 1 โ ML Foundations 1.1 The ML Pipeline ยท 1.2 Feature Engineering Principles ยท 1.3 Preprocessing with Scikit-Learn ยท 1.4 Pipelines and ColumnTransformer ยท 1.5 Baseline Models ยท 1.6 Linear Regression Deep Dive ยท 1.7 Polynomial Regression ยท 1.8 Ridge and Lasso Regularization ยท 1.9 Logistic Regression Deep Dive ยท 1.10 K-Nearest Neighbors ยท 1.11 Decision Trees ยท 1.12 Support Vector Machines ยท 1.13 Regression Metrics ยท 1.14 Classification Metrics โ Precision, Recall, F1 ยท 1.15 Mini Challenge โ Compare Three Models
Unit 2 โ Ensemble Methods and Model Tuning 2.1 Bagging and Random Forests ยท 2.2 AdaBoost ยท 2.3 Gradient Boosting ยท 2.4 XGBoost ยท 2.5 Stacking and Blending ยท 2.6 Cross Validation Strategies ยท 2.7 Grid Search ยท 2.8 Random Search ยท 2.9 Feature Importance and Selection ยท 2.10 Dealing with Imbalanced Data ยท 2.11 K-Means Clustering ยท 2.12 DBSCAN ยท 2.13 Principal Component Analysis ยท 2.14 Dimensionality Reduction Use Cases ยท 2.15 Mini Challenge โ Tune a Random Forest
Unit 3 โ Neural Networks 3.1 The Perceptron ยท 3.2 Multilayer Networks ยท 3.3 Activation Functions ยท 3.4 Backpropagation Intuition ยท 3.5 Keras and TensorFlow Setup ยท 3.6 Building Your First Neural Network ยท 3.7 Loss Functions and Optimizers ยท 3.8 Dropout and Batch Normalization ยท 3.9 Callbacks and Early Stopping ยท 3.10 Saving and Loading Models ยท 3.11 Image Data and Preprocessing ยท 3.12 Convolutional Layers and Pooling ยท 3.13 Building a CNN from Scratch ยท 3.14 Transfer Learning ยท 3.15 Mini Challenge โ Image Classifier
Unit 4 โ NLP and Advanced Topics 4.1 Text Preprocessing ยท 4.2 Bag of Words and TF-IDF ยท 4.3 Word Embeddings ยท 4.4 Recurrent Neural Networks ยท 4.5 Transformers and BERT Intro ยท 4.6 Sentiment Analysis Pipeline ยท 4.7 Generative Models โ GANs Intro ยท 4.8 Reinforcement Learning Basics ยท 4.9 ML Ethics and Bias ยท 4.10 Model Monitoring and Drift ยท 4.11 Saving Models โ Joblib and Pickle ยท 4.12 Building a Flask API for Your Model ยท 4.13 AutoML Tools ยท 4.14 MLOps Overview ยท 4.15 Mini Challenge โ Sentiment Classifier
Unit 5 โ Capstone Project 5.1 Problem Selection and Scoping ยท 5.2 Data Collection and Cleaning ยท 5.3 Exploratory Analysis ยท 5.4 Feature Engineering ยท 5.5 Model Selection ยท 5.6 Hyperparameter Tuning ยท 5.7 Evaluation and Interpretation ยท 5.8 Handling Edge Cases ยท 5.9 Building a Flask API ยท 5.10 Model Documentation ยท 5.11 Bias Audit ยท 5.12 Peer Review Session ยท 5.13 Project โ Final Implementation ยท 5.14 Project โ Deployment ยท 5.15 Project โ Presentation
- Three-phase lesson structure โ See It Work โ See It Break โ You Try, across all 225 lessons
- Three-course progression โ Foundations unlocks Data Science, which unlocks Machine Learning; advanced learners can unlock a track early via a placement quiz
- Contextual hint escalation โ hint appears at 2 wrong attempts, solution unlocks at 5
- Pattern-based validation โ instant feedback without a server or code execution engine
- Full lesson navigation โ collapsible sidebar grouped by course โ unit โ lesson, with per-lesson completion tracking
- XP system โ earn XP per lesson, with bonus XP for first-attempt success and hint-free runs
- 15 levels (5 more than her siblings, because there's 3x the curriculum) โ clear thresholds with a persistent progress bar
- Level-gated cosmetics โ new rewards unlock as you level up, tracking your shift from "learning to code" to "shipping models"
- localStorage persistence โ no account needed, progress is saved in the browser
App Themes (equippable backgrounds):
| Level | Item | Style |
|---|---|---|
| 1 | Golden Hour Desk ๐ | Warm light through the window, mug of tea steaming next to the keyboard โ the default |
| 4 | Jupyter Garden ๐ชด | Soft green notebook cells climbing like ivy across the screen |
| 7 | Chalkboard Constellations โจ | Equations and scatter plots drawn in chalk dust across a night sky |
| 10 | Server Room Glow ๐ฅ๏ธ | Cool blue rack lights โ the model is training, and she's not leaving until it finishes |
| 13 | Golden Ratio Study ๐ | Marble desk, brass instruments, the aesthetic of someone who actually reads the math behind the model |
Character Outfits (equippable; all with full 6-expression sprite art):
| Level | Outfit | Vibe |
|---|---|---|
| 1 | Sunlit Cardigan ๐งถ | Soft, oversized, slightly too long sleeves. Her signature look, always equipped |
| 2 | Library Cardigan ๐ | Same warmth, draped over a reading nook fit for f-strings and footnotes |
| 4 | Lab Coat & Glasses ๐ฌ | Data Science Mode โ ON. Pen behind the ear, sleeves rolled |
| 5 | Greenhouse Sundress ๐ฟ | NumPy arrays bloom like a garden when you know how to broadcast them |
| 6 | Night-Owl Hoodie ๐ฆ | EDA at 2am. The dataset finally makes sense |
| 8 | Professor's Blazer ๐ | Machine Learning Mode โ ON. She means business, but she's still smiling |
| 9 | Garden Witch โจ๐ธ | The Ensemble Methods outfit. Many small spells, one strong forest |
| 10 | Idol โ Gradient Descent ๐ค | She already performs a Celebration. Might as well dress for it |
| 12 | Neural Net Kimono ๐งต | Silver thread circuitry stitched through deep navy silk |
| 14 | Capstone Crown ๐ | You survived all three courses. Wear the crown |
| 15 | Off the Clock ๐๏ธ | model.deployed = True. She is, finally, allowed to rest |
Downloadable Wallpapers (phone/desktop art, save to your device):
| Level | Wallpaper | Vibe |
|---|---|---|
| 3 | Morning Notebook โ | Jupyter cells, coffee ring stain, golden light |
| 3 | Cherry Blossom Reading Nook ๐ธ | A worn copy of a stats textbook in her lap |
| 6 | The Pandas DataFrame ๐ผ | Rows and columns rendered as a quiet, orderly garden grid |
| 6 | Scatter Plot Skyline ๐ | City lights mapped as a correlation plot, glowing softly |
| 8 | Rainy Lab Window ๐ง๏ธ | Condensation on the glass, a model training in the reflection |
| 9 | Loss Curve Sunset ๐ | The loss is finally going down. So is the sun |
| 11 | Neon Notebook Arcade ๐น๏ธ | Retro-futurist console running an actual logistic regression |
| 12 | Mountain Summit โ Convergence ๐๏ธ | She reached the global minimum. So did you |
| 13 | Shrine Steps โ Stats Edition ๐ฎ | Stone steps, dawn mist, a p-value finally below 0.05 |
| 15 | Deployment Day Sunset ๐ | The Flask API is live. Time to watch the sky instead of the logs |
Python-chan has 6 distinct expressions that fire contextually throughout lessons:
| State | Trigger |
|---|---|
idle |
Phase 1 โ explaining working code |
thinking |
Hint mode; waiting for input |
surprised |
Correct answer |
happy |
Phase transitions and encouragement |
sad |
Wrong answer (first few times) |
idle-sleep |
Idle between interactions |
Each equipped outfit has its own full set of 6 expression sprites โ swapping outfits changes Python-chan's entire look, not just a filter.
Domain Expansion โ a fullscreen celebration effect fires on milestone level-ups and on completing each of the three courses, complete with confetti.
| Layer | Choice | Why |
|---|---|---|
| Frontend | React 19 + Vite 8 | Fast HMR, ES modules, modern JSX transform |
| Styling | Plain CSS + Framer Motion 12 | No CSS framework overhead; animations via Motion |
| State | Zustand 5 | Minimal boilerplate, works with persist middleware out of the box |
| Data | JSON files + localStorage | Zero backend for Phase 1; data adapter ready for Phase 2 |
| Routing | React Router v7 | File-level page components |
| Hosting | Vercel | Zero-config deployment |
- Node.js 18+
- npm or yarn
# Clone the repo
git clone https://github.com/Omega-Mu-Gamma-Studio/Python-Chan.git
cd Python-Chan
# Install dependencies
npm install
# Start the dev server
npm run devThe app runs at http://localhost:5173 by default.
# Build for production
npm run build
# Preview the production build locally
npm run previewThis repo is Vercel-ready with no configuration needed. Connect the repo in the Vercel dashboard and it'll detect the Vite setup automatically. No environment variables required for Phase 1.
Python-Chan/
โโโ public/
โ โโโ sprites/ # Character expressions (Sunlit Cardigan โ base outfit)
โ โ โโโ teaching.png
โ โ โโโ excited.png
โ โ โโโ frustrated.png
โ โ โโโ thinking.png
โ โ โโโ oops.png
โ โ โโโ idle.png
โ โ โโโ uniforms/ # Outfit-specific sprite sets (6 expressions each)
โ โ โโโ library-cardigan/
โ โ โโโ lab-coat/
โ โ โโโ greenhouse/
โ โ โโโ night-owl/
โ โ โโโ professor-blazer/
โ โ โโโ garden-witch/
โ โ โโโ idol/
โ โ โโโ neural-kimono/
โ โ โโโ capstone-crown/
โ โ โโโ off-the-clock/
โ โโโ wallpapers/ # Downloadable device wallpapers (10 total)
โ โโโ pythonchan-morning-notebook.png
โ โโโ pythonchan-sakura-reading-nook.png
โ โโโ pythonchan-dataframe-garden.png
โ โโโ pythonchan-scatter-skyline.png
โ โโโ pythonchan-rainy-lab.png
โ โโโ pythonchan-loss-curve-sunset.png
โ โโโ pythonchan-neon-notebook.png
โ โโโ pythonchan-convergence-summit.png
โ โโโ pythonchan-shrine-stats.png
โ โโโ pythonchan-deployment-sunset.png
โ
โโโ src/
โ โโโ components/
โ โ โโโ character/PythonChan.jsx # Sprite renderer; reads spriteOverrides from equipped outfit
โ โ โโโ layout/AppLayout.jsx # Root layout; applies theme + background
โ โ โโโ lesson/ # LessonCanvas, CodeBlock, PhaseIndicator
โ โ โโโ ui/ # Sidebar, BottomBar, XPDisplay, ProgressBar, CourseSelector
โ โ
โ โโโ data/
โ โ โโโ lessons/ # 225 JSON lesson files (course1โ3, unit1โ5, lessons 1โ15)
โ โ โโโ courses/ # 3 course JSON files (id, title, unit list)
โ โ โโโ units/ # 15 unit JSON files (id, title, lesson list)
โ โ โโโ shopItems.js # All cosmetic definitions (outfits, themes, downloadables)
โ โ
โ โโโ hooks/
โ โ โโโ useLesson.js # Lesson phase state machine
โ โ โโโ useProgress.js # Progress store bindings
โ โ โโโ useSound.js # Sound effect hooks
โ โ
โ โโโ pages/
โ โ โโโ Home.jsx # Dashboard / course selection
โ โ โโโ CoursePage.jsx # Unit list for a course
โ โ โโโ UnitPage.jsx # Lesson list for a unit
โ โ โโโ LessonPage.jsx # The actual lesson experience
โ โ โโโ Shop.jsx # Cosmetics shop
โ โ
โ โโโ services/
โ โ โโโ lessonService.js # JSON loader + lesson data access
โ โ โโโ storageService.js # localStorage adapter (Phase 2: swap for API)
โ โ
โ โโโ store/
โ โ โโโ progressStore.js # Zustand store: XP, level, outfits, progress
โ โ โโโ lessonStore.js # Zustand store: active lesson state
โ โ
โ โโโ utils/
โ โโโ xpCalculator.js # XP thresholds, level math, earned XP calculation
โ โโโ patternMatcher.js # Regex-based answer validation engine
โ โโโ pyHighlighter.js # Python syntax highlighting for code blocks
Lesson JSON files live at src/data/lessons/course{C}/unit{N}/{N}.{M}.json. Each file follows this structure:
{
"id": "1.1",
"course": 1,
"title": "What is Python and Why It Matters",
"xp": 10,
"phases": [
{
"phase": 1,
"title": "See It Work",
"dialogue": "Python-chan's explanation text here",
"code": "print('Hello, Player!')",
"output": "Hello, Player!"
},
{
"phase": 2,
"title": "See It Break",
"dialogue": "Here's what happens when...",
"code": "print('Hello, Player!'",
"error": "SyntaxError: unexpected EOF while parsing"
},
{
"phase": 3,
"title": "You Try",
"dialogue": "Your turn!",
"prompt": "What function prints text to the console in Python?",
"answer": "print()",
"hint": "It's four letters and very friendly.",
"solution": "print()"
}
]
}- Create a folder under
public/sprites/uniforms/<outfit-name>/ - Drop in 6 PNGs named:
teaching.png,idle.png,oops.png,thinking.png,frustrated.png,excited.png - Add an entry to
src/data/shopItems.jswithspriteOverridesmapping each expression state to the correct file path - That's it โ
PythonChan.jsxandShop.jsxboth readspriteOverridesautomatically
In the Shop page, triple-click the Shop title to toggle the dev cheat:
- First triple-click โ instantly sets XP to 9999 and level to 15 (unlocks everything)
- Second triple-click โ resets XP and level back to 0 / 1
- All 225 lessons authored and published across 3 courses
- Full cosmetics system (11 outfits, 5 themes, 10 downloadable wallpapers)
- XP/leveling, shop, expressions, domain expansion
- localStorage persistence, no account required
- PostgreSQL + Express API backend
- User accounts and cross-device sync
- Progress stored server-side (the store already has a
_resetForMigrationhook and storage adapter pattern ready for this) - Instructor view: class-wide completion dashboards
- No frontend rewrite required โ only the storage layer changes
Character Art: Python-chan's sprites were generated using AI tools and hand-curated for expression consistency by the Omega Mu Gamma Studio team. All character designs are proprietary to Omega Mu Gamma Studio.
Note: As a free, open-source educational tool, we prioritized shipping a complete learning experience over commissioning custom art. If you're an artist interested in contributing official character designs, reach out โ we'd love to collaborate.
Python-chan is part of a student-built suite of open-source engineering and CS education tools from Omega Mu Gamma Studio.
| Tool | What it does |
|---|---|
| SeeDS | 3D data structure visualizer with drag-and-drop Playground mode |
| KMapX | Karnaugh map simplifier with don't-care support |
| EG Suite | 3D Engineering Graphics simulator for ME22201 |
| GateLab | 2D digital logic schematic playground (CS22303) |
| Java-chan | Anime-guided Java tutor for CS22301 |
| PlusPlus-chan | Anime-guided C++ tutor for aspiring game developers |
| Python-chan | Anime-guided, three-course Python tutor โ Foundations, Data Science, and Machine Learning โ this repo |
The source code for this project is released under the MIT License.
The character art, sprites, and visual assets for Python-chan are proprietary. They are not covered by the MIT License and may not be reproduced, redistributed, or used outside this project without explicit permission from Omega Mu Gamma Studio.
ยฉ 2026 Omega Mu Gamma Studio