Once upon a time a subject called 'computer science' was taught in UK schools - it included a large component of programming, the logic being that programming is a creative, satisfying process that allows us to take control of technology rather than allowing technology to control us. Then, unfortunately, computer science was replaced by a subject called ICT (Information and Communication Technologies) which no longer included programming - ICT students were taught how to use existing software (especially office productivity software like Word, Excel and PowerPoint) without learning how to make programs (and thus how programs work).

I'm glad to say that in the UK there is currently a strong backlash in favour of reintroducing Computer Science (with programing) back into secondary secondary schools, and I too would like to increase the sophistication of the programing that I teach. For years my classes have included Scratch programing,Actionscript programing (within Adobe Flash) and Microsoft Visual Basic programing but all these programing languages have severe limitations and are of limited interest from a professional point of view, so I have been looking for a modern programing language that is teachable at secondary school level, relatively simple, but nevertheless valuable in the workplace. My conclusion is that the best programing language to study after first learning Scratch is PYTHON. My brother, who makes buckets of money working as a computer programmer in London, agrees with me that knowledge of Python is a real asset on a programmer's CV.

My course will start with the free interactive online lessons at

The excellent book 'Python Programming for the Absolute Beginner' by Mike Dawson is a good book if you want to deepen you knowledge of Python by studying at home. It's available from and the Amazon page allows you to preview many pages of the book. The programs that you develop in this book are downloadable from an accompanying website. If you're interested in Python programing then BUY THIS BOOK!

Here (quoting from the freely available pages) are some reasons why Python is such a great choice for beginners:

If you're new to programming, you've made the right choice. Python is the perfect beginners' language. It has a clear and simple syntax that will get you writing useful programs in short order. Python even has an interactive mode, which offers immediate feedback, allowing you to test out new ideas almost instantly. If you've done some programming before, you've still made the right choice. Python has all the power and flexibility you'd expect from a modern, object‑oriented programming language. But even with all of its power, you may be surprised how quickly you can build programs. In fact, ideas translate so quickly to the computer, Python has been called "programming at the speed of thought."

Programming basically is getting your computer to do stuff. This is not the most technical definition, but it's a pretty accurate one. By learning Python, you'll be able to create a program, whether it's a simple game, a small utility, or a business product with a full-featured graphical user interface (GUI). It'll be all yours, something you made, and it will do just what you told it to. Programming is part science, part art, and one great adventure.

Python is a powerful yet easy-to-use programming language first released in 1991. Its name is a tribute to the Monty Python team, in case you were wondering. With Python, you can quickly write a small project. But Python also scales up nicely and can be used for mission-critical, commercial applications.

There are a lot of programming languages out there. What's so great about Python? Let me tell you.

Python Is Easy to Use

The major goal of any programming language is to bridge the gap between the programmer's brain and the computer. Most of the popular languages you've probably heard of, like Visual Basic, C#, and Java, are considered high-level languages, which means that they're closer to human language than machine language. And they are. But Python, with its clear and simple rules, is even closer to English. Creating Python programs is so straightforward that it's been called "programming at the speed of thought." Python's ease of use translates into productivity for professional programmers. Python programs are shorter and take less time to create than programs in many other popular languages.

Python Is Powerful

Python has all the power you'd expect from a modern programming language. Python is powerful enough to attract developers from around the world as well as companies such as Google, IBM, Industrial Light and Magic, Microsoft, NASA, Red Hat, Verizon, Xerox, and Yahoo!. Python is also used as a tool by professional game programmers. Electronic Arts, 2K Games, and the Disney Interactive Media Group all publish games that incorporate Python.

Python Is Object-Oriented

Object-oriented programming (OOP) is a modern approach to solving problems with computers. It embodies an intuitive method of representing information and actions in a program. It's certainly not the only way to write programs, but, for large projects, it's often the best way to go. Languages like C#, Java, and Python are all object-oriented. But Python does them one better. In C# and Java, OOP is not optional. This makes short programs unnecessarily complex, and it requires a bunch of explanation before a new programmer can do anything significant. Python takes a different approach. In Python, using OOP techniques is optional. You have all of OOP's power at your disposal, but you can use it when you need it. Got a short program that doesn't really require OOP? No problem. Got a large project with a team of programmers that demands OOP? That'll work too. Python gives you power and flexibility.

Python Is a "Glue" Language

Python can be integrated with other languages such as C, C++, and Java. This means that a programmer can take advantage of work already done in another language while using Python. It also means that he or she can leverage the strengths of other languages, such as the extra speed that C or C++ might offer, while still enjoying the ease of development that's a hallmark of Python programming.

Python Runs Everywhere

Python runs on everything from a Raspberry Pi to a supercomputer. And if you don't happen to have a supercomputer in the den, you can still run Python on Windows, Macintosh, or Linux machines. And that's just the top of the list. Python programs are platform independent, which means that regardless of the operating system you use to create your program, it'll run on any other computer with Python. So if you write a program on your PC, you can e-mail a copy to your friend who runs Linux or to your aunt who has a Mac, and the program will work (as long as your friend and aunt have Python installed on their computers).

Python Has a Strong Community

Most programming languages have a dedicated newsgroup, but Python also has something called the Python Tutor mailing list, a more informal way for beginning programmers to ask those first questions. The list is at . Although the list is called Tutor, anyone, whether novice or expert, can answer questions. There are other Python communities focused on different areas, but the common element they share is that they tend to be friendly and open. That only makes sense since the language itself is so approachable for beginners.

Python Is Free and Open Source

Python is free. You can install it on your computer and never pay a penny.

Python is the language of Blender 3D

Blender 3D is a free 3D modeling an animation program, the richest, most interesting and most fun free program on the planet (most fun once you've spent a few dozen hours learning how to use it, that is)! Once you know Python you will be able to do even more amazing things with Blender. See the Blender section of my site.

The goal of this course is to teach you the Python programming language, learning to program by creating simple games. There's something more exciting about learning to program by writing software that's fun. And even though the examples are entertaining, you'll still see some serious programming. We'll move through concepts, one step at a time, by writing small programs to demonstrate each step. By the end of the course, we'll have covered such fancy-sounding topics as data structures, file handling, exceptions, object-oriented design, and GUI and multimedia programming. You'll learn how to design as well as program, how to organize your work, break problems down into manageable chunks, and refine your code. You'll be challenged at times, but never overwhelmed. Most of all, you'll have fun while learning. And in the process, you'll create some small, but cool computer games.

Python Links and Books