Thursday, 5 April 2018

Getting Started With Computing Resources

For Primary I'd recommend the Barefoot computing resources and either making disposable robots such as what you can make with Raspberry Pi or using robots such as Dash and Dot which you are more robust.  There's plenty of options on the market, so have a look around. I'd make the decision in Vietnam when you know what you are doing.

For primary coding, I'd recommend Scratch as the go to tool if they're on Computers. Otherwise, Hopscotch, Scratch Junior and the new Swift coding for iPads (64 bit only)


For Secondary you should do Python for iGCSE and A-level or Java for IB.  I've included a list of resources to help you get started.  I'd also recommend getting a good book for Python and as you are in the UK, I'd recommend checking them out at the library and see which you'd get along with. Java is generally considered more difficult than Python so I'd be careful about introducing it at Key Stage 3. Some have managed it at year 9 with some good frameworks. I've made a versal course that introduces the basics to year 8 for Python.

General Resources

Hodder Key Stage 3
For a complete UK Key Stage 3 curriculum, this series is very useful:
(Interest disclosure: I am one of the authors) 

Barefoot computing (primary)
Great site for students beginning to code

UK Computer Science Curriculum

Dash & Dot Robotics

Apple's resources

Code To Learn
Scratch Based with some good resources
Great organisation for beginner coders. I find it a little too on the rails in some parts.

Raspberry Pi Curriculum resources
Great for physical computing, but also a lot of good Python materials

A very nicely packaged curriculum

Code Club Projects
Some nice projects here for Python

Please feel free to add other resources in the comments.... I'm sure all will be appreciated!

Sunday, 11 February 2018

Python Challenges Major Update

The Python Challenges site that I run has been through a major overhaul over the last 2 months, including a rewrite of most of the code providing interactivity.

A part of the reason for doing this is that Awesome Table are now charging for anything above 1,000 views per month and the fees are more than I can afford for what is a free site. Its a great tool, but I can't afford to spend on something I give away for free...

So I used this opportunity to update the site and rethink how it works. Initially I wanted to replace Awesome Table with some custom written javascript. (You can see this on the AS page) but I soon realised that this was a good opportunity to hand curate the important challenges and make them more engaging.  So both the iGCSE and A2 pages have been written by hand to give them a more individual flavour.

To make my life simpler, I now simply publish the master list of challenges directly from Google Sheets, it may not be quite as nice, but its quick, simple and Google aren't likely to charge me for the service in the near future.

Despite these challenges, the Website now feels more mature with hand curated challenges that really engage students and the A2 pages in particular have benefited from some new challenges created by my students.  I was very pleased to see the work that Jonathan and Sam have done on Prolog and Object Oriented challenges.

I hope you enjoy the new version of the site and please contribute by making comments below and sharing your thoughts!

The link is:

Friday, 17 November 2017

Google Docs for Code... Github's got it going...

Great news, the Atom code designer now looks like it will have real time collaboration. This is great in the classroom where students can begin to code together in school and at home.  Even more useful for students to help each other debug....

It takes a little more effort to install than Google Docs, but it looks well worth a try.  As a bonus, it is a great editor and I use it all the time for LUA. I may now also consider doing some Python with it too....

Find all the details at: 

Saturday, 21 October 2017

Making GForms Quizzes less sensitive

Over the summer Google enabled short answers on their quiz functions. This is wonderful news. However as with all standardised forms, spelling matters and capitalisation matters!  However there are some ways to make things a little easier for students or at least give them a sense of fairplay.

In this example we want a name, so we insist that it contains at least one capital letter [A-Z] 

We could also insist that the characters are all lower case using matches and [a-z ]+
Note the space is really important if you want to have more than 1 word. 

Perhaps you are concerned about people using dogs rather than dog. In many cases both might be correct. Well you can sort that quickly using a maximum length.

You can also use numbers and this can be a great way to not only test maths questions, but also to give a large range of options with a multiple choice diagram,

