I have been thinking a lot about BASIC recently, and it seems that I have a lot to say about it, so I will break up this huge blog entry that I wrote about BASIC into smaller, more digestible ones.
Right now BASIC is mostly derided or hated. Yet since the 60s to the 90s, it is the language that most people learned how to program. John George Kemeny and Thomas Eugene Kurtz created a masterwork learning programming language. And they did this early in the history of computing. As it is, BASIC was designed to teach people the rudiments of programming. And on this goal, BASIC has been the most successful teaching language ever made.
BASIC has a series of characteristics that makes it so successful. The most important is that it is small. Very small. The core of the language can be printed out in a single sheet of paper. Because it is so small, it can teach the core ideas about programming, such as assignments, conditional, and loops. One can learn the core between in about a weekend. The lack of a greater language makes the learner focus on the concepts rather than on syntax. The small size of the language is probably the reason why it became the default language of the home computer of the 70s and 80s.
Another important feature was that it gave you quick feedback. With a few strokes, one could see something happening on the screen. The feedback loop is powerful; and especially important in programming education. Many programmers remember the feeling of power that they felt when they understood that they could control the machine. BASIC, thanks to its economy in typing strokes, gives that feeling fast.
Finally, BASIC had an environment that got out of the way. Once one learned how to run, save, and open a file, one could focus on programming. The text editor was simple, and for all practical purposes, invisible.
One can accuse me of being nostalgic about BASIC. They can point out the many faults that the language has such as the lack of consistent functions, subroutines, the GOTO command, the bad learning habits picked up by the language, etc. No, I am not ignoring them. it happens that they get mentioned too much, and the strengths of BASIC are not acknowledge enough. Furthermore, we forget to remember a curious historical incident that occurred to the language and which brings forth its shortcomings:
It was a learning language for beginners
It was not meant to be a professional language. It was not meant to be used for big programs. Most of the problems attributed to the language come from its accidental misuse as a professional programming language. The same characteristics that makes the language great as a teaching tool is what makes it horrible as a professional language. Some of the bad thinking habits grew out of necessity when writing programs around BASIC's limitations.
Eventually the shortcomings to the language were addressed with newer versions of that extended the language and gave it greater flexibility and addressed its former problems, but the reputation damage of caused by the 80s versions of the language was done.
That was history. The question today is whether there is a place for BASIC in education. This year we have seen a lot of interest in the internet about people wanted to learn how to code. I personally feel conflicted on this. How much of BASIC's success can we explain by existing at the right time? Maybe it is too old? Maybe newer languages such as python, ruby, or Scratch are better substitutes? I will explore some of these questions in future posts, where I compare different languages.
Here is another beautiful project from Bella.
Bella did her first programming tutorial tonight! This is her work; a scratch project. I am so proud of her. Crunchy Granola Academy seeks to give a sound technology education to its students!
To stop it, click on the red stop sign on the top right. To start it again, click on the green flag.
Today we had a successful chess lesson with Alexander and Isabella. Alexander helped to put the pieces on the board, mirroring what Isabella was doing. We played a few games of pawn games. Next time, we are going to delve into lesson two!
This morning, at Crunchy Granola Academy, we finished out trebuchet models. Here you can see our young engineers working earnestly on their machines. Smile to the camera, Alexander! Now put back your hard hat. Safety First!
Isabella successfully launched a cherio from her model. Notice the pink sling. Isabella designed the stabilizing system; without it, the trebuchet flips over. The standard solution is to put the structure on wheels; she decided to stabilize it with extra anchors instead.
Here is detail shot of the sling and weight. The weight is a battery taped to the rod. The sling was made with a rag.
Our learning experience showed that the hardest part of making these models is to make an appropriate sling. The wrong sling shape will not throw the objects the right way. Our models were so small that making the slings were tricky. We believe that making a bigger model should make the sling making easier.
Isabella, a student at Crunchy Granola Academy, started her first magazine. it is called, "Bird, The Field Guide Magazine". This is another project that she conceived and started all by herself.
Here is what an issue looks in the inside: