Learn to Program in BASIC or Python

In my KS3 programming lessons, I'm teaching students to "program" using BASIC.  I don't like the term "coding", because coding has other meanings in relation to databases and encryption and could confuse students.

We're starting with Just BASIC and then moving onto Visual Basic once we've mastered the basics (although I have also created Python versions of the resources - see below). I chose BASIC for a number of reasons - it's easy to learn and doesn't have confusing syntax with braces and semi-colons, but it still has some variable typing and standard programing structures such as loops, decisions and arrays.  Unlike Python, progressing to Visual Basic allows you to create normal-looking form-based Windows applications with ease, and also allows you to create Office macros in VBA or program web-pages using ASP or ASP.net.

Not sure that programming is for you? Watch this video and come back in five minutes! If you are interested in programming, but think would like to start with something simpler, why not try Scratch? I have created some Scratch examples using interesting and/or useful programming techniques.  Programming is a compulsory part of the Computing National Curriculum at KS3 in all state schools in England - you are required to learn two different languages, at least one of which must be text-based.

Key Concepts

Below are links to presentations explaining the key programming concepts. I have written an article describing my top ten programming techniques for older students, but these are the ones that I start with at KS3. They also include code examples in BASIC - if you would prefer Python versions then see the links further down.   The list may expand as the course is extended, so come back soon if there's something else you'd like to see here. There is also a set of video tutorials as a playlist on the AdvancedICT YouTube channel.

There are wider computing concepts spread throughout the site, but for interactive examples aimed at younger students, have a look at the Interactive section.

You might also want to cover general programming ideas such as:

Programming Tasks

Here are some of the programming challenges that students could approach to begin with - they are suitable for both BASIC and Python:

Most tasks have extensions, and we encourage students to enhance their programs beyond the bare minimum, where possible.

If you enjoy attempting tasks like these, then why not register for Project Euler for some more challenges?

Examples

You can download a .zip file containing solutions to these tasks and other examples created in Just Basic. For Python examples, see below.

Programming the Curriculum

Why not link with other areas of the new Computing National Curriculum by getting your students to create programs to demonstrate, or test their understanding of key Computing concepts? You can create programs for converting numbers to binary (using bitwise Boolean logic or otherwise), for sorting and searching, to demonstrate the use of Exclusive-OR for encryption, or to help them think about the storage of text by capitalising text or creating anagrams or shift ciphers. Download some examples in BASIC or Python.

Python

Someone's done a good job selling Python to schools - it seemed to pop up out of nowhere in the last couple of years. I'm not sure that it's the best language to begin with, because things like for loops and arrays are different from nearly every other language I've used, as is the way that int() rounds numbers in most languages but casts variable types in Python. Creating a Windows form-based application is also particularly fiddly compared with something like Visual Basic, or even HTML and JavaScript. There's also the confusion caused by the incompatability between Python 2 and Python 3.

However, I am aware that a lot of schools use it, so I have adapted a set of the above presentations and example programs to use Python rather than BASIC:

Both sets of files are in a .zip file / compressed folder. There is no presentation on arrays for Python - it has been replaced by the one on lists and tuples.

JavaScript

There is no JavaScript course, but I have created a set of JavaScript examples that can be used to demonstrate key techniques to students, particular changing text and colours on the page to display state. Examples include choosing lottery numbers, a die model, a seven-segment display, a Simon game, plus rotation and animation that doesn't require Flash.

Video Courses

I am developing video courses on how to learn to program on the Advanced ICT YouTube channel:

For older students I have also written articles on the use of modular arithmetic and using arrays for selection as well as my top ten programming techniques.