For example you can easily ask test questions about this heart with a few simple short answer questions rather than do a dropdown from 1-8 or multiple choice.

If you'd like to do more complex regex expresions there's a great site to help you: Please note that there are dialects, so not all regex you find on the internet will work with Google forms.

Tuesday, 27 June 2017

Differences between A-levels, iGCSES & IB

There are a number of international qualifications around and it is important to know the differences between them. I want to state that all of these qualifications are highly thought and any one of them will help you on your route to university.

iGCSEs taken at 16.

Let us start with iGCSE. iGCSEs are the international version of the GCSE, which students in the UK take at the age of 16.  These give teachers and parents a good idea of how well a student might do academically.  In the UK at least a C in Mathematics and English is a must for most employers. iGCSE grades are taken into consideration when applying for university and will help the university to decide what conditional offer to make.  It is expected that most students will take iGCSEs and it can make if your child has NOT taken iGCSEs it may mean you have to delay your application until after they have either their A-level or IB results.

It is possible in some circumstances for you to enter a university foundation programme straight after your iGCSEs, but many programmes need students to be 17 to enter such a programme.

IB Diploma Programme suits All-rounders
Many schools offer an IB Diploma programme which is widely respected and offers a very good all round preparation for university. It means that students do not have to limit their choices so much at 16 and suits students who are all-rounders.  If a student can handle languages, science and the arts then this could be the best option and is able to write large essays independently then this could be the best option.

A-levels enables earlier specialisation
A-levels originate from Britain and students choose 3-4 subjects, it is up to the student how balanced these are, but if your child definitely wants to do science then they can do so, if your child is not good at languages then these can be avoided etc.  On top of the 4 A-levels students can choose to do an extended project, which is similar to the IB Extended Essay.

Worldwide Acceptance

Both are accepted world wide and although in the UK A-levels are the more common qualification universities are happy to make an offer based on IB results. (These offers have improved in recent years as universities gain more experience with the IB qualification)  Australia have tariffs for both qualifications and it is a simple matter to apply. 

