Five years Catalyst Open Source Academy

In 2010 Catalyst decided to offer students the opportunity to learn from our experts and experience project work first-hand to learn more about open source and get the chance to contribute to an open source software project. It was seen as a way to bring students and IT professionals together for the students to explore possible study and career options in the IT industry that is hungry for talented individuals. Thus, the Catalyst Open Source Academy opened its doors for the first group of 17 students during the 2011 summer holidays.

The idea of the Academy is fairly simple: In a two-week programme, students have tutorial sessions in which they learn about programming and other parts of a software project's life cycle. In the second week, they use this new knowledge, with the help of mentors, to contribute to an open source project that is being used by people around the world.

The execution of the Academy is not so simple and involves a lot of planning, coordinating and revising of content from year to year based on feedback from the students and mentors to improve it with each iteration.

Typically, the Academy consists of 6 days of tutorial sessions that are followed by 3.5 days of project work and then a wrap-up session where students present their project results and reflect on the Academy. Altogether, the students spend 10 days at the Catalyst headquarters in Wellington learning and working together.

Getting started

The students that are admitted to the Academy, typically between 16 and 20 Year 11 to Year 13 students, have a range of experience; from running their own Linux environment, providing tech support at their schools or have been programming for a number years, to only having a basic understanding of computer science and wanting to participate in the Academy to find out whether they'd like to go into that field in the future.

The tutorial sessions are designed to cater to both these groups and those that fall in between. The activities are hands-on and require the students to be active throughout them. The students start off with installing their own laptop with Ubuntu, a Linux distribution, from scratch to learn about the operating system and maintaining their computer. They then go on to learn about open source not just from a technical perspective, but also a philosophical one and finish off the first day with a session on do's and dont's when working on a project as members of a community. This January, we had a session on Vi, a text editor that is installed on all Unix-based systems, for the first time on the first day to acquaint students to editing files in a terminal environment. While this session was challenging for a lot of students, it did help them later on to quickly edit files and find their way around the necessary commands.

Intro to the web and server setup

Since the students will be working on web applications, the second day starts off providing an introduction to the internet. Different internet protocols, how the internet works etc. are discussed to give the students foundational knowledge.

And what would web applications be without a server where they are housed? Thus, the students set up their own virtual server that they can use for the duration of the Academy. These virtual environments can be spun up quickly using the Catalyst Cloud.

Now that the students have a working environment available and a basic understanding of how the web works, they proceed to going through the phases of a typical software project. They work on a movie app during the tutorial week and use that as an example to walk through the different tasks involved in a project.

BA, UX, a11y and design

Before the programming can begin on a project, the requirements need to be clear. In an interactive group session, the students play the role of BAs to define and refine their application's requirements, develop user stories and lay out a plan of what is needed in order to produce the desired end result. As part of that BA work, the students are introduced to usability (UX) to keep the users in mind for whom they are designing the software to ensure that it is easy to handle and meets their expectations.

Since the application needs to work for a number of different people, they learn about accessibility (a11y) and how important it is to cater to users who are not prototypical ones, but require assistive devices to use the internet.

And last but not least, the students learn to work in The Gimp and Inkscape to change the design for their web app and familiarise themselves with these two open source applications.

Programming, databases and code management

Having conceptualised their web application, knowing the requirements and having a plan on how to achieve the end result, the students can start looking into the actual programming that would be involved. The languages we teach usually depend a bit on the projects during the second week of the Academy. If the majority are Python and PHP projects, we'll choose those two to focus on during the tutorial week so that the students have a good basic understanding before going into their projects.

Besides PHP, Python and Java, students are also introduced to JavaScript, HTML and CSS. Some students already know a bit of HTML and CSS from school, but it is often a good repetition and eye-opening for them to grasp how everything comes together.

For the display of data in the web application, the students then go on to work with a database, which is either PostgreSQL or MariaDB. They learn to query their databases using SQL commands instead of visual drag-and-drop interfaces allowing them to understand the required syntax and construct queries themselves quickly.

Since software projects are not developed in one stretch and are maintained for a period of time, the students learn to work with the popular source code management tool Git. This helps them to keep track of the changes that they make, roll back to a previous state, and not overwrite each other's code when they collaborative on a project.

Lastly, the students receive an introduction to testing and will apply their knowledge during the project week as part of their contributions to an open source project.

