Simon recently wrote a short ebook, A children's guide to Python programming, to teach kids ages 5-8 computer programming with Python. He also maintains a brilliant website full of free resources to help teachers and students learn computer science and software programming.
Simon is a primary school ICT manager at Rochdale, in the UK, near the world’s longest tunnel, 93 miles long, which runs from the Lake District to Heaton Park. I came across Simon on Twitter, when a friend retweeted a link to his short ebook, A children’s guide to Python programming. The idea you could teach kids ages 5-8 a language like Python amazes me. His ebook also is worthy of note because it uses a Python emulator application which is easily available for Android, iPhones, and tablet computers. Turns out Python programming is an excellent introduction to computer science.
Aside from his school work, Simon’s best known for his website with an extensive collection of computer science, math, computing, and software programming resources, available for free to teachers and students.
Tim: What was your first programming language?
Simon: My first programming language was Pascal, which I learnt at the age of 16 whilst studying computing at sixth form. As part of the course I was studying, I had to use it create a database management system.
Tim: What are the most common questions kids ask you about coding? What do they understand quickly? What takes a bit of work for kids to understand about coding?
Simon: The most common question that children ask about programming is how to debug an error in their code. I’ve introduced various strategies to try and encourage them to do this more independently though in recent years, such as: pointing out common mistakes to them, prompting them to ask a friend and award points to those groups/teams (which my children sit in) who I see solving problems by themselves (this works great as it introduces an element of competition to see who can work the most independently!).
When introducing a new language to them, it does take the children a few lessons whilst they be accustomed to it’s interface and syntax but once they grasp it, I do find that most children are then really keen to create their own programs with it, doing so with growing: speed, confidence and accuracy.
Tim: What’s the most fun you’ve ever had teaching kids to code?
Simon: The most fun I have teaching coding is when a child modifies and improves one of my programs with an idea of their own – I’ve always taught children how to program their own car racing games in Scratch and its nice when children attempt to add multiple cars to their game or choose to add a ‘splash’ screen at the start with some playing instructions on it.
Tim: Can kids 5-8 really learn Python with your recent booklet, A children’s guide to Python? How did that booklet come about, what inspired you to create it?
Simon: I was inspired to create my Children’s Guide to Python Programming because I felt that children could be capable of understanding a proper programming language so long as it was presented in a child-friendly way – and I wanted the challenge of translating the basics into a simple format for them! I tried to make sure that there was a fair balance between tasks where children: copy commands I give them, modify my commands to improve a program and write their own programs using their own code so that their programming skills could improve. I also made sure that I included definitions of key programming terminology as well to ensure that they learn to understand what is meant by words such as ‘looping’ and ‘executing’.
Tim: What are the top 3-5 computer science concepts you believe kids should learn and understand?
Simon: My top computer science concepts that I believe children should learn and understand are: the need to use the correct syntax, how to tinker with code to modify and improve it and how to regularly test programs so that any bugs can be spotted and corrected early on.
Tim: In the UK, do all kids have access to computer technology at home or at a library or other center? Or is there stratification between technology haves and have nots?
Simon: In the UK, most children have access to computer technology at home and there has been a growing trend in recent years of more children owning tablet devices. I’m hopeful that as ownership of tablet computers increases that more apps will become available to all them create their own apps and programs on them.
Tim: How did your website happen? You have an amazingly diverse range of content and I wonder if you find it a chore to keep up or if supplements your daily work?
Simon: I started my website four years ago when I felt that I wanted to share some of my resources with other teachers and not just keep them to myself. A lot of the content I put on there is just material that I produce to use in school myself anyway so there is little extra time or effort needed to maintain the site. Reading all the lovely comments I receive from across the globe keeps me inspired to continue uploading content so that both teachers and children can benefit from my work and ideas.
Tim: From your site, what are 2-5 projects you'd recommend to teachers and students that you find have worked well for you over the years?
Simon: From my site, I’d recommend that you look at both my Scratch and Python lesson resources as they are both great introductions for teaching and learning new programming languages – they contain a range of fun activities which develop skills and provide more challenge as you progress through them. I’ve used them with great success for the last few years and I’ve really managed to inspire children in the potential coding opportunities that they provide!
Simon Haughton’s Website
A children’s guide to Python programming
Scratch 2.0 Resources
How to Teach Outstanding Computing
Also In The September 2013 Issue
Binary numbers, based on 1s and 0s, reflect the practical essence of computer hardware: electricity is either on or off. Learn how to write in binary numbers, and the (not so secret) code to transform English language letters into binary numbers and back again.
Simon recently wrote a short ebook, A children's guide to Python programming, to teach kids ages 5-8 computer programming with Python..
Named after Monty Python, this language is designed to be simple yet powerful, easy to code with lots of features.
In most or all software programming languages, variables work like containers to hold numbers, phrases, or other important stuff used in several places in your code. Here's how they work in several common languages.
Some numbers simply have a positive attitude. They're fun to play with.
Girls Who Code, CoderDojo, and other local groups are great places to learn how to program, meet people, and help others learn.
Building your own computer is a great way to not only save money, and get more processing power, but also to learn about the less obvious parts of software programming.
Interesting stories about computer science, software programming, and technology for the month of August 2013.
There are plenty of places online to learn one or more software programming languages. Here's a short list with some guidelines to evaluate all your options.
Links from the bottom of all the September 2013 articles, collected in one place for you to print, share, or bookmark.
His work ties together two topics for this issue of the magazine: binary numbers and circuit design. Without Shannon, computers and computer science could have been very different.