BASIC for Kids Programming fun for everyone
BriSopht BASIC | © 2017-2023 | Johnny Jarrell | https://www.johnnyjarrell.com

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.
BASIC for Kids Programming fun for everyone
BriSopht BASIC | © 2017-2023 | Johnny Jarrell | https://www.johnnyjarrell.com

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.