So Johnny wants to be a Programmer when he Grows Up!

Does your child want to learn to program? Does he or she have dreams of programming games for Intertops casino bonus?  With so many programming languages out there, which one is the best to teach a young student ages 10 and above? Scratch? Python? Although, both of those choices will work, my personal favorite first programming language is SmallBasic version 1.2 which can be downloaded online.


SmallBasic is specifically designed to be a learning language, so it is not a language that you will find business or general open source projects using.

So what makes it a learning language?  First, there are only 15 keywords that cover the basics that one will find in any programming language.  Two, SmallBasic is setup to allow a programmer to easily use classes without requiring them to program classes.  So a programmer can use a class, but they can’t create a class.

So where do the SmallBasic classes come from?  They are general .NET classes that have been programmed in C# or Visual Basic that other programmers have created.

This may sound counterintuitive, but it is not.  It is not unusual for a beginning programmer to only use classes that other programmers had created.  Once a programmer feels comfortable using classes, they then move onto creating their own classes.  But let’s take it one step at a time.

SmallBasic Curriculum

The point of a learning language is to master the basics that exist in every programming language. Variables, statements, functions, conditional statements, and loops exist in every programming language. Everything above and beyond that is an extra.

SmallBasic has an object called a Turtle.  This Turtle object appears, hides, changes colors, moves, turns, stops and starts.  In other words, it is a programming version of an Etch-A-Sketch toy.

By using the Turtle Object, a young student can visually see exactly how an “if” statement, “for” statement, or a “while” statement works.  These are core concepts that a beginning programmer has to master.  After they understand how these concepts work using the Turtle object, they can move onto small text based programs and finally GUI based programs.

SmallBasic itself has an excellent tutorial.  I just disagree with the chapter order, so I created my own personal recommendation.

  1. Chapter 2 – Getting Started
  2. Chapter 3 – Variables
  3. Chapter 8 – Turtle graphics
  4. Chapter 4 – Conditions and branching (Experiment using the Turtle Object)
  5. Chapter 5 – Loops (Experiment using the Turtle Object)
  6. Chapter 6 – Beginning graphics
  7. Chapter 7 – Fun with shapes
  8. Chapter 9 – Subroutines
  9. Chapter 10 – Arrays
  10. Chapter 11 – Events
  11. Appendix A – Fun Samples

By the time the student finishes this tutorial, they will have a strong foundation in the basics of the structure of a program.  They will also have a start in learning about keyboard and mouse events, and how GUI windows work.

After the student finishes this tutorial, they have two options.  Option 1 is to move onto a different programming language and essentially repeat the tutorials in the “grown up language”.  Option 2 is to continue learning the foundation of programming by working with the classes included in the LitDev extension.

It has loads of extra functionality with over 60 new objects and over 1000 methods, properties and events, including 2D physics, 3D rendering, controls, dialogs, graphing, statistics, matrices, lists, sorting and searching (Regex), faster arrays, USB and COM connection, SQLite, MySQL, SqlServer, OleDb and Odbc databases, webcam, multiple GraphicsWindows, scrollbars, image processing, date and time handling, debugger, client-server interaction, encryption, clipboard, extended music and sound recording, parse xml, file zip and ftp, asynchronous and argument subroutine calls, inline C# and javascript code and lots more.

That is a lot of topics, but the underlying philosophy is the same.  The student should understand how to use these classes before trying to create their own or expand on existing classes.

As you can tell by the class list included in the LitDev extension, the student is going to work with a wide variety of concepts.

This is the whole list of included classes.  It is very impressive:

LD3DView, LDArray, LDBits, LDBlueTooth, LDCall, LDChart, LDClient, LDClipboard, LDController, LDControls, LDCursors, LDDataBase, LDDateTime, LDDebug, LDDialogs, LDDictionary, LDEffects, LDEncryption, LDEmail, LDFastArray, LDFastShapes, LDFigures, LDFile, LDftp, LDGeography, LDGraph, LDGraphicsWindow, LDHashTable, LDHID, LDIcon, LDImage, LDInline, LDIOWarrior, LDList, LDLogic, LDMathX, LDMatrix, LDMusic, LDNetwork, LDPhysics, LDQueue, LDRegex, LDResources, LDScrollBars, LDSearch, LDServer, LDSettings, LDShell, LDSort, LDSound, LDStatistics, LDStopwatch, LDText, LDTextWindow, LDTimer, LDTranslate, LDUnits, LDUtilities, LDVector, LDWaveForm, LDWebCam, LDWindows, LDxml, LDZip

Any student that masters the use of all of those classes will have a greater foundation knowledge than a lot of “professional” programmers out there.  Just because something is designed for learning does not mean that it is not powerful.

Just ask Harold about the power of his purple crayon. 😉

You May Also Like

About the Author: techusers

Leave a Reply

Your email address will not be published. Required fields are marked *