Learn how to use the integrated lesson system in Time Warp Studio for structured, guided learning with automatic verification.
The Lesson System provides structured programming education with:
- Step-by-step lessons - Follow guided tutorials with specific learning objectives
- Checkpoints - Verify your code solution at each step
- Hints - Get contextual hints when you're stuck
- Progress tracking - Track your completion and learning path
- Auto-verification - Automatic checking of your solutions
- Launch Time Warp Studio
- Go to File → Lessons or press Ctrl+Shift+L
- Browse available lessons by category and difficulty
- Click Start Lesson to begin
The lesson panel shows:
┌─────────────────────────────────┐
│ Lesson: BASIC Fundamentals │
├─────────────────────────────────┤
│ Progress: 3 of 5 checkpoints │
│ Difficulty: Beginner │
├─────────────────────────────────┤
│ Current Objective: │
│ Create a program that adds │
│ two numbers and prints result │
├─────────────────────────────────┤
│ Hint (Press H) │
│ Try using: LET X = 5 + 3 │
├─────────────────────────────────┤
│ [Get Hint] [Verify] [Skip] │
└─────────────────────────────────┘
Fundamentals (Beginner)
- Variables and assignment
- Basic arithmetic
- Input and output
- String operations
Control Flow (Beginner)
- Conditional statements (IF/THEN)
- Loops (FOR, WHILE)
- Comparison operators
Procedures (Intermediate)
- Function definition
- Parameters and return values
- Scope and variables
- Recursion basics
Advanced (Intermediate)
- Arrays and lists
- Working with strings
- File operations
- Debugging techniques
Turtle Basics (Beginner)
- Drawing simple shapes
- Movement commands
- Turning and angles
- Pen control
Procedures (Intermediate)
- Defining procedures with parameters
- Recursive graphics
- Using variables in procedures
- Code organization
Graphics (Intermediate)
- Color and styling
- Complex patterns
- Mathematical designs
- Artistic drawings
Interactive Teaching (Beginner)
- Program structure
- Output and input
- Branching logic
- Interactive elements
Advanced (Intermediate)
- Complex matching
- Nested conditionals
- Full programs
- Educational designs
- C Lessons - Systems programming basics
- Pascal Lessons - Structured programming
- Prolog Lessons - Logic programming
- Forth Lessons - Stack-based programming
Each checkpoint starts with a clear learning objective explaining what you need to accomplish.
Example:
Objective: Write a program that asks for your name and greets you.
Expected output: "Hello, [name]!"
Language: BASIC
Type your solution in the code editor:
PRINT "What is your name?"
INPUT NAME$
PRINT "Hello, " + NAME$ + "!"- Press Ctrl+R to run your code
- Check the output in the Output panel
- Compare with the expected output shown in the lesson
Click Verify button or press Enter in the lesson panel.
The system will:
- Run your code
- Capture the output
- Compare with expected output
- Show results
If you're stuck:
- Click Get Hint or press H
- Read the contextual hint
- Continue working on your solution
- You can get multiple hints for each checkpoint
Once verified successfully:
- Click Next Checkpoint or press N
- Move to the next learning objective
- Track your progress
When you click Verify, Time Warp Studio:
- Runs your code in the appropriate language interpreter
- Captures output from your program
- Compares with expected output
- Shows results - success or differences
✅ Correct
Your output matches the expected result.
Checkpoint completed!
Progress: 4 of 5
❌ Incorrect
Your output:
Hello, Alice
Expected:
Hello, Alice!
Hint: Check for punctuation in the greeting.
Error on line 3: Undefined variable 'NAME'
Make sure to use INPUT before printing.
Each checkpoint has multiple hint levels:
Level 1: Concept Hint
- General guidance about the topic
- No code directly given
- Encourages thinking
Example:
Hint 1: Remember that you need to get input from the user
before you can use that value in your program.
Level 2: Strategy Hint
- More specific guidance
- Suggests approach
- May show syntax patterns
Example:
Hint 2: Use INPUT statement to get user input.
Try: INPUT variable_name
Level 3: Code Example
- Shows similar code
- Not the exact solution
- Gives you the pattern to follow
Example:
Hint 3: Here's a pattern:
INPUT X$
PRINT "You entered: " + X$
- Each checkpoint has 3 hints available
- Hints encourage learning, not replacement
- Using hints doesn't prevent checkpoint completion
- Hint count shown in progress tracking
The lesson panel shows:
Lesson: BASIC Fundamentals
Progress: 3 of 5 checkpoints completed
Last worked: 2 hours ago
Difficulty: ⭐⭐ (Intermediate)
Estimated time: 45 minutes
Your progress is automatically saved:
- Which lessons started
- Which checkpoints completed
- Hints used per checkpoint
- Time spent on each checkpoint
- Current position in lesson
Go to File → Settings → Learning Statistics to see:
- Lessons completed
- Total programming time
- Topics mastered
- Estimated skill level
🟢 Beginner (1-2 stars)
- Learn basic concepts
- Simple, guided examples
- ~30-45 min per lesson
🟡 Intermediate (2-3 stars)
- Build real projects
- More independent work
- ~1-2 hours per lesson
🔴 Advanced (3+ stars)
- Complex problems
- Minimal guidance
- 2-4+ hours per lesson
Each supported language has lessons:
Classic Languages:
- BASIC (10+ lessons)
- Logo (8+ lessons)
- PILOT (6+ lessons)
- C (6+ lessons)
- Pascal (4+ lessons)
- Prolog (4+ lessons)
- Forth (4+ lessons)
Modern Languages:
- Python (5+ lessons)
- JavaScript (5+ lessons)
- Lua (4+ lessons)
- Haskell (4+ lessons)
- Scheme (4+ lessons)
- Smalltalk (4+ lessons)
Mainframe & Enterprise:
- COBOL (4+ lessons)
- REXX (4+ lessons)
- Fortran (4+ lessons)
- JCL (3+ lessons)
- CICS (3+ lessons)
- SQL (4+ lessons)
- SQR (3+ lessons)
Esoteric & Historical:
- Assembly (4+ lessons)
- APL (4+ lessons)
- HyperTalk (3+ lessons)
- Brainfuck (3+ lessons)
Organized thematically:
- Fundamentals
- Control Flow
- Data Structures
- Procedures/Functions
- Graphics
- Advanced Topics
- Choose appropriate difficulty - Start with Beginner lessons
- Set aside time - Plan 30-60 minutes per lesson
- Have reference ready - Keep language guide handy
- Eliminate distractions - Focus on learning
- Read objectives carefully - Understand what's expected
- Work through examples first - See how it's done
- Try without hints initially - Stretch your understanding
- Test frequently - Run code often, not just at end
- Use hints strategically - Get unstuck, not answers
- Review your solution - Understand what you wrote
- Experiment - Modify code to explore variations
- Compare with hints - See if there's a better approach
- Move forward - Don't get stuck on perfection
Go to File → Settings → Lessons to adjust:
Appearance:
- Theme (matches editor theme)
- Font size
- Panel position (right or bottom)
Behavior:
- Auto-run code on changes
- Auto-verify checkpoints
- Hint level (conservative, moderate, generous)
- Progress saving (automatic, manual)
Language:
- Preferred lesson language
- Source code language
You can skip checkpoints by clicking Skip, but:
- Progress still counts as incomplete
- Later lessons may require earlier knowledge
- Skipped checkpoints remain available
✅ Do:
- Start with fundamentals
- Complete lessons sequentially
- Use hints only when stuck
- Review successful solutions
- Experiment with variations
❌ Don't:
- Skip ahead without understanding
- Copy hint code directly
- Rush through checkpoints
- Give up after one attempt
- Ignore error messages
✅ Do:
- Assign appropriate lessons by level
- Set checkpoints progressively
- Provide context before lessons
- Monitor student progress
- Offer additional resources
❌ Don't:
- Force all students through same path
- Skip prerequisites
- Demand perfection
- Ignore individual learning speeds
- Use lessons as only assessment
Issue: Your code runs but output doesn't match exactly.
Solutions:
- Check for trailing spaces or extra lines
- Verify capitalization matches
- Ensure correct punctuation
- Look for number format differences
Example:
Your output: "Hello, Alice !" (extra space)
Expected: "Hello, Alice!" (no space)
Issue: Your code has syntax that works but is non-standard.
Solution:
- Check the hint for correct syntax
- Some variations may not be recognized
- Use exact command forms from documentation
Issue: Progress not saved from previous session.
Solution:
- Progress is auto-saved to
~/.time_warp/config.json - Check if file was recently modified
- Verify write permissions on home directory
- Restart the IDE to reload progress
Issue: Expected lesson not visible in catalog.
Solutions:
- Check filter settings (language, difficulty)
- Some lessons appear only when prerequisites met
- Use search function (Ctrl+F)
- Check documentation for lesson availability
Coming in future versions:
- Create personalized lesson sequences
- Add custom checkpoints
- Share lessons with students
- Track custom lesson progress
Coming in future versions:
- Work on lessons with peers
- Share solutions for review
- Compare different approaches
- Learn from others' solutions
- BASIC Tutorial: ../../docs/tutorials/basic.md
- Logo Tutorial: ../../docs/tutorials/logo.md
- IDE Basics: 02-ide-basics.md
- Examples: ../../Examples/README.md
Last Updated: January 2026
Status: Fully Implemented
Lessons Available: 50+