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.
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.
- Chapter 2 – Getting Started
- Chapter 3 – Variables
- Chapter 8 – Turtle graphics
- Chapter 4 – Conditions and branching (Experiment using the Turtle Object)
- Chapter 5 – Loops (Experiment using the Turtle Object)
- Chapter 6 – Beginning graphics
- Chapter 7 – Fun with shapes
- Chapter 9 – Subroutines
- Chapter 10 – Arrays
- Chapter 11 – Events
- 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.
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. 😉