BBC Basic

In my look at different languages for use in GCSE computing, I never even considered BBC Basic*, so it was a surprise to discover that it’s the language used in examples given out by OCR and the language used in a new coursebook.

BBC Basic was one of the original languages used in schools, on the BBC Micro.  Back in those days, as I recall, all users learned a form of BASIC – I myself learned Sinclair Basic, on the ZX81.  At that point, each line of code needed a line number, and it was possible to jump from one line of code to another using a command called GOTO, which could result in code that could be hard to read.

password checker in BBC Basic (from OCR)

password checker in BBC Basic

Now it seems that BBC Basic has been updated into a version for Windows.  There is a free version available for evaluation purposes, which limits the size of programs and prevents you producing a stand-alone version of the code.  A paid-for licence is available to lift these restrictions.

My concern is that I cannot understand why this language would be a language of choice for teaching computing.  It’s described as easy for beginners to learn, and it’s based on a language that may be familiar to those who learned their programming a couple of decades ago, but I can see no inherent benefit in using a language that’s purely for teaching and not used in any professional developments, as far as I’ve been able to find out.

I’ve tried hard to show an interest in this language, really I have.  I don’t know whether I have some deep-seated aversion to Basic, but to me this looks clumsy and hard to read, and there seem to be other languages that are free, used professionally and are far easier to read and understand at a glance than this one.  There seems to be no hook to say that BBC Basic is better because…, just the feeling that BBC Basic was the original teaching language so it should still be used.

password checker in Python

password checker in Python

Am I missing something?  Is there some aspect of BBC Basic that makes it better than Python or Java to use?  Because I’m disappointed that OCR have chosen to release their sample code in this one language rather than provide a selection of examples.  The justification given in the book for using the language is that BBC Basic is very close to pseudocode, but I don’t see that it’s any closer than other languages, and I’m left with a feeling similar to one I felt when I originally learnt Basic – that it’s all very well, but it’s not a proper language that is actually used to create real projects.

Feel free to correct me, but this feels to me like something that is being pushed for nostalgic purposes rather than because it’s a good tool for the job. Or am I just carrying over my old teenage prejudices, with all the frustration of trying to write fast, playable games with a tool that was just too slow to work that way?

PS: Originally BASIC was always given in capitals, as an acronym for Beginners’ All Symbolic Instruction Code, but these days it seems to be adopted as just Basic. 


About emmyleigh
Writer/editor/proofreader who loves technology

