For many children, programming is challenging to learn and for visually impaired learners there are a number of additional barriers which need to be overcome. Block-based languages are a popular choice for introductory programming courses, however their visual nature makes them inaccessible to learners with visual impairments. Physical programming languages, that use physical blocks or pods to represent each command are a potential alternative, as long as each block is distinguishable by touch.
So physical programming languages are a potential alternative to block-based languages, but what about text-based languages? The accessibility of text-based languages is largely dependent on the programming environment, with many being inaccessible. Research has demonstrated that visually impaired learners can be successfully introduced to the fundamentals of programming in a text-based language through physical computing coupled with accessible programming environments.
The use of physical computing devices such as robots and micro-controllers has been shown to be an effective mechanism for engaging novice programmers, including those with visual impairments. The BBC micro:bit is currently a popular choice in the UK due to its relatively low cost and plug-and-play nature, therefore it was chosen as the most suitable candidate to further investigate the potential of physical computing to introduce visually impaired learners to text-based programming. The first step was to explore how the micro:bit could be made accessible to learners with visual impairments.
Many different programming languages are available to the BBC micro:bit, however Python was chosen for two reasons:
- it is the most popular text-based programming language in UK schools
- the micro:bit implementation of Python has a basic speech synthesiser.
The excellent programming environment, Mu has been developed to enable learners to easily program the micro:bit using Python. Unfortunately Mu doesn’t currently work with screen readers and is therefore inaccessible. There is, however a command-line tool (uFlash), that can be used to transfer a Python program onto a connected micro:bit. uFlash can be used in combination with Notepad++, an accessible and customisable text editor, that allows the user to define custom keyboard shortcuts. A custom configuration file was created that transfers the current file onto the connected micro:bit. This setup enables visually impaired learners to write their Python program in Notepad++ and simply press Alt+F1 when they are ready to test it on their micro:bit.
In order to hear the output from the micro:bit it needs to be connected to headphones, this can either be done using crocodile clips or by using a board such as the amp:bit. It was decided to use the amp:bit as the learner simply needs to slot their micro:bit in and plug in their headphones. So far resources have been developed covering sequence, repetition and selection.
Although this approach has a lot of potential, it does have some limitations:
- it is hard to tell the level of indentation using a screen reader alone
- error messages are displayed on the micro:bit screen and not read out.
Going forward we hope to conduct empirical research in order to evaluate and refine this approach to teaching visually impaired learners to program in a text-based language.