I am always looking for simple programming ideas to give to the kids that make them think and are doable in a couple of class periods. This little square around the screen is in the general idea. I figured I would have the kids do it in Small Basic, teach the state variable idea then have them do the same thing in Python. We had done the traffic signal program earlier this year so the concept is a refresher. It took me 30 minutes to get it working in SB. The trouble is I am teaching a Python class. Python does not have built-in shapes or sprites that animate easily. You have to use pygame.py or graphics.py. Both are version sensitive. Neither is plug and play. Neither is a nice simple install that the kids could figure out on their own. The install directions are written by an expert for experts. So I decide to use pygame to do this exercise. I am using Python 3.4. Need the right pygame. Pygame for 3.4 in not in the usual pygame site. Search the web. Find the right pygame. Delete old version of pygame before installing new version. (Took a while to figure this little detail out.) Three hours later I sort of have the program working.
After I get it working in Python I kind of sat back and looked at the process I went through for the last few hours. Not the coding, that just require picking through the book to get the syntax and working slowly through the programming logic, but at the process required just to get the Python resources ready to go. I think I can say I could not tell a kid to get this little program working in Python without giving them a whole lot of setup help.
The Small Basic package just makes life so much simple for the classroom teacher. No install issues, simple IDE, simple documentation, no fuss, no muss. For a classroom teacher being able to not have to worry about setup, versions (2.7 or 3.5?), multiple IDE choices (Eclipse, PyScripter, etc), and extra packages (pygame, graphics, …) that need to be loaded to do graphics, sprites and so on, is just a huge life saver. No dinking with the registry and no putting path names in the environmental variables (both things that the average classroom programming teacher would not have access to anyway).
Picking the right language to teach intro programming can be a big decision for a teacher and a curriculum. You really cannot lose with Small Basic. Yes, SB is missing some fancy features; parameters, class building and local variables are the big ones I can think of, but those are sort of nice to be missing. When you reach a point where those are really needed it is time to step up to Java or Python. I sometimes think the perfect programming language for teaching would have a switch to turn these added features on. But then the teacher might be tempted not to teach other languages. Now that would be a big mistake.