It’s not easy for Computer Science students at most universities in Africa to practice and develop their programming skills. They have the ability to program, but access to desktop or laptop computers might be a problem.
Most African universities have public computer laboratories, but these tend to be used to teach various classes, hence limiting students’ access. Many institutions may also have very few computers for a large number of students. This means that students might need to access computers outside the classroom in order to practise programming. Yet, most people in developing countries do not own computers at home.
Limited access to PCs aggravates the learning difficulties faced by programming students. This is especially true because programming is best learnt through practice. However, most students own mobile phones. Cell phones are the most widely used devices among students in developing countries and indeed, among Africans more generally.
so therefore, a solution was developed to enable students learn programming using mobile phones. The biggest challenge was turning mobile phones into functional programming environments. After all, they aren’t designed with programming in mind. They have small screens and small keypads that impede their use as programming platforms.
So a lecturer from the Kenya Methodist University designed what he called scaffolding – or supporting – techniques that allow for the effective construction of programs on mobile phones using the Java language. These techniques can also address new learners’ needs. The results, taken from his work with 182 students at four universities in South Africa and Kenya, were encouraging.
The scaffolding techniques he designed can be used on Android platforms. They are specifically aimed at students learning Object Oriented Programming using Java.
The technology works by offering three types of scaffolding techniques:
Automatic scaffolding, which are supporting techniques automatically presented on the interface. These include instructions on which buttons to press, error prompts and suggestions to view an example while working on a program. These scaffolding techniques fade away as the student gets more familiar with the application.
Static scaffolding, which involves supporting techniques that never fade away. He included two such techniques. One presents the layout of a Java program on the main interface, so the student always has a visual representation before interacting with the program. This technique is said particularly to support a new student’s learning. The second static scaffolding technique involves creating the program one part at a time, breaking it into smaller parts. This is an
effective way to support the creation of a program on small screen devices like mobile phones.
User-initiated scaffolding, which are supporting techniques that a student can activate. Examples include hints, examples and tutorials.
He tested these techniques on the students while they constructed Java programs on mobile phones. Their feedback was largely positive and suggested that scaffolding techniques specifically designed for mobile phones and based on students’ needs could support the learning of programming using a mobile phone.
Desktop programming environments are complex interfaces. Large screens make it possible for students to be exposed to large amounts of information in one sitting. Large screens also mean that students can be given support in one place, without having to leave the interface. Providing all this functionality and support in one interface doesn’t work well on small screens.
But his research suggests that small screens have some advantages. Students commented that the more simple interface on a small screen helped them to focus on the task at hand. When they had to create a program one step at a time, they didn’t have to grasp a huge amount of information all at once. This may assist their learning in the long run.
Certainly, the study wasn’t perfect. The scaffolding he developed was only for Android platforms, which excludes users from other platforms such as Windows and iOS. And while mobile phones are far more common among students than private desktop or laptop computers, there are some students who do not have and cannot afford even these devices.
For the foreseeable future, African universities and other institutions offering programming subjects will continue to struggle with resources. As long as this situation persists and students access to mobile phones and tablets grows, the techniques that was developed could offer a smart solution that allows the continent to keep producing young programmers.
Photo: Casper Rubin