The US
However if you are intending to go to the US there are some other considerations. Many US universities require SAT exams to be sat ( and you will need to make time for these.  Also currently if you take modular A-levels you may get unconditional offers from a US university based on your AS-level grade.

Saturday, 8 October 2016

Python for iGCSE & A-level

Sometimes you just wish you could find that perfect Website to help teach something. Over the last year or so I've been busy collating and compiling Python links, so I thought it was about time I shared them with you all!   There's a lot of high quality resources here, but also some which whilst not perfect have the seed of an idea that can be useful!

Have you found any Python Websites? Please comment below.


Visualize Python, Java, JavaScript, TypeScript, and Ruby code execution
Jabela's Pastebin -
HTML Basix - iFrame code generator


The Bubble Sort — Problem Solving with Algorithms and Data Structures
Bubble Sort In Python
The Insertion Sort — Problem Solving with Algorithms and Data Structures
Insertion Sort In Python
Bubble Sort
Lesson 2: Bubble Sort - Worksheet - Visualising Sorting with Python | Raspberry Pi Learning Resources
Lesson 3: Insertion Sort - Worksheet - Visualising Sorting with Python | Raspberry Pi Learning Resources
Lesson 3: Insertion Sort - Lesson Plan - Visualising Sorting with Python | Raspberry Pi Learning Resources
Lessons - Visualising Sorting with Python | Raspberry Pi Learning Resources
Miniconda — Conda
Anaconda 2.5.0 Package List — Continuum documentation
Download Anaconda now! | Continuum
Compare sorting algorithms' performance - Rosetta Code
Sorting algorithms/Insertion sort - Rosetta Code
Sorting algorithms/Bubble sort - Rosetta Code
The Quick Sort — Problem Solving with Algorithms and Data Structures
Overview of quicksort | Quick sort | Khan Academy
Sorting Algorithm Animations
bubble sort on Scratch
Bubble Sort - GeeksQuiz
SparkNotes: Bubble Sort: Bubble Sort Problems


Introduction to Tkinter
GUI Programming with Python: Labels in Tkinter
Dialog Windows ::: An Introduction to Tkinter :::
An Introduction to Tkinter (Work in Progress)
Simple GUI Programming | Using Python
TkDocs - Tk Tutorial

Challenge Sites

Practice Python
Python-programming-exercises/100+ Python challenging programming exercises.txt at master · zhiwehu/Python-programming-exercises
Where can I find programming puzzles and challenges? - Programmers Stack Exchange
[2015-11-23] Challenge # 242 [easy] Funny plant : dailyprogrammer
Coderbyte | Practice programming and prepare for coding bootcamps and job interviews
Prolog Problems - Prolog Site
LessThanDot - Forum - View forum - Programmer Puzzles
For learning, refreshing, or just for fun!


Welcome to PyInstaller official website
compilation - Create a single executable from a Python project - Stack Overflow
py2app - Create standalone Mac OS X applications with Python — py2app 0.9 documentation
How to create Windows executable (.exe) from Python script
From a Python script to a portable Mac application with py2app
Creating an Executable from a Python Script | Matt Borgerson


Learn Python The Hard Way
Python Lists
3.2. Introducing Lists
Python Lists and Tuples | Python Central
Find the Average, Min, Max and Mode of a List in Python
List Manipulation in Python


Cutting and slicing strings in Python - Python Central

FIle Management

Python3 Tutorial: File Management
Python File I/O - Python3 Tutorial
File handling — Python for you and me 0.3.alpha1 documentation
Reading from a file
Python 101: Reading and Writing CSV Files « The Mouse Vs. The Python
Reading and Writing Files in Python
Chapter 8 – Reading and Writing Files | Automate the Boring Stuff with Python
OpenTechSchool – Working With Text Files
13. Files — How to Think Like a Computer Scientist: Learning with Python 3
Python Cookbook
Reading and writing text files in Python - Python - Snipplr Social Snippet Repository
OpenTechSchool – Working with Strings
Files - Dive Into Python 3
7. Input and Output — Python 3.5.1 documentation
Python Files I/O
File Handling in Python

Object oriented

Programming Concepts: Object-oriented programming (OOP) - Wikibooks, open books for an open world
Object-Oriented Programming | Unit 1: Software Engineering | Introduction to Electrical Engineering and Computer Science I | Electrical Engineering and Computer Science | MIT OpenCourseWare
An Introduction to Interactive Programming in Python (Part 2) - Rice University | Coursera
Improve Your Python: Python Classes and Object Oriented Programming
Object oriented programming in Python
Object Oriented Programming · A Byte of Python
Quickly Learn Object Oriented Programming - Learning web development | MDN
1.13. Object-Oriented Programming in Python: Defining Classes — Problem Solving with Algorithms and Data Structures
Chapter 11. Object-Oriented Programming
Python/Classes - Wikiversity


A thorough guide to SQLite database operations in Python
SQLite Python tutorial
SQLite Python Tutorial
SQLiteStudio - Downloads
Welcome to SQL | SQL basics | Khan Academy
GIS Skills Ladders 2017 - Google Docs


Installing Pygame for Python 3 on OS X — English
(the eff-bot guide to) The Standard Python Library
Dive Into Python
Dive Into Python
Learn Python The Hard Way
Code Like a Pythonista: Idiomatic Python
codecademy-exercise-answers/Python/Functions at master · BugraBalci/codecademy-exercise-answers · GitHub
Courses | Grok Learning
Program Arcade Games With Python And Pygame
Assignments — Problem Solving with Algorithms and Data Structures
Pygame Zero, a zero-boilerplate game framework for education | Mauveweb
GlowScript IDE
Python Programming Tutorials
Creating a Pygame window | Peter's Website
Python from Scratch: Object Oriented Programming - Envato Tuts+ Code Article
Non-Programmer's Tutorial for Python 3/Intro to Object Oriented Programming in Python 3 - Wikibooks, open books for an open world
Python Object Oriented
4. Object Oriented Programming — Python Practice Book
CS005x Course Info | edX
Google's Python Class | Google for Education | Google Developers
GUI Programming with Python | DevDungeon
Python Tutor - Visualize Python, Java, JavaScript, TypeScript, Ruby, C, and C++ code execution
Nerd Paradise : PyGame Basics Tutorial
Python Programming Language | Eduporium
Tutorials Basic - PyGame Tutorials
The Top 10 Pygame Tutorials | The “Invent with Python” Blog
Automate the Boring Stuff with Python | Practical Programming for Total Beginners
Program Arcade Games With Python And Pygame
Teaching Computer Programming to High School students: An introductory course using Python as the high level language
Learn Python The Hard Way
Runestone Interactive
Downloads - Leon Zhang
Hands-on Python Tutorial — Hands-on Python Tutorial for Python 3.1
Berkeley - EE61A - Computer Science (Python 3) - Spr 2012 - YouTube
CAS Community | Keystage 2 and 3 Python: "From beginners to bonkers"
A Byte of Python
Trevor Appleton: Writing Pong using Python and Pygame
Beginning Game Programming for Teens with Python - Ray Wenderlich
Writing a game in Python with Pygame. Part I - Eli Bendersky's website
“I Need Practice Programming”: 49 Ideas for Game Clones to Code | The “Invent with Python” Blog
Pygame [The Python Game Book]
An Introduction to Classes and Inheritance (in Python) - Jessica Hamrick
Welcome to Pygame Zero — Pygame Zero 1.1 documentation
pygame / pygame / Downloads — Bitbucket
Pygame tutorial #3: mouse events | Keeping it Small and Simple
18. Recursion — How to Think Like a Computer Scientist: Learning with Python 3
Python Programming Tutorials
Python + PyGame Install | Skelly Kiernan's Blog
Python Programming Tutorials
Learn Python - Free Interactive Python Tutorial
Using Tkinter | Using Python
Examples of applications written in Python
Introduction to GUI programming with tkinter — Object-Oriented Programming in Python 1 documentation
20 Python libraries you can’t live without | Python Tips
Practice Python
Learning Python Programming Language Through Video Lectures - good coders code, great coders reuse
46 Simple Python Exercises
Basic Python Exercises | Google for Education | Google Developers
Core Python - DZone - Refcardz
Cheat Sheet: Writing Python 2-3 compatible code — Python-Future documentation
GCSE Computing Python Programming Resources
BeginnersGuide/Programmers - Python Wiki
Building a basic GUI application in Python with Tkinter and wxWidgets
TkDocs - Tk Tutorial - A First (Real) Example
Hello, Again
Intro to programming with Python and Tkinter - Python Wiki
Introduction to Programming Using Python 3
Binary Search
Python Programming Tutorials
Tkinter tutorial
Zero to Hero with Python | Code Geek
Zero to Hero with Python - YouTube
omarshammas/pyPoker-Texas-HoldEm: Python implementation of Texas HoldEm Poker
Python School
Google Code Archive - Long-term storage for Google Code Project Hosting.
FrontPage -
The Best Way to Learn Python - Envato Tuts+ Code Article
Python: Get Today’s Current Date and Time
PythonByteSize - Home
SoloLearn: Largest community of mobile code learners
Python – Programming Language
Introduction to Programming Using Python 3
Tutorials/Basic logic gates – Official Minecraft Wiki
University Subject References 2016-17 - Google Docs
how to declare a 2D array in python
Python - Multi-Dimensional Arrays or Matrices
Writing a pyglet application — pyglet v1.2.4