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 with 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. We discuss some of these challenges here, and give you some tips to help you think about how to overcome them.

Even students who have grown up with a games console, laptop, or tablet in their house will often struggle in the early days when it comes to typing. When you think about the keyboards they are probably accustomed to using, many are on screen and often operated with nothing more than two thumbs. 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 become creative.

Child on pi top

Another issue that comes with the modern use of digital devices 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.

Yet another issue is our reliance on automatic spelling and grammar checkers. 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 to become accustomed to their capitalisation errors not being recognised until they run their programs and look at the errors. Some of the rules of Python, for instance, are somewhat counterintuitive. For example, you write while True: and not While true: when creating an infinite loop.

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

Lastly, if your learners’ native language isn’t English, then there is a whole host of problems to overcome. There are some programming languages that are based on human languages other than English, but the fact is that many of these languages suffer from poor documentation and support. Learners who cannot read English can always use their own language for their variable names, for instance, but key words are going to need to be in English and more often than not, they will need to be 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

To begin with, you might like to start your learners off with some practice on a typing tutor. There are plenty to choose from, and many which make a game out of the learning such as this one on 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

Next, you could have the students do a little bit of work in a simple text editor. All the major operating systems have a simple text editor such as gedit, Notepad, or TextEdit. These editors only focus on text, and so tend not to have features such as spell checkers, auto-correct, or formatting options. Even if all the students are doing is a simple bit of creative writing, this will help with their typing and with their checking the text for mistakes themselves instead of relying on software tools.

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.

Lastly, when teaching students for whom English is not the primary 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.

Share this article:

This article is from the free online course:

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

Raspberry Pi Foundation