6 ms·
BASIC-256: An easy to use BASIC language and IDE for education
- teddyh 11y agoAs a motivation for this project, they point to an article in Salon, Why Johnny can’t code (but they use the wrong URL; it has moved to https://www.salon.com/2006/09/14/basic_2/ https://www.salon.com/2006/09/14/basic_2/). That article says: > 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.)
- RodgerTheGreat 11y agoPython has tremendously more complex syntax and semantics than a classical BASIC interpreter. Calling python "executable pseudocode" is as disingenuous as claiming that C has a straightforward translation to machine code (maybe if you're using C on a PDP-11 in 1972…). 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.
- teddyh 11y agoEven if I would grant this, does this make BASIC better than Python?
- RodgerTheGreat 11y agoYour first programming language doesn't have to be a practical language, and it doesn't have to be powerful. Small languages which allow students to master the entirety of the language are a better tool for building confidence and teaching elementary ideas like sequence, variables and iteration. For the first steps of dipping your toes into programming, BASIC is better than Python. An ideal curriculum will expose students to a progression of languages as they outgrow the limits of each environment.
- teddyh 11y agoI’ll just briefly say that I disagree. I believe that my development and education as a programmer was severely hampered by BASIC’s lack of functions, and I would not wish it on anyone else. 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.
- acqq 11y agoI'd say yes, if done right.
- belorn 11y agoScratch would be a better entry-level language for those who view python as too complex. It was designed for the purpose of teaching elementary ideas without the "more complex" syntax and semantics of practical languages. 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.
- BHSPitMonkey 11y agoThe environment used to teach programming on Khan Academy looks very much like this, but in the browser and based on JavaScript and Processing.JS: Screenshot: http://i.imgur.com/FKX3j2P.png http://i.imgur.com/FKX3j2P.png Source: https://www.khanacademy.org/computing/computer-programming/programming/animation-basics/p/challenge-parting-clouds https://www.khanacademy.org/computing/computer-programming/p...
- ycmbntrthrwaway 11y agoTightly integrated and ready to use graphics API that does not require setup has been used to teach programming for a long time. In USSR there was a set of programs for education, called KuMir (mentioned in https://en.wikipedia.org/wiki/Non-English-based_programming_languages 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 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 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.
- BHSPitMonkey 11y agoVery cool. Certainly wasn't trying to suggest that KA invented the idea (the OP predates it); just wanted to point it out as a great low-barrier resource that anyone with a browser can jump into.
- jejones3141 11y agoIck. I guess I'm spoiled; back in the early 1980s I had the pleasure of using BASIC09. It had the grungy control flow if you felt the need, but also had procedures (with actual local variables), decent control flow (save that you were stuck with ON <expr> (GOTO|GOSUB) rather than a reasonable switch (wasn't it called SELECT in other structured BASICs?) ), an integer and a Boolean type, and the moral equivalent of structures (though you had to redeclare them in each function they were used in, which was a bit of a pain and a possible source of error). It compiled to an intermediate code in the manner of Pascal P-code... and it ran on the 6809. That I'd be willing to consider suggesting for kids to use, at least when I'm not thinking they should be started on Haskell before they're corrupted by imperative languages. :)
- tomcam 11y agoWow. I looked it over after reading your comment. Very impressive. Manual still easy to find in PDF: http://www.roug.org/soren/6809/basic09.pdf http://www.roug.org/soren/6809/basic09.pdf
- drblast 11y agoWow! Funny to see this...I started this project as a hobby in grad school and never thought it would stick around this long. The current maintainer had been working on it for years since I couldn't anymore and has done a fantastic job. 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.
- alfanick 11y agoMeh, lets use some subset of an useful language (not BASIC) for education - if so, someone might actually use some programming (or be inspired to learn more) later in their lives. 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.