PyDA Course

How your progress is computed

Your progress page is built from one transparent "player card": a single progress state kept in this browser.

Everything below documents exactly how each number is derived, straight from the code that computes it.

The XP economy

Every action earns fixed XP, capped at 9,999 total:

+5 XP Ran code running a cell in any lesson, the playground, or a challenge
+60 XP Lesson complete marking a lesson done
+5 XP Opened a project visiting a project page
+15 XP Project step completing one guided project step
+100 XP Project complete finishing a whole guided project, more than a single lesson
+5 XP Quiz question correct each right answer in a lesson quiz
+25 XP Perfect quiz getting every question right in one quiz
+5 XP Daily login opening the site on a new day
+15 XP Streak bonus extra per day once your streak passes day 3
+30 XP Streak milestone bonus at streak milestones
+25 XP XP milestone auto-awarded when you cross an XP/quest milestone
+15 XP Challenge solved completing an interactive challenge

Levels

Level = 1 + ⌊(XP ÷ 50)^0.6⌋

Level uses a curved formula so early progress always feels rewarding:

Level 10 lands around 1,500 XP, Level 20 around 4,500, Level 30 around 8,500.

Ranks

Ranks are pure XP thresholds:

  • Bronze 0 XP
  • Silver 500 XP
  • Gold 1,500 XP
  • Platinum 3,000 XP
  • Diamond 5,000 XP
  • Master 7,500 XP
  • Grandmaster 9,999 XP

Streaks

A streak counts consecutive days you open the site.

Coming back today keeps it; returning yesterday-tomorrow advances it by 1; skipping a day resets it to 1. Your best streak is always remembered.

From day 3 on, each day adds a 15 XP streak bonus on top of your daily login, and streak milestones (3/7/14/30 days) pay a 30 XP bonus.

Quests

Quests are milestones that unlock automatically, there is nothing to claim. They cover:

  • firsts (first run, first lesson, first project, first step)
  • streaks (3, 7, 14, 30 days)
  • XP totals (100, 500, 1K, 2K, 3K, 5K, 7.5K)
  • projects (5, 10, 25, 50, plus steps 10/25/50)
  • challenges (1, 10, 25, 50)
  • tracks (finish all of Python 101 or Data Analysis)

The improvement report

Once you've finished a lesson, your progress page shows a game-style after-action report comparing your own numbers to a published visual-novel course study.

  • Win rateyour quiz accuracy, correct answers ÷ questions answered
  • K/D/Akills = quiz answers right, deaths = quiz answers wrong, assists = lessons completed
  • Farmlessons cleared ÷ total lessons
  • Activitydays active, lessons per week, average XP per day, and a consistency score mixing your streak and lesson pace
  • Engagementreturn rate, current streak length, and your longest session
  • Diagnosticsprogress %, a study-aligned N-Gain equivalent, motivation acceptance, usefulness (accuracy), and learning experience

The benchmark is documented in Prayoga et al., 2026 , a visual-novel-based computing course measured with N-Gain 0.61 and 87.6% acceptance.

Your report labels a diagnostic band (Rookie → Legend) from your K/D/A ratio, and is gated: it only appears after your first completed lesson. Everything is computed from your own activity.

Where it lives

All progress, XP, lessons, quizzes, streaks, quests, badges, and a full activity log, is stored in your browser's local storage under a single key (`pda:state`).

It never leaves your device: there is no account, no server, and no leaderboard. The activity log keeps the last 200 actions and is rendered on the progress page so you can see exactly what earned what. Badges are flat labels appended as you hit quests and milestones.

Back to your progress

Our teaching approach

Why lessons are short, the lesson loop, and the thinking behind the game layer.

Read how we teach