ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
실제 코드를 입력해 파이썬을 배우고, 브라우저에서 실행·채점되는 450문제와 플레이그라운드, AI 엔지니어 경로, Pytor 튜터 제공
Learn Python by typing real code. 450 exercises that run and get graded in your browser, a playground, an AI engineer path and Pytor the tutor snake.
교육Python · KotlinGitHub @Matswm86온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Learn Python and AI engineering two ways in one repo. Pytor is the site at pytor.mwmai.no (450 browser-run exercises across 9 topics, a playground, an AI Engineer Path, a 100-item skills checklist, a 74-question AI-901 drill, 44 drag-block puzzles); PyQuest is the Android app (325 questions, 9 tiers, no typing).
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Two ways to learn Python and AI engineering, sharing one tutor and one repo.
Open that link on your Android phone, then open the downloaded file and allow
installs from your browser when Android asks. The link always points at the
newest build. Older builds: all releases.
Pytor is also the name of the snake who tutors you in both. On the site he is a
beginner's guide; in the app he is an expert. Same character, different register.README 전문 보기 ↗Two ways to learn Python and AI engineering, sharing one tutor and one repo.
Open that link on your Android phone, then open the downloaded file and allow installs from your browser when Android asks. Needs Android 8.0 or newer. The link always points at the newest build. Older builds: all releases.
No Android phone? Open in the browser: pytor.mwmai.no. No install, no account.
| What it is | Where | |
|---|---|---|
| Pytor | The site. Real Python typed in a browser, run in the browser, graded instantly. | pytor.mwmai.no |
| PyQuest | The app. An Android game you tap through on a phone, no typing. | pyquest/ · download APK |
Pytor is also the name of the snake who tutors you in both. On the site he is a beginner's guide; in the app he is an expert. Same character, different register.
print("hello") to scoping an AI-engineering consultancy job.The site is static HTML and vanilla JavaScript with hash routing. Python runs in your
browser through Pyodide (CPython on WebAssembly) with a CodeMirror editor, and progress
sits in LocalStorage, so no server does the work and no account is needed. The
exercises are written as Python in pylearn/ and build.py turns them into the
browser-runnable docs/exercises.json. Pytor's chat goes through a small stdlib-only
Python bridge that asks a Groq-hosted model first and falls back to a local Ollama
model. PyQuest is a Kotlin and Jetpack Compose app driven by question data in JSON
files, with no Python interpreter inside; GitHub Actions builds its APK.
450 exercises. Zero setup. Runs in your browser. No account, no install, no server doing the work: Python itself is compiled to WebAssembly and executes on your machine.
| # | Topic | Exercises | What you learn |
|---|---|---|---|
| 1 | Variables | 50 | Storing data, naming, assignment, f-strings, scope |
| 2 | Data Types | 50 | int, float, str, bool, conversion, string methods |
| 3 | Conditionals | 50 | if/elif/else, boolean logic, ternary, match/case |
| 4 | Loops | 50 | for, while, range, break/continue, nesting, enumerate |
| 5 | Functions | 50 | def, arguments, return, *args/**kwargs, closures, decorators |
| 6 | Lists & Sets | 50 | Indexing, slicing, comprehensions, sorting, set operations |
| 7 | Dictionaries | 50 | Key-value pairs, nesting, comprehensions, Counter, grouping |
| 8 | FastAPI | 50 | Pydantic models, validation, CRUD APIs, auth, middleware |
| 9 | API Calling | 50 | JSON, HTTP headers, auth, pagination, rate limiting, webhooks |
Each topic opens with a lesson in plain English, with analogies, runnable examples and the mistakes people actually make, then 50 exercises that climb from Beginner to Challenge.
| Route | What it is |
|---|---|
#/playground | A full browser Python IDE. No exercise, no grading, just run code |
#/path | The AI Engineer Path: a study route through the topics, each paired with a video worth watching, plus the AI-901 to AI-103 certification track |
#/checklist | A 100-item AI engineering skills checklist you tick off as you go |
#/exam | A 117-question AI-901 drill in real exam format |
#/exam/103 | A 222-question AI-103 drill for the Azure AI Apps and Agents Developer exam: Foundry deployments, agents, retrieval and AI Search, vision, speech, document extraction and content safety, with case studies and matching and ordering items |
#/questions | 30 questions on embeddings and retrieval, the part of AI engineering that is hardest to learn from a tutorial |
/blocks/ | Python Block Bench: 84 drag-and-drop syntax puzzles, no keyboard needed, with a line-by-line step-through that shows every variable change |
On by default. Variables are labelled jars, functions are recipes, lists are shopping lists, dictionaries are phone books, APIs are restaurant waiters. Toggle it off in the top-right when the analogies stop helping.
Click the snake (or the 🐍 Pytor button) to open a chat sidebar:
Under the hood: a Groq-hosted model first, a local Ollama model as the fallback, behind a
small stdlib-only Python bridge at pytor.mwmai.no/api/tutor. The model names can be
overridden through environment variables (GROQ_MODEL, OLLAMA_MODEL) because hosted
model catalogues change. The frontend is vanilla JS and degrades to a no-op if the bridge
is unreachable, so the exercises never depend on the tutor being up.
An Android game that walks from print("hello") to scoping and pricing an AI-engineering
consultancy job, plus two tiers of exam prep, AI-901 and AI-103: 654 questions across
10 tiers, multiple-choice cards and Scratch-style drag blocks, Leitner spaced repetition,
weak-tag tracking, XP and streaks. Pytor rides along as an expert, with a 105-entry offline
reference and an online chat mode.
It has no Python interpreter on purpose. Typing Python on a phone keyboard is miserable, and the site already does that properly. Full detail in pyquest/README.md.
Pytor is live at pytor.mwmai.no. PyQuest is at 0.3.0, a debug-signed build you sideload from the download link above; it does not grade typed Python, which stays on the site.
docs/ Pytor, the site (served by GitHub Pages and by pytor.mwmai.no)
index.html shell and SPA router
app.js routing, Pyodide integration, exercise flow
lessons.js lesson content for all nine topics
exercises.json 450 exercises, generated from the Python source
path.js checklist.js exam.js exam103.js questions.js playground.js tutor.js
blocks/ Python Block Bench
pylearn/ Python source of truth for the exercises, with auto-grading
build.py regenerates docs/exercises.json from pylearn/
build_exam103.py regenerates docs/exam103.js from PyQuest's tier_10.json
tests/ runs every Block Bench solution and its step-through
mcp-servers/ the Pytor tutor bridge (Groq primary, Ollama fallback)
pyquest/ PyQuest, the Android app (Kotlin + Compose)
.github/workflows/ the Android build, which only fires on changes under pyquest/
or to its own workflow file
# the site
cd docs && python -m http.server 8000 # then open http://localhost:8000
# regenerate exercise data after editing pylearn/exercises/*.py
python build.py
# regenerate the AI-103 drill after editing pyquest tier_10.json
python build_exam103.py
# the app
cd pyquest && ./gradlew testDebugUnitTest
Exercises are defined in pylearn/exercises/*.py as make_exercise() calls carrying a
description, hints, a solution and a test mechanism. build.py turns those into
web-runnable assertions. Never hand-edit docs/exercises.json.
APKs are never built on a workstation: Gradle needs more memory than the dev box has, so GitHub Actions is the only place an APK is produced.
Pyodide (CPython on WebAssembly), CodeMirror 5, vanilla JS with hash routing, LocalStorage for progress. Kotlin and Jetpack Compose on the app side.
New exercises, clearer descriptions and extra topics are all welcome. Exercise data lives
in pylearn/exercises/; question data lives in pyquest/app/src/main/assets/curriculum/
and is validated by a gate that runs before CI will build anything.
MIT, see LICENSE. The fonts bundled with the site (Atkinson Hyperlegible Next and JetBrains Mono) and in PyQuest (Archivo and JetBrains Mono) are under the SIL Open Font License; their texts are in docs/fonts/ and pyquest/licenses/.
The AI-103 drill (site), PyQuest tier 10 and ten of Pytor's Codex notes draw on two third-party sources: an MIT-licensed open-source practice exam, and study notes used with their author's permission, which is not an open-source licence. Credits, terms and the licence text are in THIRD_PARTY_NOTICES.md.