And that concludes six days of tutorial work. Since all aspects themselves could easily take up six days each or more, the session facilitators, who are mostly Catalyst staff members, have the task to make the content manageable allowing the students to finish activities within the given time frames.

Contributing to a project

With the knowledge and experience from the tutorial week, the students are well-equipped to embark on contributing to an open source project. Typically, they can choose between four and five projects. We try to keep the project groups to a maximum of six students allowing the mentors enough time with individual students. Each project has at least one mentor. The mentors are experienced programmer and often also core contributors to their chosen project themselves.

For example, Koha, an integrated library management system, has participated in every Academy since 2011 with one of the original developers, Chris Cormack, spearheading the mentoring. The Koha team at Catalyst offers students many different ways of contributing. One year, the focus was on Perl programming, in another year, improving the design of icons, then working on accessibility enhancements, writing widgets in JavaScript and enhancing the testing suite with unit tests or a combination of them all.

Having a core project contributor as mentor for these activities is fantastic because they have vast knowledge of the project and can find tasks for the students that are achievable at their competency level but still challenging at the same time. The mentors can also paint the bigger picture tying the work the students do into the broader work being done on the project at the moment by the community.

The following software projects have participated in the Academy over the years:

Support from the wider community

During the project week, the students not only work in their project teams and with their mentors, but often also talk with members of the community of their software project. For Koha for example, contributors from Argentina and Germany reviewed and tested students' code and talked to the students on IRC giving them tips. For Drupal, an active community member supported the students throughout their project days from her home in Canada this year.

It's about sharing and learning

Contributing to an open source project and finding out what is involved in doing so is a reason for students to apply for the Academy. At the end of the project week or shortly thereafter, students typically have at minimum one commit in the core project or in a plugin that is available to the rest of the community. They can always be proud of their work and show their accomplishments to their family and friends as well as reference it in the future as the code is freely available to everyone around the world.

The majority of the students agree that the second week, the projects, is the best part of the Academy because they can work on real-world projects and "do stuff". They fix bugs and develop new features that enhance the experience that users around the globe have with the software. The community mentors support the students during that time with advice, guide them through the code, explain functionality and motivate them if they are stuck somewhere.

Despite the tutorial days of the first six days being very intense, many students still enjoy them because of the range of activities and because they get the chance to try many different things that they've often not been exposed to at school. Being at the Academy from 9 a.m. to 5 p.m. every day also gives them insight into the length of a regular work day.

All students who complete the Academy - and so far that's been all of them - receive a certificate of completion, a digital Open Badge and a small grant at the end which is an additional motivation for them to finish the programme.

A number of students expressed interest in continuing to be involved in the project that they had worked on during the second week or trying their hands on a different one. A few students took the opportunity to come to our Wellington office after school during the regular school year to keep contributing to Koha and receiving further mentoring. We also had two students come back for summer internships once they started university. It is fantastic to see students at IT-related events and programmes around Wellington knowing that they continued with IT.

As Ian Beardslee, coordinator of the Academy said one year:

It’s a great inspiration to see the students learning and taking part in the Academy. We make no excuses that the first week is fast paced, intensive learning. Putting that knowledge into working on a real project helps show the students the opportunities that exist. It’s a hope that the Academy is a spark that sets off great things from the participants.

Programming not just during summer

The Academy started as the two-week programme that has now seen more than 100 graduates over the last five years. We are pleased that usually at least 50% of the participants are young women. Since the students are eager to learn more about programming and IT, Catalyst has been offering a short Arduino Academy during the winter holidays for the second time in 2014 in Wellington and for the first time also in Sydney. The short, three-day Arduino Academy introduces students to the micro controller and gets them started setting up a robot and programming routines for it.

Involving non-Catalyst contributors

We are very happy that the Academy has found interest outside of Catalyst. Core developers of Piwik participated in the project week this year already for the second time. The students work with the makers of this award-winning software implementing new features and fixing issues. SilverStripe joined the projects this year, and the students enjoyed working with the developers and software. We look forward to the next years of the Academy and continued participation of these two projects and hope that other open source projects and companies will join as well.

If you are interested in becoming a project mentor or tutorial session facilitator, please get in touch with us.

What's next?

Next up will be the Arduino Academy in July 2015 during the winter holidays. If you want to be informed when we announce that one and also the summer Open Source Academy later in the year, please send us an email. We've also had interest from teachers who would want to have professional development in the areas that we are introducing to students. If you are one of them, please let us know as well. We are excited about supporting students showing an interest in careers in IT as they are our future.