Write. Run. Fail. Understand.
Programming is learned by doing, and by understanding what went wrong. ScriptOnX keeps both in one loop.
Why ScriptOnX exists
Errors aren't failures. They're where learning starts.
Behind every red message is a concept worth understanding. ScriptOnX makes that connection for you.
- SyntaxErrorinvalid syntax→ SyntaxHow a language is written
- TypeErrorcan only concatenate str→ Data typesWhat kind of value is this?
- IndexErrorlist index out of range→ ArraysPositions start at zero
- NullPointerExceptionat Main.main(Main.java:7)→ ObjectsReferences can point at nothing
- Segmentation faultcore dumped→ MemoryWho owns this address?
The learning loop
Every mistake runs through the same loop. And comes out as skill.
Write
Write a real program in the ScriptOnX editor.
age = 19print("Turns " + age + 1)Run
Execute it and watch the output.
age = 19print("Turns " + age + 1)$ python lesson.py
Debug
See exactly where — and why — it stopped.
age = 19print("Turns " + age + 1)TypeError: can only concatenate str (not "int") to str
Ask AI
Ask ScriptOnX about the error, not for the answer.
Why can't I add age to the text?
ScriptOnX AI+does two jobs: it adds numbers and joins text. Which kind of value isage?Understand
Learn the concept underneath the message.
"Turns "str · textageint · numberText and numbers can't be joined with + until they're the same type.
Fix
Correct the program yourself.
age = 19print("Turns", age + 1)✓ Turns 20
Improve
Watch the concept move from shaky to solid.
- Data types46% → 78%
- Strings70% → 82%
- Illustrative progress
age = 19print("Turns " + age + 1)The languages your course teaches. The tools checked for you.
Languages
- PythonBeta
- CBeta
- C++Beta
- JavaNeeds a Java Development Kit (JDK) on the computer.Beta
- JavaScriptRuns on Node.js.Beta
- SQLIn Database Lab, on SQLite. MySQL and MongoDB connections are in testing.Beta
- TypeScriptNot runnable yet.Planned
- HTML/CSSNot runnable yet.Planned
Learning tools
Learning environments
BetaChecks that the compilers and tools a course needs are installed and working. One-click installs are in testing.
Database Lab
BetaSQL against a local SQLite database. MySQL and MongoDB connections in testing.
Practice library
PlannedExercises with test cases across the curriculum.
Progress & mastery
PlannedConcept mastery, streaks and course progress.
See what your code is actually doing.
Step through a program line by line and watch every variable change.
total = 0for n in [1, 2, 3]: total = total + nprint(total)- total0
total starts at 0.
$
Concept demo. Also planned: call stack, memory view, loop visualisation.
See your next error differently.