Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Education Programming

Why Teach Programming With BASIC? 709

chromatic writes "To answer the perennial question 'How can we teach kids how to program?', we created a web-based programming environment. As we began to write lessons and examples, we surprised ourselves. Modern languages may be powerful and useful for writing real programs, but BASIC and Logo are great languages for demonstrating the joy of programming."
This discussion has been archived. No new comments can be posted.

Why Teach Programming With BASIC?

Comments Filter:
  • by icebike ( 68054 ) on Tuesday December 28, 2010 @09:08PM (#34693734)

    There is still the theory that once you teach someone basic it becomes impossible to teach them programming. /running and ducking...

    • Theories are frequently wrong.
      • by nomadic ( 141991 )
        They're frequently right. BASIC was fun to learn as a kid but probably derailed me from ever learning proper programming.
        • Or maybe, just maybe, you just weren't all that inherently interested in programming? I somehow find it very hard to believe that anyone truly interested in programming would 'give up' simply because they 'learned BASIC'.

          I started on BASIC(first ZX Spectrum, later QBASIC) - for years - later learned Pascal, then C and C++, and now have programmed full-time C++ for 10 years. And from day one, every step of the way, I've been hooked - loved it, loved learning new things, loved being able to create things.

          I co

    • by hcs_$reboot ( 1536101 ) on Tuesday December 28, 2010 @09:28PM (#34693906)
      I started with the BASIC language as a child. And it was not easy.
      If Basic didn't have lines numbered, a goto, a limited set of instructions (no while for instance), and no mysterious crash (no pointer for instance), maybe I'd have given up. After a while, when Basic concepts were understood, I wanted to get over the language limitations: speed and abilities. The next step was the assembly language, at the time.
      Then learning C: coming from Assembly helped a lot to understand pointers and what happens under the hood.

      Basic was simple enough to give me interest in programming, and its limitations made me want to learn more elaborated languages afterwards.
    • I partially agree. The part the I agree about is I used QBasic back in '95 and I have never learned another language since. I love basic programming and I have never stepped away from it because I have never had a need to. Trying to learn any C derivative while being an at home father is impossible. The part I disagree about, although I have no grounds to speak since I only know basic programming and I should just STFU, is that basic is a very good stepping stone. If I had more time or any money to goto s
      • by tibit ( 1762298 )

        Try Python. It's the only language I can think of that's similarly easy -- namely you can accomplish anything you want with zero fluff. If you want to, you can write in pure procedural style without creating a single class of your own. It'd be easy to transplant your QBasic knowledge into Python, and then learn more tricks (object orientation, functional programming features, iterators and generators, etc).

      • QBasic is the only programming language I failed. It was also my first. I couldn't figure out the damn QBasic for dummies Book. It made absolutely no sense to me what was going on. But it may have also been my age.

    • Re: (Score:3, Interesting)

      by gstrickler ( 920733 )

      My first language was BASIC, my second assembler. Since then, I've learned at least 6 more languages, but I still prefer a modern compiled BASIC for most projects. On the rare occasion that BASIC can't deliver sufficient performance, I'll link in some assembly or C routines. I've been quite successful doing that professionally for almost 26 years. That doesn't mean I always write in BASIC, I use the language that best fits the needs, the majority of the time, that has been BASIC.

      Mind you, I hate old interpr

    • by fean ( 212516 )

      There is still the theory that once you teach someone basic it becomes impossible to teach them programming. /running and ducking...

      Know the difference between Theory and Hypothesis...

      http://lmgtfy.com/?q=theory&l=1 [lmgtfy.com]

  • Python vs. BASIC (Score:4, Informative)

    by Anonymous Coward on Tuesday December 28, 2010 @09:12PM (#34693758)

    I learned to program pretty much with Applesoft BASIC and a Franklin Ace 1000 manual [ironicsans.com]

    Now I'm teaching my mom (!) to program in Python using the Hello World [amazon.com] book.

    Honestly, I wish Python were around when I was learning. Trying to squeeze a new instruction between line 11 and line 12 kinda sucked sometimes. (Then again, I wish a lot of things were around...)

    • by Yaos ( 804128 )
      Python is a easy as BASIC, and you can teach good programming practices in it. Once they get to understand programming, they can move on to the harder things without leaving the language.
    • by Hatta ( 162192 )

      Writing a program to renumber your programs is an excellent early programming exercise.

  • by Blackwulf ( 34848 ) on Tuesday December 28, 2010 @09:14PM (#34693770) Homepage

    ...They GOSUB and don't RETURN.

  • yeah but (Score:5, Insightful)

    by hguorbray ( 967940 ) on Tuesday December 28, 2010 @09:16PM (#34693792)
    despite their limitations and age, procedural languages are a better way to teach kids (or anyone)how to think logically about the steps required to make a computer do something they want it to do.

    It worked for me in 1971 on a teletype at Cory School in SJ connected to a Stanford mainframe -which I had to feed my 'saved' paper tapes to

    and it will work just as well today on whatever BASIC emulators (or even VB.NET god forbid) that are available today on PCs, pads or whatever.

    Although Java is probably better for middle/high school, I do believe that Basic or Logo are better for those younger who have not yet learned how to deconstruct a desired outcome into a bunch of logical steps.

    -I'm just sayin'
  • I personally started with Logo and assembly language, but only because it was what was available in school (Logo) and on my DOS 2.0 floppy (DEBUG).
    Looking back, BASIC may have been the most available language available on ROM at that time, so that's what folks used (despite that it supposedly 'mutilates the mind beyond recovery' according to Dijkstra http://en.wikiquote.org/wiki/Edsger_Dijkstra [wikiquote.org] ).
    I think now, javascript would have that advantage since it comes with the browser (and firefox is particular
  • by account_deleted ( 4530225 ) on Tuesday December 28, 2010 @09:18PM (#34693808)
    Comment removed based on user account deletion
  • Slashvertizement (Score:3, Insightful)

    by SoftwareArtist ( 1472499 ) on Tuesday December 28, 2010 @09:25PM (#34693872)

    Wow, this "story" is a really blatant advertisement for a commercial website.

    No, BASIC is not a good language for much of any purpose, including education. Especially not the archaic type of BASIC they're using. Computer science really has progressed in the last four decades. Personally, I'd recommend Python as a starting language - it's easy to learn enough to do simple things, it's a well designed language that teaches good habits, and it's a "real" language that you won't outgrow as soon as you start writing anything beyond toy programs. But if you want a language designed specifically as a learning tool, there are lots of those that are a lot more modern and let you do a lot more than this company's offering: Processing, Alice, etc.

    • Personally, I'd recommend Python as a starting language...

      I might, if there were a simple, cross-platform, one-click-install download bundle for all of the major operating systems which included pygame and a decent IDE, and even then I'd target motivated 13 year olds as the youngest users.

      If I were trying to teach motivated ten year olds in person, I might choose Python/pygame as well.

      That's not our goal, though. We're trying to help motivated eight year olds discover the joy of programming as a means of

      • Personally, I'd recommend Python as a starting language...

        I might, if there were a simple, cross-platform, one-click-install download bundle for all of the major operating systems which included pygame and a decent IDE, and even then I'd target motivated 13 year olds as the youngest users.

        You can run Python directly in the browser [syntensity.com] - no need for installs at all. In fact one of the motivations for getting CPython working in JavaScript was for things like this. (Note: It doesn't work perfectly yet, but all the hard work is already done.)

        For a basic IDE, that demo includes Skywriter. Integrating some additional features like load/save etc. would make it very usable I think.

        Regarding pygame: It would be possible to get something like that working in the browser, targeting an HTML canvas ele

    • by outsider007 ( 115534 ) on Tuesday December 28, 2010 @09:52PM (#34694072)

      I came for infotainment but was disappointed to find an edutizement

  • I think Python is a better contemporary choice now (and I learned on structured BASIC - QuickBASIC)
  • by robbak ( 775424 ) on Tuesday December 28, 2010 @09:27PM (#34693894) Homepage

    There is noting inherently complex with OO, unless you already have a head full of linear or procedural programming that you need to get rid of.

    A nice, stripped-down OO language - I'd sugest parts of java if it was a free language - would be a good start. Even a graphical interface, although they are undeniable useless for real programming, would be useful for starting off.

    • by narcc ( 412956 ) on Wednesday December 29, 2010 @01:47AM (#34695606) Journal

      Programming should NEVER begin with OO. If for no other reason than the cruft you need to add in OO languages before you can even begin to introducing basic concepts.

      Objects are great when used appropriately. However, knowing how and when to use objects takes experience. Beginners by definition don't have experience.

      "Pure" OO languages are even worse. When everything is an object, you don't have a choice about when to use them and, consequently, are much more likely to use them inappropriately. (Bad OO code makes you wish you were maintaining bad VB code!)

      Sure, a good programmer can write great OO code, but such programmers are extremely rare -- You're not likely to find an introductory class full of competent and experienced OO programmers.

      Having taught programming to many different age groups (from children to adults) I know from experience that OO is not the way to go. You can't just start off with structure -- it's totally inappropriate. They simply can't learn to structure their code until they're capable of writing some!

      Teaching someone programming is a bit like teaching someone to think. A good teaching language should let you introduce all the basic concepts like direct sequencing, bounded and conditional iteration, conditional branching, variables and types, i/o, etc. without a bunch of indecipherable code cluttering up the program and confusing the student ("magic" just-ignore-this code does not aid in the learning process).

      For that, the submitter is spot-on. Languages like BASIC and Logo are excellent introductory languages. All meat and no fat. I prefer Logo for children under 10, BASIC for everyone else. I've tried Java, JavaScript, C, Pascal, and even COBOL. Nothing stays out of your way like BASIC or gives you the instant satisfaction (crucial to younger children) like Logo.

  • BASIC? Really? In 2010 someone is making products with BASIC?!?!?! This has to be for legacy supp... wait you say it isn't? WHAT THE FUCK!!!

    Please do your students a favor and use Python.

  • by ZorinLynx ( 31751 ) on Tuesday December 28, 2010 @09:29PM (#34693916) Homepage

    Those of us who were kids in the 80s and grew up playing on microcomputers with BASIC have a very distinct property:

    We grew up together with computers.

    When we were kids, computers were simple, single-tasking, small memories, and it was easy for a youngster to understand the entire system. As we got older, systems got more complicated, and so did our ability to understand them.

    Today's kids start with computers that are already large systems with complex operating systems, millions of times more memory than we have *disk* when we started, that are difficult to understand at a low level. I think this puts them at a loss. Every child should be able to play with and learn on an Apple II, C64, or similar small system. Of course realistically that won't happen. So emulated "systems" with simple programming languages may indeed be a good idea for today's kids.

    • by Nimey ( 114278 )

      Or, you know, there's actual emulators such as AppleWin for the ][ series and VICE for the C=64 and its brethren. Also RetroForth.

      • by c0lo ( 1497653 )

        Or, you know, there's actual emulators such as AppleWin for the ][ series and VICE for the C=64 and its brethren. Also RetroForth.

        Not as an IPhone app, though. And that's the tool I heard the new generation is using.

    • I "grew up" through the TRS-80 / Apple II era, and I think that the "magic" of BASIC is still accessible on today's machines - sure you can't (easily) program super slick applications in it, but then you never could, even in the old days.

      For me, BASIC was great because it was interpreted, very fast to try something and see what happens. It also had enough "power" in its relatively simple syntax (60 to 70 commands) to do a lot of things without resorting to insanely huge bloated libraries (stdlib/Boost/
    • Today's kids start with computers that are already large systems with complex operating systems, millions of times more memory than we have *disk* when we started, that are difficult to understand at a low level. I think this puts them at a loss...

      I don't agree. Today's kids are making flash games, putting up websites, making short movies, and a whole slew of stuff they wouldn't have been able to do (or share) when the C64 was king. Now the entry level for doing what it is you specifically want to do with computers which means it's a LOT more accessible to today's youth. That spark of interest is worth a lot more than an understanding of what a pointer is.

    • They can still program (RISC) microcontrollers in C/assembly. It's much nicer than x86. You can get one for $25 (AVR Butterfly).

    • I rather like The Elements of Computing Systms [idc.ac.il] as an educational tool, you build a computer in an emulator.

  • Teach them math and language skills. These are the fundamentals of programming and it is a waste of time to teach programming until these foundations are in place.

    • This works well for geeks who are interested in programming, but for the general population, it is best to get them immersed and interested first before teaching syntax, grammar, and object oriented programming principles.
  • Pretty cool little Commodore 64 emulator but the peek, poke, and sys commands have yet to be implemented. Luckily the GOTO command was implemented. The Java and OOP Nazis have been trying to kill GOTO for years and I am glad to see that it is still alive and well for future generations of programmers to enjoy.

    If you are new to basic try this little program...

    10 ? 'HELLO WORLD'
    20 GOTO 10
  • by underqualified ( 1318035 ) on Tuesday December 28, 2010 @09:40PM (#34693996)

    the correct question would be...

    how do we get our kids interested in learning how to program?

    and the answer to that would be...

    tell them they're not allowed to do it.

  • "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
    - Edsger W.Dijkstra

    There might be hope for subjects that started using "gosub" without ever using "goto" but I have never seen anyone having done that.

    But then again IMHO today's html/javascript is one form of modern spaghetti code too so maybe BASIC should be taught because of that.

    • by volkerdi ( 9854 ) on Tuesday December 28, 2010 @09:54PM (#34694098)

      Famous quote, but nonsense. In many ways, trying to build large BASIC programs and ending up with unmaintainable spaghetti code is one of the most valuable lessons a programmer can learn.

      • by catbutt ( 469582 )
        If your teaching style is to frustrate your students, rather than get them doing something fun and satisfying as quickly as possible.
        • by kenh ( 9056 )

          Your right, programmers should always work in confined, carefully-constructed environment where there is no possibility of a program getting too large or too confusing - that will certainly prepare them for their first programming job - maintaining legacy spaghetti code, likely written in a "dead" language running on "archaic" hardware...

  • by rbrander ( 73222 ) on Tuesday December 28, 2010 @09:53PM (#34694090) Homepage

    You can teach people logic statements and procedures and about objects, even - with ENGLISH.

    In my grade 8 class, there were no computers except the ones at the University I was by then programming with punch cards using stolen student accounts. But the math teacher asked us to write out our procedure for tying our shoes - in precise, motion-by-motion detail so another student could do it exactly the same way as we did, without help. Most people required over a page, and it was a revelation how excruciating it was. Later, in CompSci 501, I learned about logic statements and predicates and the wonderful Lewis Carrol problems ( 1: All my turtles that are not green are old....) All English.

    "Computer Programming" on the other hand, is about making computers do things for you. By hook or by crook, by object or procedure, just get 'er done. I completely agree with the language snobs and detest BASIC. And I do most of my programming in it because you can make Excel about 10X more useful with just a little VBA here and there.

    Learning Python or Java is just great if you plan to be a professional programmer one day, those languages can solve very large problems without the codebase becoming unmanageable. If your problem is getting a bunch of kids excited about what computers can do, you have no choice but to use whichever language will produce results with the greatest WOW factor with the shortest learning time.

    That cuts out ALL verbose languages, languages that demand typing. The "Hello world" program should be one statement long.

    Notice that doesn't chop out Perl or Python. But also notice that at kid-levels, those languages can only take screen input and produce text output. That was cool for me in the 1970's but I think today you'll get better results with something that can go graphical right away. (This also just cut out your original BASIC).

    So, if your school has MS-Office on every machine, well, as a FLOSS fan I hate you, but you're crazy if you don't leverage the presence of VBA. You can show them what cool stuff a computer can do with Excel alone, show them some formulas in action and all that. (This, by the way, keeps them from thinking of "computer programming" as necessarily procedural right there - clearly, you are instructing the computer, but you are NOT using a procedure, just setting up conditions for behaviour of the cell objects!)

    Then show them procedural programming by modifying the spreadsheet with VBA. This can lead quickly to manipulating the Excel data structure, which is a huge collection of objects with properties and methods. Many can manipulate charts in pretty ways, or turn Excel into "graph paper" with coloured cells in funny shapes, like ASCII art. You can take it all the way to them inventing their own objects in VBA.

    AND: It will be useful in a job, even if they only learn to write 10-liners. Bonus.

  • by QuoteMstr ( 55051 ) <dan.colascione@gmail.com> on Tuesday December 28, 2010 @09:55PM (#34694120)

    When teaching students how to program (which is entirely different from teaching them computer science), you should begin with the most fundamental concepts: talk about raw memory and opcodes. Discuss briefly how these instructions are actually interpreted and implemented (how a half-adder [wikimedia.org] works is fascinating, even if most people never have to build one in real life).

    Once your students understand how to make computers do basic things with raw instructions, teach them jumps, conditionals, loops, and even subroutines. After that, introduce higher-level languages and compilers, and demonstrate that the compiler merely automates what your students have already been doing. From there, teach progressively higher-level constructs, including second-order function references, data structures, and so on. Object-orientation falls out naturally once you get to structures and function pointers.

    If you follow this approach, your students will have an understanding of the entire abstraction hierarchy, which is not only of immensely practical value, but also underscores the principle that nothing in this field is "magical". You can always pierce an abstraction, and even more importantly, erect new abstractions where appropriate. The most common flaw I find in programmers is the inability or unwillingness to build new abstractions. The only way we make progress in this field is by the old reductionist approach of breaking a hard problem into smaller parts and attacking each individually. When you teach your students how to do that by demonstrating the power of abstraction, you make them better programmers.

    Programmers shown UML, Java class graphs, and so on right away become too familiar with that level of abstraction. They think of lower levels as some kind of magic and don't realize they can and should build their own levels on top of what they're given. The result is often incoherent, rambling, brittle, and ugly code. Don't let that happen.

    • If you follow this approach, your students will have an understanding of the entire abstraction hierarchy, which is not only of immensely practical value, but also underscores the principle that nothing in this field is "magical".

      Those students who don't run screaming into the night or aren't bored into a zombie state, sure. But that won't be many.

      The only way we make progress in this field is by the old reductionist approach of breaking a hard problem into smaller parts and attacking each individu

  • Scratch (Score:4, Informative)

    by gmuslera ( 3436 ) on Tuesday December 28, 2010 @10:16PM (#34694300) Homepage Journal
    When i first saw Scratch [mit.edu], included with the XO, got stunned on how powerful it was, and how visual and intuitivel could be for the children. Not sure if there is a web based implementation, but is open, available for all platforms, and maybe more important, already included in a computer meant for children (not sure how much it count in the rest of the world, but in my country almost all school chidren have it).
    • Yeah me and my son spent countless hours playing around and laughing over the crazy things we were able to do with scratch. Fun to learn programming and foster creativity.

  • pascal (Score:4, Informative)

    by smash ( 1351 ) on Tuesday December 28, 2010 @10:25PM (#34694374) Homepage Journal

    I've got a big soft spot for pascal. I started wtih basic, and then LOGO (home computer had basic, then logo in school as a kid), but Pascal was the first useful language that actually taught me about data types, functions, and later, object oriented programming (TPv6).

    Its easy to read, not prone to bugs like using = when you mean == (in C), and fast enough to get useful stuff done.

    Problem with programming these days is that to get anything useful done you're buried under a hundred layers of toolkits and abstraction from what is actually going on.

    Give kids an old PC with a copy of DOS, turbo pascal and some basic instructions on VGA mode 0x13 and you can write fun stuff pretty quickly.

  • by Invisible Now ( 525401 ) on Tuesday December 28, 2010 @10:47PM (#34694528)

    Line numbers and gosub/goto s haven't been used since the mid80s.

    Ever program with a VBA object model, using Intellisense prompting? Name a better, more complete, and useful IDE environment...

    Count curly brackets all you want. Regard semicolons as essential. But you can't craft code that reads like simple English in any other language. Well named objects only make BASIC better.

    BASIC is like the O'Reilly cover that was chosen for it: A big friendly St. Bernard or a language.

    If you haven't built dozens of useful, maintainable, systems quickly, with small teams, maybe you should keep an open mind...?

  • So (Score:5, Insightful)

    by ledow ( 319597 ) on Tuesday December 28, 2010 @11:54PM (#34694904) Homepage

    So the *BEGINNER'S* All-purpose Symbolic Instruction Code, and a language created exclusively for educational use are great languages for demonstrating and teaching kids how to program? What a shocker. You "surprised" yourselves how/why? By having ridiculous notions that "any idiot" knows how to teach kids better than the experts who set out in the 60's and 70's to EXPRESSLY do just that ?

    You've been suckered by language-purists, people who spend so long arguing about WHICH programming language to write something in that I could have written something in ten languages before they come to any conclusions whatsoever. BASIC is *wonderful* for teaching programming. I know, I've done it, from class-mates back in the 80's to modern-day kids nearly 30 years later. And yet my ENTIRE intake year for university sat through a whole year of Java lectures from a qualified professional and still didn't understand what half the statements they were using actually DID, while I didn't attend a single lecture and passed the course just by emailing in the assignments from home 30 mins before they were due. That's not to make me a genius, I was just taught properly, encouraged to learn, and started with simple tools - I wasn't forced to learn, by rote, a complex tool that requires deep understanding to know what it's actually doing. I started on something I *could* understand and progressed in steps. BASIC didn't corrupt me, it was a stepping stone that I outgrew.

    When you teach a child to write, you don't teach a 2-year-old quill-calligraphy, or demand their first piece in iambic pentameter. You give them a crayon. If it hits the paper 3 times out of 10 you congratulate them. Then you progress to more advanced things as the need requires. But guess what? If you think that's the last time you'll ever write anything with a crayon, you're wrong. If you're still submitting your CV (resume) in orange crayon aged 30, you have a problem (the same as someone routinely programming important code in BASIC at the same level of experience). But neither should you go and hunt down a quill and parchment to scribble the note that says you're out of toilet roll.

    Some people can't understand that BASIC is *excellent* for teaching. It was *designed* that way, and beats 99% of mainstream languages for that. But if your company is still running exclusively off it in 2010, it's a bit like sending out invoices in crayon. However, even in a modern office, sometimes you just need a tool for a small, simple job and sometimes BASIC works fine there (in the same way that scribbling "pay the caterers" in crayon on a post-it is perfectly acceptable as an aide-memoire). There are schools that, without a bit of BASIC, or shell-script, or DOS batch file, etc. wouldn't be filing their accounts, or importing the new student-intake data each year, I know that. When the job is once-a-year, with changing requirements, with specific needs, with various "mental hacks" that have to be applied anyway (i.e. "we need to drop column X this year if column Y is less than 20 because that old law no longer applies"), and needs to be done quickly it can happen in any language you like.

    I have taught BASIC only a year or so ago, to a top-class prep-school student, in a single one-to-one session, in a single afternoon. That was from *zero* programming knowledge (but a keen mind), exclusively on paper and the next day they were writing (working) games and hadn't required a single extra tool, library, download, reference or command-lookup - we ran them through QBASIC to see them in action but they worked perfectly. I have also spent several HOURS trying to clean up a single function written by a top-class MSc CS-student that had only ever been exposed to Java in order to find out WHICH of the several dozen syntax errors, scoping errors, operator-precedence errors, etc. was actually the main cause of their function returning junk. I could have taught them a whole programming language AND done the same job quicker than I could teach them to d

    • I wish I had mod points. GREAT post. The analogy of teaching a child to write is spot on. Excellent post.

  • by laird ( 2705 ) <lairdp@gmail.TWAINcom minus author> on Wednesday December 29, 2010 @01:48AM (#34695614) Journal

    I'd agree that interpreted languages (with BASIC and Logo being examples) are great for programming. The edit/compile/run cycle causes too much friction, discouraging kids from experimenting.

    But having taught hundreds of kids programming, there's a huge difference between BASIC and Logo. Logo is a simple but powerful language that teaches kids how to express what they want to a computer. BASIC is a complicated but limited language that mainly confuses kids and teaches them loads of incorrect beliefs that make it hard for them to eventually learn to express themselves clearly. Certainly starting with BASIC can be recovered from (Dykstra was being overly dramatic) but I would advocate doing that to anyone on purpose.

    Of the introductory languages that I've taught, I think that Logo was the best introduction, because it's the simplest, most natural syntax, with the ability to easily generate graphics that engage students. And while most people don't notice, Logo is a fully expressive programming language.

    For comparable, but more modern languages that are good for introducing kids to programming, there is Scratch (http://scratch.mit.edu/), which is friendly and interpreted and visual. Also free and open source.

    Reading the ClubCompy web site, they built something that is intended to be simple for kids to experiment, with no install, and thus is a "computer" interpreted in JavaScript. This seems like a nice idea. No real connection to BASIC or Logo, other than they want to achieve the simplicity and openness to experimentation that those languages represent. After giving it a look over, I like the fact that their language based on LOGO, but am not thrilled that they added LINE NUMBERS. I can't believe that it's a good idea to make kids learn about line numbers, with all of the associated complexity, rather than to use a simple text editor. The only reason that line numbers ever made sense is that back in the era when BASIC was invented, you couldn't assume a text editor, or even the ability to move a cursor on the screen (remember working on printing terminals?). But I think that limitation no longer applies. So while I like their goal quite a bit, I have a feeling that they would have been better off sticking with an existing simple language, such as python, lua, or even Logo.

On the eighth day, God created FORTRAN.

Working...