Python operators & pseudocode rules
Use BEGIN and END. Close IF with END IF, WHILE with END WHILE, and FOR with END FOR. IF requires THEN; loops require DO. Counted loops include the end value; use STEP -1 to count down.
Arithmetic: + - * / // % **. DIV means floor division; MOD means remainder. ^ is bitwise XOR. Comparisons: == != < <= > >=; = inside an expression means equality. Use AND OR NOT for Boolean logic, and parentheses to group expressions.
Use DISPLAY "Result:", value or DISPLAY "Result: " + str(value) for mixed text and numbers. Use # for inline comments; // is a comment only at the start of a line. Declare numeric INPUT variables as INTEGER, FLOAT or REAL; undeclared INPUT is text.
Exercise Title
Medium {{ui:Circle}} Status: In ProgressDescription goes here.
Exercise Submitted Successfully
--
Pseudocode Editor Pseudocode
Python Output Python
Console output (show/hide)
Console Output
Learning Feedback
Python operators & pseudocode rules
Use BEGIN and END. Close IF with END IF, WHILE with END WHILE, and FOR with END FOR. IF requires THEN; loops require DO. Counted loops include the end value; use STEP -1 to count down.
Arithmetic: + - * / // % **. DIV means floor division; MOD means remainder. ^ is bitwise XOR. Comparisons: == != < <= > >=; = inside an expression means equality. Use AND OR NOT for Boolean logic, and parentheses to group expressions.
Use DISPLAY "Result:", value or DISPLAY "Result: " + str(value) for mixed text and numbers. Use # for inline comments; // is a comment only at the start of a line. Declare numeric INPUT variables as INTEGER, FLOAT or REAL; undeclared INPUT is text.
Translate Pseudocode
Convert your pseudocode into executable Python code step-by-step.
Input Pseudocode
Result Python
Output
Execute Generated Code
Run Python code directly in the browser and see results instantly.
Python Code Python
{{ui:Terminal}} Console Output
Feedback & Suggestions
Review analysis of your pseudocode quality and get improvement tips.
Pseudocode to Analyze Pseudocode
Analysis Results
No Analysis Yet
Paste your pseudocode above and click "Analyze" to receive feedback and suggestions.
Feedback Summary
Structural Logic & Root Cause Analysis
{{ui:Files}} Available Exercises
Practice writing pseudocode with these exercises from your instructor.
Instructions & Guidelines
- Read the problem carefully before answering.
- Write your pseudocode using the supported syntax.
- Click "Translate to Python" to generate Python code.
- Review the generated Python code.
- Click "Run Code" to test your solution.
- Correct any syntax or runtime errors shown in the console.
- Submit your completed exercise once it produces the expected output.
Learning Analytics
Track student progress, common errors, and usage metrics.
| Student Name | Student Number | Exercise | Difficulty | Status | Score | Date Submitted | Processing Time | Result | Actions |
|---|
Submission Details
Request Resubmission
Send the student clear guidance before they submit a new attempt.
Manage Exercises & Tasks
Create, edit, and manage pseudocode exercises for students. Click Add Exercise to get started.
Exercise List
| Exercise Title | Description | Difficulty | Date Created | Actions |
|---|---|---|---|---|
| Loading exercises… | ||||
Manage Students
Create, edit, delete, and manage student accounts assigned to your class.
Student List
| Student | Student Number | Status | Actions |
|---|
Python operators & pseudocode rules
Use BEGIN and END. Close IF with END IF, WHILE with END WHILE, and FOR with END FOR. IF requires THEN; loops require DO. Counted loops include the end value; use STEP -1 to count down.
Arithmetic: + - * / // % **. DIV means floor division; MOD means remainder. ^ is bitwise XOR. Comparisons: == != < <= > >=; = inside an expression means equality. Use AND OR NOT for Boolean logic, and parentheses to group expressions.
Use DISPLAY "Result:", value or DISPLAY "Result: " + str(value) for mixed text and numbers. Use # for inline comments; // is a comment only at the start of a line. Declare numeric INPUT variables as INTEGER, FLOAT or REAL; undeclared INPUT is text.
Generate Python Code
Translate pseudocode into Python to create exercise solution keys.
Pseudocode Pseudocode
Generated Python Python
{{ui:Terminal}} Output
{{ui:FlaskConical}} Compiler Metrics & Evaluation
Automated evaluation of the pseudocode-to-Python compiler using the built-in dataset of ground-truth test cases. Measures accuracy (exact-match), precision & recall (line-level overlap), compilation success rate, and pipeline stage timing. The last benchmark result persists locally and is restored on reload; click Run Benchmark to evaluate the stored exercise suite.
Benchmark runs the stored exercise suite against the compiler and computes Accuracy, Precision, Recall, F1 Score, and Compile Rate. Results persist and restore on reload.
Concept Mastery groups benchmark results by programming concept so you can see where the compiler performs best and worst.
Pipeline Stage Timing shows the average time spent in each compiler stage.
{{ui:Target}} Benchmark Results
Computed by running the stored exercise suite through the compiler (quick run). The last benchmark result persists locally and is restored automatically when you reopen this page. Click Run Benchmark above to refresh.
Benchmark not run yet
Run the benchmark to populate accuracy, precision, recall, F1 and compile-rate cards.
{{ui:ClipboardList}} Per-Test-Case Results
| Test ID | Concept | Compiled | Exact Match | Precision | Recall | Time (ms) |
|---|
{{ui:GraduationCap}} Concept Mastery Analytics (Constructivism Model)
| Learning Concept | Test Cases | Compile Rate | Exact Accuracy | Avg Precision | Mastery Level |
|---|---|---|---|---|---|
| Run benchmark to see mastery analytics. | |||||
{{ui:Timer}} Pipeline Stage Timing (Avg)
{{ui:ChartNoAxesCombined}} System Analytics
Live aggregate of the entire stored activity log (pseudopy_activity) —
every instructor and every student. System Overview KPIs, translations & executions, and the system
error distribution update automatically while this page is open.
{{ui:ChartColumn}} Translations & Executions
{{ui:ChartNoAxesCombined}} System Error Distribution
{{ui:KeyRound}} Password Recovery Requests
Review and authorize student password recovery requests. No passwords will be viewed or revealed.
Password Recovery Requests
| Student | Student ID | Requested At | Status | Action |
|---|
{{ui:Users}} Manage Instructors
Create, edit, and manage instructor accounts.
All Instructors
| Instructor | Role | Status | Date Added ↓ | Last Login | Actions | |
|---|---|---|---|---|---|---|
| Loading instructors... | ||||||
Change Password
Update your account password. You must enter your current password for verification.
- Must not be the same as current password
Developer Options — Compiler Debugger
Inspect exactly how the compiler processes pseudocode from input through Python execution and output.
{{ui:NotebookPen}} Source Pseudocode
{{ui:Settings}} Active Stage
IDLEEnter pseudocode and click Run Pipeline to begin compiler analysis.
{{ui:FileCode}} Generated Python
Waiting for compilation...
| Line | Type | Value |
|---|
No AST generated yet.
| Variable | Type | Status |
|---|
No parser state available.
No semantic analysis data.
Run the pipeline to see AST → Python translation mapping.
| Category | Stage | Line | Message | Suggestion |
|---|
stdout
—
stderr / Errors
—
Run the pipeline and execute to see a step-by-step trace.
No compilation attempts yet.
No events recorded.
{{ui:ChartNoAxesCombined}} Stage Durations
real compiler metricsRun the pipeline to chart real compiler stage timings.
{{ui:Radio}} Control Flow Graph
derived from the real ASTRun the pipeline to build the control flow graph from the real AST.
{{ui:ClipboardList}} SDT — AST to Python
real per-node code generation| # | Line | AST Node | Pseudocode | SDT Action | Generated Python |
|---|---|---|---|---|---|
| Run the pipeline to build the SDT table from the real AST. | |||||
{{ui:Files}} NLP Mapping — original vs mapped
real NLP mapper outputOriginal
—
Mapped (NLP)
—
{{ui:Clock}} Event Ledger
No events recorded.
{{ui:Zap}} Step Controller
advances over real trace events{{ui:Target}} Grade Verdict
Not checked{{ui:Radio}} CFG → AST → SDT
no stepsOne program, moving through grammar recognition (CFG), the tree representation (AST), and Python generation (SDT). Step or play to advance all three stages together.
{{ui:Radio}} Grammar recognition
matched productionsRun the pipeline to move one program through grammar recognition, the AST, and SDT code generation.
{{ui:Files}} AST
real recognized nodesRun the pipeline to move one program through grammar recognition, the AST, and SDT code generation.
{{ui:ClipboardList}} SDT → Python
emitted per nodeRun the pipeline to move one program through grammar recognition, the AST, and SDT code generation.
Pseudocode
current line highlightedRun the pipeline to move one program through grammar recognition, the AST, and SDT code generation.
{{ui:Zap}} Walkthrough
one program, one step at a timeRaw Tokens
—
Raw AST
—
Raw Symbol Table
—
Raw Compiler Result
—
Raw Runtime Result
—
Raw Trace Events
—
Raw Metrics
—
Run the checks to inspect the live Firestore, Auth, offline-queue and server-function state.
---
Program
BEGIN ... END
Declarations
DECLARE name AS INTEGER|FLOAT|REAL|STRING|CHAR|CHARACTER|BOOLEAN|BOOL|ARRAY
Assignment
x=5; SET x TO 5; arr[i]=10
I/O
INPUT/READ x; INPUT WITH PROMPT "..." x; DISPLAY/PRINT/OUTPUT expr
Control
IF cond THEN ... [ELSE IF cond THEN ...] [ELSE ...] END IF WHILE cond DO ... END WHILE FOR i FROM 1 TO 5 [STEP 2] DO ... END FOR FOR EACH item IN list DO ... END FOR EACH
Functions
FUNCTION f(a,b) ... RETURN x END FUNCTION PROCEDURE p() ... END PROCEDURE CALL f(1,2); f(1,2)
Recursive calls supported; signature validation incomplete.
Operators/Unicode
+ - * / DIV MOD ^ ** // ; == != <> = > < >= <= IS NOT IN AND OR NOT; ≥≤≠≡×÷−→ normalized.
Notes
Input conversion limited; no preserved column mapping; Skulpt runtime.
Interface tips
If you see a blinking text cursor moving through menus, buttons or labels, your browser's caret browsing is on. Press F7 to switch it off, or turn off "Navigate pages with a text cursor" in the browser's accessibility settings.
Original
Normalized
What this experiment measures
- 2a · Functional correctness
- The generated Python is run, and its printed output must equal the reference program's output. Text similarity is shown but is never the correctness score.
- 2b · Error detection
- Every case is classified as correct, rejected, syntax error, runtime error or wrong output, and a separate silent-failure rate is reported.
- 2c · Translation time
- Only raw text → Python is timed (warm-ups plus a batched loop). Bundle load, validation and execution are excluded and reported separately.
- Baselines
- B1 naive keyword substitution · B2 reasonable rule-based. Neither performs any validation.
- Groups
- Seed (built-in), holdout (independently written) and injected (deliberately broken). Results are never blended across groups.
Inputs
Identical pseudocode goes to every translator. The reference program only judges printed output — it is never shown to a translator.
Run settings
{{ui:Wrench}} Validation-Driven Refinement
Execute Generated Code
Test and run code submissions from the system.
{{ui:FileCode}} Python Code Python
{{ui:Terminal}} Output
{{ui:Settings}} Settings
View your profile information and manage your password.
Student Name
StudentLearning & Tutorial
Review your learning progress and replay the beginner tutorial.
Display & Accessibility
Interface text is locked so menus, labels and buttons cannot be selected by accident. Editors, console output, feedback and table values stay copyable.
If you see a blinking text cursor moving through menus, buttons or labels, caret browsing is switched on in your browser. Press F7 to turn it off, or disable "Navigate pages with a text cursor" in the browser's accessibility settings.
Change Password
Change your account password. You can change it once every 30 days.
You can request a new password change after 30 days from your last change.
Password changes leave an audit record. See our .
{{ui:ClipboardList}} Password Change History
No Requests Yet
You haven't submitted any password change requests.
Data on this device
What PseudoPy keeps in this browser, and what syncs to the cloud.
Editor formatting
How the Format button and output text handle symbols.
About
PseudoPy application information.
{{ui:KeyRound}} Password Requests & Security Audit
Review and authorize instructor password recovery requests and view security audit logs.
{{ui:KeyRound}} Instructor Password Recovery Requests
Admin Authorization Panel| Instructor | Username | Requested At | Status | Action |
|---|
Student Number Migration
230-series assignment
Assign canonical 230xxxx student numbers to accounts
that still use legacy placeholders. The preview is read-only;
migration updates only the studentNumber field and never rewrites existing IDs.
Student Number Migration
The following student accounts will receive new 230-series numbers. 0. Existing IDs are preserved.
| Student | Current ID | Proposed | Status |
|---|
{{ui:LockKeyhole}} Security Audit Log
| Account | Action | Authorized by | Date & time | Details |
|---|
{{ui:TriangleAlert}} Danger zone
Clearing the audit history permanently removes every recorded security event from this device and the cloud. Export a CSV copy first if you need a record.
Event details
{{ui:TriangleAlert}} Clear security audit history
This cannot be undone. Export a CSV copy first if you may need these events.
A record of who cleared the history will be kept.