Why
This project began when I wanted to teach
my kids, ages five and six, how to program in
a way similar to the way I learned. I learned
how to program in the early 80's using a TRS-
80 Color Computer. I would type in the code,
spend my time debugging and save it to a
cassette tape.
When they were ages 4 and 5, I wanted to
gauge their interest in programming so I let
them play on my still working TRS-80 Color
Computer 3. This computer is over 30 years
old! I showed them how to erase the screen
with a color, print some text and make some
sounds. They really got a kick out of it.
Teaching them how to program on this
computer would be a very difficult and
frustrating experience and I did not want to
take that route. The commands are not very
intuitive to the young programmer and
showing how to edit mistakes would be a
nightmare. The resolution on modern TVs is
not very pretty either.
Most "programming" applications for their
age are of the drag-n-drop variety like
Scratch Jr. I wanted to teach them more than
how to drag a code block around and change
numbers. I wanted to teach them the actual
typing of code and creating their own
graphics. A modern programming language
could do this but the learning curve would be
a little steep for their age since the user
interface and terminology is geared for
learners well above their age. There was no
way I would be able to explain libraries,
dependencies, etc... for their age. Also,
customizing commands or changing the
syntax to make it easier for the young
programmer would be very challenging for
me.
Building an interpreter
So I began my journey into creating a
language interpreter. I created the user
interface with a young programmer in mind.
Big buttons, gentle colors, recognizable
icons. Simplicity was my main goal. Watching
how my daughters navigated the interface
helped me tweak it.
I started off one command at a time
beginning with simple stuff like the shape
commands and colors. Next came variables
and loops. I stuck with simple conditional
statements. I am still working with recursion.
I used a couple of libraries to help with
sound and solving recursive math equations.
Initial testing
After I got a working prototype up and
running, I let my 6 year old start working with
it. Very quickly I noticed a few things that
needed to be added. She is at the age where
she knows pretty much what letter a new
word starts with but not necessarily how to
spell the whole word. For example, she knew
she needed to start with the ERASE
command and wanted PURPLE. She knew
ERASE started with an "e" and purple started
with a "p" but struggled to spell the whole
word. For this I added a word prediction box
for a certain command set and the colors. I
also added a help screen to show the colors,
common shapes and how to spell them.
The next hurdle I had was how to explain the
coordinate system for placing graphics. I
created a coordinate box that shows the
position of the mouse so she could
determine the numbers to use for
coordinates.
To start off, I am just working with them to
create pictures with the shape commands
and a little music. This is very visual and they
love the creative aspect. I will gradually
present them with new scenarios and
commands to practice. Letting them type in
simple programs from the Usborne books is
also rewarding to them.
Skills utilized by the new young
programmer:
•
Keyboarding
•
Spelling
•
Colors
•
Shapes
•
Programming concepts
•
Grid coordinates
•
Problem solving (debugging)
•
Ordering
•
Numbers
•
Math
•
Word recognition
The future
Now I hope to learn from others how they
use BriSopht BASIC and incorporate their
feedback into improving BriSopht BASIC.
About
BriSopht BASIC, pronounced bree-soft, is a development
environment I have created to make programming more
accessible to the younger audience. BriSopht BASIC is a dialect
of BASIC that I have put together that contains new commands
that will be a little more intuitive to the young programmer. For
example, instead of using a command such as CLS 1 to clear the
screen with a green color they would instead type ERASE
GREEN. The old commands are still there for us who grew up
programming in BASIC.
Features:
•
Free to use and contains no ads or data collection.
•
Kid friendly interface for programming.
•
Word suggestions to help those just starting to read and
spell.
•
Friendly commands for the young programmer.
•
No file writing commands for security when running
programs created by others.
•
Animation and built-in graphics for use in your programs or
games.
Roadmap
Continous goals:
•
Add resources to learn how to program.
•
Add more lessons.
•
More details on errors.
•
Update command list for better consistency and
standardization.
Short term goals:
•
Add ELSE to single line IF/THEN statements.
•
Add more conversion notes for Usborne Publishing books.
Long term goals:
•
Longer variable names.
•
Handle colon statements on single line IF/THEN statements
•
Better recursion. As long as you keep it simple, your program
should work just fine. All math functions should work fine.