slash.ipynb
In [1]:
projek remu / first product

SLASH

A New Entry Point to Programming

A desktop visual programming environment that helps beginners move from block based programming to real Python — blocks and code, always in sync, with execution you can actually watch.

◍ Built by Projek REMU Originated as a UiTM Final Year Project Contact Razfan →
In [3]:
# the problem

Programming is difficult to enter

For beginners, programming introduces several barriers before they ever get to write something that works.

syntax

Unfamiliar syntax

Unfamiliar keywords, indentation and syntax rules get in the way before the logic even starts.

logic

Abstract logic

Variables, loops and conditionals can be difficult to understand without a concrete picture of what they do.

execution

Invisible execution

Beginners often cannot see what actually happens inside their program while it runs.

debugging

Hard to debug

Errors can be difficult to locate and understand without visibility into program state.

transition

A rough transition

Visual programming is easy to start with — but moving into real programming languages can be a challenge.

Out[4]:
# the opportunity

What if beginners could learn both?

Traditional approaches often force learners to choose.

Block Based Programming
  • Easy to start
  • Low syntax barrier
  • Limited connection to professional code
Text Based Programming
  • Professional language
  • Real programming skills
  • Intimidating for beginners
SLASH connects the two.

Philosophy: low floor, high ceiling — make the first step easy while keeping the learning potential of a professional language such as Python.

In [5]:
# the solution

Meet SLASH

SLASH is a desktop visual programming environment for Python. Build with blocks, see the Python code, run the program, watch the execution, understand what the code is doing.

Blocks
⇄ always in sync
Python

This dual modality lets learners directly see the relationship between visual programming logic and textual Python syntax — write blocks and get Python, or write Python and get blocks.

Out[6]:
# how slash works

One workspace. Two ways to program.

1

Choose blocks

Select programming blocks from the catalogue.

2

Build the logic

Drag and connect blocks in the workspace.

3

Generate Python

SLASH automatically produces the corresponding Python code.

4

Execute

Run the program directly inside the application.

5

Visualise execution

See the active block, Python line and variable state as it runs.

SLASH also allows users to write Python directly and generate the corresponding blocks.
In [7]:
# key features

More than just block programming

⇄
Dual Modality
Synchronised blocks ↔ Python code, updated live as you edit either side.
◉
Code Tracker
Highlights the currently executing block and Python line in real time.
≡
Variable Watch
Shows variable names, values and data types as the program executes.
⏯
Step by Step Tracer
Pause, resume, step forward, step backward, rewind, and control execution speed.
▶
Output & Input
Run programs and interact with input/output directly inside the workspace.
⚠
Error Reporting
Displays runtime errors and execution failures as they happen.
Out[2]:
# live demo

Watch SLASH think

One small program, shown four ways — each panel below is its own feature, all running off the same execution trace.

⋮

Dual modality

Blocks and Python are isomorphic — build one and watch its match assemble on the other side.

blocks
set x  5 change x by  1 print x
⇄
python
x = 5
x = x + 1
print(x)
⋮

Code tracker probe

As the program actually runs, the active block and its matching Python line highlight together — including every pass through the loop.

Blocks
set total to 0
repeat 3 times
change total by i
print total
Python
total = 0
for i in range(3):
total = total + i
print(total)
⋮

Live variable watch

total and i update in real time as the program runs — no need to print or guess a value.

Variable watch
namevaluetype
total—int
i—int
Initialise total
⋮

Step by step tracer

Play, pause, step forward or back, or rewind — the same controls used inside the app.

Step 1 / 8
Status
Initialise total
Output
—
⋮

All four, in tandem

Same program, same trace — blocks, code tracker, variable watch, and the tracer controls, all running together exactly as they do inside the app.

Blocks
set total to 0
repeat 3 times
change total by i
print total
Python — code tracker
total = 0
for i in range(3):
total = total + i
print(total)
Step 1 / 8
Variable watch
namevaluetype
total—int
i—int
Initialise total
Output
—
Out[8]:
# what makes slash different

From "learning blocks" to "learning programming"

Scratch BlockPy Switch Mode SLASH
Visual programming ✓✓✓✓
Python ✗✓✓✓
Blocks ↔ code Limited✓✓✓
Execution tracing Limited——✓
Variable monitoring ———✓
Step by step execution ———✓
Designed as a transition to real programming Limited✓✓✓

SLASH isn't simply "another block programming tool." Its purpose is to close the gap between visual learning and professional Python programming, while adding execution visualisation and programming assistance.

In [9]:
# impact & future

From first steps to real programming

SLASH aims to give beginners a smoother path from visual logic to writing real code.

Visual Logic → Python Concepts → Understanding Execution → Writing Real Code
Out[10]:
# slash.summary()
Start with blocks. Understand the logic. See the code. Learn to program.