Want to keep learning?

This content is taken from the Raspberry Pi Foundation & National Centre for Computing Education's online course, Scratch to Python: Moving from Block- to Text-based Programming. Join the course to learn more.
A boy is working on a Scratch programme on a lap top

Literacy and typing challenges

There’s no doubt about it: we live in a technologically advanced world. Many students have access to computers or mobile devices, or have some experience using them. Despite this, when learning to use a text-based language, there are still some major hurdles which students have to overcome, and which have little to do with their ability to think logically or computationally.

Typing accuracy

Even students who have grown up with a games console, laptop, or tablet will often struggle in the early days when it comes to typing — they are probably more used to typing with their thumbs on an on-screen keyboard. When programming in a block-based language, typing is kept to a minimum; so using a language like Python, where suddenly every character of the code must by typed out, can cause problems. Young learners in particular can become very frustrated by this, as it can take several minutes to type out even the shortest of programs, and they spend so long typing that there is little time for them to experiment and be creative.

Child working on a a laptop

Abbreviated language

Another issue is the way that written languages have evolved over the past few years. People are used to altering words, abbreviating them, or using acronyms in their text conversations that would be illegible to a computer. As a human, you can probably understand that the sentence ‘ill b gone 4 a wile’ actually means ‘I’ll be gone for a while’. To a computer, the word for and the number 4 have very different meanings, and whereas the word while is a key word in Python, wile most certainly isn’t.


Even as I write this, I’m always on the lookout for the little wavy lines that help me correct my awful spelling. Although you can use software to help correct errors in code, these applications are often quite complicated and unsuited for beginners. This means that learners have become accustomed to not recognising errors, such as a missing capital letter, until after they run their programs. Some of the rules of Python are somewhat counter-intuitive. For example, writing: while True: and not While true: when creating an infinite loop.


There can also be problems relating to a learner’s literacy. Even without learning difficulties such as dyslexia and dyscalculia, many young learners are unable to recognise the difference between for i in range(5): and For I in ragne 5: when they first type the line. Even the best programmers will occasionally make mistakes, such as typing Flase instead of False.

English as an additional language (EAL)

If your learners’ first language isn’t English, then there is a whole host of barriers to overcome. There are some programming languages that are based on human languages other than English, but many of these languages suffer from poor documentation and support. Learners can use their first language for their variable names, but key words need to be in English, and more often than not, they will need to use a language in the Western Latin character set. Additionally, even if a learner is a native English speaker, many programming languages use the American spelling of words, such as color instead of colour.

Addressing these issues with your learners

You might like to start your learners off with some practise on a typing tutor. There are plenty to choose from, and many which make a game out of the learning, such as Dance Mat Typing from the BBC. Your learners don’t need to be touch typists (although it’s an incredibly useful skill to have), they just need a little familiarity with the keyboard layout.

A child coding

Simple typos are almost unavoidable when programming, and are part of the learning experience. The trick here is to try and boost your learners’ resilience, and have them look at the error messages produced by the computer and then check their code to look for mistakes.

You could have the students do a little bit of work in a simple text editor, as they tend not to have features such as spell checkers, autocorrect, or formatting options. Doing some creative writing will help the students with their typing, as well as checking the text for mistakes themselves instead of relying on software tools.

Lastly, when teaching students for whom English is not their first language, it’s always a good idea to have a cheat sheet available with some standard translations to help them understand what the key words mean and therefore what they are doing.

If you would like to learn more about making all learners feel included, you can sign up to our online course, Creating an Inclusive Classroom: Approaches to Supporting Learners with SEND in Computing.

What strategies have you tried? How did they support your learners? Share your thoughts in the comments.

Share this article:

This article is from the free online course:

Scratch to Python: Moving from Block- to Text-based Programming

Raspberry Pi Foundation