BASIC-256: An easy to use BASIC language and IDE for education
basic256.org
basic256.org
The original idea was to mimic the C64 Basic I grew up with. I think with modern teaching languages the control flow is too abstracted to give you a good idea of what the machine is actually doing. Early basics really mimicked machine code quite closely...I think that was important.
My hope was that it would never get advanced features, and that it would be instructional and then kids would move to Python or Racket, but adults liked it for generating art because of the simple graphics procedures.
Anyway, it's good to see my baby grown up a bit.
> The “scripting” languages that serve as entry-level tools for today’s aspiring programmers – like Perl and Python – don’t make this experience accessible to students in the same way. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways.
I can only assume that the author hasn’t actually used or even seen, say, Python, which is often referred to as “runnable pseudocode”; meaning “the notes you wrote on how to implement your algorithm can often be copied and pasted into a Python program and run as-is”.
From the BASIC-256 page:
> It uses traditional control structures like gosub, for/next, and goto, which helps kids easily see how program flow-control works.
I, myself, originally taught myself to code when I was young, using BASIC on machines with BASIC in ROM, and have typed in listings from magazines and bought expensive BASIC reference manuals, read them in detail and used the language to create many utility programs and games. And even I wouldn’t wish BASIC on anyone when modern languages with features like (gasp) functions are readily available.
Sure, I could understand the wish for BASIC back when the alternatives were C, Pascal, Perl, LISP, FORTRAN, or Java. But when Python exists, there is no need for BASIC.
(I should note that Python originally derives from a language explicitly created for teaching, called ABC.)
I think Python has an ill-deserved reputation as a simple language for beginners to pick up because if you know some other programming language Python is mostly familiar. I've spent years teaching hands-on introductory programming to middle- and high-schoolers, and my experience is emphatically that if you don't already know how to program, Python is confusing and difficult to come to grips with.
Python has many obvious separate levels of learning it. At first, one could learn line-by-line coding, as done in the interactive interpreter, gradually moving into loops. Then, one could spend a long time with functions, dipping deeper and deeper into data types, sequences, recursion, etc. Only after this could one even mention classes and object oriented programming. There is no reason to assume that one would need to learn all of Python all at once.
A good language is also a language which allows its users to grow, not a toy language which teaches its users the futility of ever trying to accomplish anything serious, which is precisely the feeling I got from BASIC.
In my experience in learning and teaching programming, the language itself however has very little impact of the result. Those that learn programing, especially children, do so because they want to create something. The language is then chosen based on what makes that easiest. Those that want to create a website often starts with html, css, and javascript. Some want to create their own game, which mean python or c++. Others simply want to create game mods and the language then depend on the game itself (like TESScript). I have seen great success in each of those, and each time the initiative has started from the wish to create.
Screenshot: http://i.imgur.com/FKX3j2P.png
Source: https://www.khanacademy.org/computing/computer-programming/p...
In USSR there was a set of programs for education, called KuMir (mentioned in https://en.wikipedia.org/wiki/Non-English-based_programming_...). There is a GPL version of it for Windows and Linux at https://www.niisi.ru/kumir/index.htm It provides two environments: one it which you can draw, another in which you control a robot. The second one is somewhat unique. Robot should bypass walls, can put and remove flags and can move cargo around. You can see some "screenshots" in a 1990 book: https://www.niisi.ru/kumir/books/1.pdf
What I would really like to see is such a system where language is not BASIC, but Forth.
I guess, despite many controversions, Python or Ruby are way to go (not really JS, as JS lacks of any syntax) - syntax is very easy in both languages, multiple different libraries exists and there are plenty of educational platforms.