Learning to code with Mahara

by Jinelle Foley-Barnes

Working on the Mahara ePortfolio project has proven to be a great way for students of all ages to learn programming – from Rylee, aged 9, to the many high school students who have made their first contributions to an open source project, as well as university students who gain work experience through internships, part-time work or university projects.

Recently, Rylee contributed her first Behat test. These tests are written in a human-readable programming language, using a pseudo-language called Gherkin. Behat allows test scenarios that are normally completed manually to be run automatically. This makes it possible to perform these scenarios repeatedly during the software testing process, much more quickly than would be possible for a person. Rylee copied and pasted steps from the Mahara Behat wiki page into a document and filled in the blanks with the names of links and buttons she was clicking on to create a journal entry. Rylee's test is now run every time a piece of code is added to Mahara, to check that the links in the journal entry are still always clickable by users.

Writing Behat tests allows for a soft introduction to the concept of programming. It's perfect for children, because it plants those early seeds to make them think about how a website is acting when they click a link. It encourages them to think about the elements they see on a website and how they are generated and what happens when the words on the screen change: Will the test break? Websites are then no longer magic boxes that "just work", as the children gain a better understanding of how they work.

Having started out with Behat test scenarios, it's an easy step for budding programmers to make simple changes in the code by updating language strings for text seen on regular pages and in help files. Getting more adventurous, they can learn more developer-type concepts, from writing the code behind the Behat steps to make them more efficient to configuring a bot to run the tests every time a bug is fixed.

With all the knowledge they have gained about Mahara, students can start making Mahara more accessible to people who depend on assistive devices such as screen readers to navigate the web, or branch out and work with other open source projects like Jono. Or they can enhance the mobile experience when using Mahara, like Scott, a university student, is doing, or they could take a page from high school student Liam's book and help with the implementation of CSS and Javascript for a good look and feel for Mahara.

The opportunities are endless once the seed is planted. Mahara supports the growth!