17 Responses to BBC Basic

  1. Phillip Kent says:

    The re-appearance of Basic after 20+ years is stunning; Basic belongs in the archives (except maybe if you are doing back-end programming of Excel, but surely there are better options for that as well).
    Even more stunning is that schools will be asked to pay license fees for a Basic interpreter! (what’s the betting that the publisher and/or exam board are getting a cut on the license money??).
    The best hope is that someone produces a complete python-based version and teachers boycott the Basic option en masse.
    – Phillip

  2. Your concerns seem to revolve around a belief that BBC BASIC is “a language that’s purely for teaching and not used in any professional developments”, but it’s simply not true. BBC BASIC has been used to develop many professional applications; a few are documented at and they are just the tip of the iceberg.

    • emmyleigh says:

      Thank you for your interest and comments – I have looked at your link and again I’ve tried to find commercial uses for BBC Basic, and I still get the impression that while it CAN be used for commercial purposes, it doesn’t tend to be the language of choice and there are other languages which are commercially useful, easy to learn and are available free.
      Does BBC Basic stand up to the modern focus on object-oriented design and multiple threads?
      I see nothing wrong with using any language for teaching, if it will deal with the different structures (if, loops, etc) that are needed, but my main objection was with a textbook providing coding examples only in a language that requires a fee to be paid for use of a full version, when there are so many languages to choose from that are widely used commercially and free to use.
      It also seems that a lot of today’s students want to know what use something is before they’ll take any interest, and while java is commonly used (mention that minecraft mods are written in java and that’s sold it instantly!) and python is also behind things they’re familiar with like youtube, interest in a modern update of a program that maybe their parents learned to program with is a lot harder to promote.
      My concern was that with the sudden pressure to introduce computing in schools, teachers unfamiliar with programming will rush to use a language that maybe they learned a little about in their childhood, rather than exploring the possibilities and drawbacks.
      I’d hate to think I’d ever reject the idea of learning something for the sake of learning, and if/when I get the chance I’ll almost certainly be looking more closely at BBC Basic, but at the same time if I could use something that’s free, easy to use and widely used commercially, I’d have problems justifying the use of something that’s a commercial product involving a fee, with far less support available for learning or teaching, just because it’s something that I may have grown up with.

      • The feedback I get doesn’t support your comments. For example I recently received this from an ICT teacher: “I would like to say BBC Basic is brilliant, very well structured tutorial and our students enjoyed programming using BBC Basic. I have started introducing BBC Basic to my KS3 students as well”. And this on the BBC BASIC ICT support group: “I think it’s the perfect platform to start from and then learn other languages later when students know more about what they want to achieve”, to which another user replied “I quite agree”.

        As far as what you describe as the ‘modern focus’ is concerned, BBC BASIC is single threaded (unless you drop into assembler code) and its support for the OO paradigm is limited to what is provided in the supplied CLASSLIB library – which can do classes, methods, objects, inheritance and containment but not (for example) polymorphism. But of course many people choose BBC BASIC for teaching precisely because it is, fundamentally, a procedural language.

        When you express concern that teachers may “rush to use a language that maybe they learned a little about in their childhood” do you include those at the OCR Examination Board who recommend BBC BASIC? I’m pretty sure that it’s OCR, not individual teachers and their experience, that are primarily driving the take-up of BBC BASIC in schools.

        Finally, I honestly don’t think the cost of BBC BASIC for Windows should be an issue. It is priced at a level that is insignificant in the context of a school’s budget, and if they want pupils to have their own personal copies I offer very affordable Student Licences. Certainly no school has ever expressed to me that the cost has been a factor in their choice of language.

  3. emmyleigh says:

    For a start, OCR have stressed that they are not recommending any particular language and are happy for teachers to teach any that they are familiar with - plus their own specification – so I’d be interested to see your authority for claiming that they recommend BBC Basic.

    The only evidence I can find for BBC Basic within OCR is the textbook written by Sean O’Byrne and George Rouse, which uses the language for its example programming coursework tasks and states that while any language can be used they chose BBC Basic because of its similarity to pseudocode.

    There may well be a group of teachers who declare that BBC Basic is brilliant for the job – I’ve never said that it was unsuitable for the job, but I do suggest that just because some people are using it and saying it’s good does not mean it’s suitable for all or the best solution. After all, your sample are already using it and have therefore already made their decision!

    I haven’t taken a close look at your teaching materials which I assume are on your website, but a search of Amazon shows a whole list of books for learning/teaching Python, a similar list for teaching Java, and even a couple of books for Small Basic, which can lead on to using Visual Basic, and therefore has a stronger argument for being of practical use. However, the only book I could find for BBC Basic was written in 1986 (maybe I should write you a textbook!). Similarly, online resources are far more prolific for Python and Java.

    As to not hearing of the cost being an issue, I would suggest that for those schools where it is an issue you are unlikely to hear of it anyway – there was no way the school I was teaching at would consider paying for a tool when there are others just as suitable or more so available for free and with wider resources and practical applications. In the same way, expecting students to buy their own tools, even with a student licence, is difficult particularly in areas of deprivation, where many of the students will already be struggling with the concepts of computing.

    I have admitted in the original blog entry that I am biased against BASIC as a language with practical applications, but I do also feel that actively promoting BBC Basic as the recommended teaching tool is not advisable considering the alternatives available (and my husband, who has been a programmer for the past thirty years, is of the same opinion).

    I am, however, willing to look into it further and evaluate your teaching materials if you wish, and as I say, I’m now considering going on to create my own teaching materials so would be prepared to consider BBC Basic for part of this. At this point I find it hard to consider it as more than a hobby language, however, and would like to think that teachers who are using it are doing so after careful consideration of all options available, which is the purpose of my blog.

    I said originally that I could not see what BBC Basic had going for it that made it a better choice than any other language, apart from possibly being a language familiar to a specific generation from looking at it during their own school times, and I’ve yet to see any different, I’m afraid, but I’m open to further investigation.

    • Click on this link and read the final section of the document labelled Programming Language:

      You’ll see that whilst, of course, OCR do not recommend one specific language to the exclusion of others, BBC BASIC is highlighted for its similarity to the pseudocode they use, and as one of only two languages used to verify the tasks.

      On the cost issue again, I would be perfectly happy to supply BBC BASIC for Windows for free if I thought it would increase its takeup. In practice I think many customers positively prefer to pay a nominal amount, because of the confidence it gives them in the quality of the product and its after-sales support. ‘You get what you pay for’ is still an accepted maxim in some quarters.

      Incidentally it would be usual for a school to pay for the Student Licences and provide them to their students for free.

      You are quite right that more textbooks on BBC BASIC would be very welcome, so if you are serious about writing one I would give you every encouragement (and any practical help you might want)!

      • emmyleigh says:

        Okay, teaching materials – what teaching materials/activities do you have that would be suitable for use in schools? I’ve written a quick Python guide that I used to introduce my year 8 and 9 students to the language last term, which seemed to work well – I’d be interested in seeing something similar for BBC Basic, or writing it if it doesn’t exist. Link to the Python booklet I did is here:

        The only learning materials I’ve seen so far seem to be aimed at the adults, but I’m assuming there must be a collection of resources somewhere.

        I must admit you’ve got me interested now, I’d love to write a further blog entry going further into BBC Basic and seeing how easy it is to learn and develop in and what it has to offer. I do have the free evaluation version – just how restrictive is that compared to the paid version?

        I come from the days of ZX81, so on one level the idea of going back to basics appeals, but I’d like to see a lot more before I can truly compare ease of learning etc with Python and Java, which are the two languages I’m most familiar with (have touched on C++ as well, but haven’t heard of that being taught in many schools!).

        As for writing textbooks – that’s definitely an area on my to-do list, and I’d be interested in considering something on BBC Basic further when I’ve seen what’s actually available so far.

  4. As far as my site is concerned, I can recommend this tutorial as being suitable for (although not specifically written for) students. It’s not dissimilar in style to your Python guide:

    I should hasten to add that it was not written by me!

    The only limitations in the trial version of BBC BASIC are the amount of memory available (only 12 Kilobytes, compared with a maximum of 256 Megabytes in the full version!) and that it has no means of building standalone executables – you can only run programs in the context of the IDE. I am considering increasing the trial version’s memory limit because although it is as much as was available to BASIC on the original 1982 BBC Micro it’s rather pathetic by modern standards. Something else that’s on the horizon is a version with extended-precision data types (80-bit floats and 64-bit integers) – this currently exists but is not released.

    Of course you would be more than welcome to a free copy of the full version with my compliments; just let me know your email address.

  5. emmyleigh says:

    Thanks, I’ll take a look, get used to the language and then produce a child-friendly booklet modelled on the python one for you to use as a starting point – your one really wouldn’t be suitable for key stage 3 kids, and to be honest I suspect that anyone who’s looking to start out in computing would be generally put off by the lack of materials and go for a much easier option, and that your main audience at the moment is those who already have experience with the language.
    Taking things to email is probably a good idea – best to use my business address, – the website is where I’m trying to build up a bank of resources, but haven’t had much time yet (just given up classroom teaching to take more of a support role). BTW, I see you’re a member of CAS but haven’t been very active and there are no resources on there for BBC Basic – let’s see if we can at least put something on there to make a start with 🙂

  6. Another resource you could look at is this:

    I abandoned Computing At School when they moved from Google Groups; I just couldn’t get used to the new site (and nor could several others at that stage!). BBC BASIC is however featured on Coding At School:

    • emmyleigh says:

      Okay, I’ve looked at those resources, and sent an application to join the support group. I’m not sure where you intend taking BBC Basic, because I would have thought CAS would have been essential – you missed a whole thread where your input would have been useful, for example, and all teachers are being advised to join CAS for support and resources as the classroom focus shifts from ICT to computing. Google groups is all very well for a small number of participants, but the new site copes much better with the larger number of members now around.

      Anyway, I’ll see what I can do to at least get some basic tutorials/resources suitable for the classroom going. I still think you’re pushing it a little to claim that OCR actually recommends the language, but I’ve always believed in learning the thinking skills rather than a specific language, and for beginners the language itself matters little, so as long as BBC Basic will fulfil the basic criteria, there’s no real issue other than interest level and support.

  7. Thanks for the heads-up on the CAS thread, although by the look of it there was plenty of support for BBC BASIC without my input! I am an engineer, not an educationalist, and I’m not particularly comfortable engaging in the debate about the suitability of BBC BASIC for schools. I see my role as primarily a technical one: ensuring that the product remains bug-free and compatible with the latest versions of Windows.

    • emmyleigh says:

      Fair enough – well as using BBC Basic could help GCSE students with their pseudocode as well, and you really need resources if you want to introduce new users, here’s a semi-serious suggestion – how about I write you a textbook that you can sell from your site and we split any proceeds after costs are covered? 🙂

  8. Sell? I thought you wanted everything to be free! 🙂
    But seriously if you write a textbook I would be very happy to promote it on my site – and you are welcome to keep 100% of the proceeds. Money-making is quite genuinely low on my list of priorities.

    • emmyleigh says:

      Not everything has to be free 😉 I guess I’m thinking of what seems to be the open source model – free tool but with different levels of support available at different prices.

      I’m intending to put some sort of textbook together anyway,so I’ll do some free sheets and workbooks you can offer up and then see how a textbook to teach pseudocode alongside coding would work, for the GCSE crowd. Would be fun to try, anyway. And I would do an appendix to show how the skills apply to Python and possibly Java, to aid transitioning and to show that the principles apply in any language.

  9. Pingback: More on BBC Basic | ICT in Action

  10. emmyleigh says:

    Check the latest entry on my blog please – I welcome any comments/suggestions/feedback on the resource, and you’re welcome to repost it if you wish.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: