The education system is based on a model that is does not go along with current times. It could be improved by taking ideas from the world of open source. Students go to school to learn from what the teacher has to offer. But everything is done in a master-slave model: the students expect the teacher to push the information to them.
The result is that students complain that they are not taught what they want. Cfr. the TED talk by Ken Robinson.
When Alex joined the university, what he wanted was to learn about computers, so he sat down and expected to get to know about computers. But pretty quickly he realized this wasn’t going to happen. So he met some like-minded people. They were lucky enough to be in a university environment where they were introduced to Linux. However, this wasn’t enough. Knowledge about the Linux kernel is not going to give you a benefit on the job market. So they had to create a market.
In the context of a course on OS, they would ask questions from the curriculum and participants would gain points. So they made an open source project in php and later django to implement this game. But just opening the source doesn’t do much. If only Alex generates content and the rest of the students have to answer, this wouldn’t scale. So they opened up the project, where the questions are reviewed by other students and students can generate questions themselves. So the content is no longer coming only from the teaching assistants. So the result is that the students are generating the content for the next generation of students. This way, also students started contributing to the code itself, adding new types of games like challenges, quests, capture the flag. Now suddenly, students were seeing complex things in their first year instead of just simple things. It also gives students the opportunity to do things outside the curriculum.
Over the years, the community was built and now they have a complex game with many challenges etc. In this community, there were people with various types of knowledge to share, e.g. someone knows git and someone else knows C++. Now they gathered a group of people with things to say in people willing to listen (outside of the official curriculum…), and made them work together: gain knowledge from your peers. Groups are created by interest, not age. The listeners have to pay a “price” for attending the meetings: they have to join a project and contribute to it, mentored by someone who already knows. The net result is experience for the people (on both sides), but also improvements for open source projects. Over time, students become mentors. It even evolved in something like GSoC with sponsorship by companies. Also many students from this community have participated in GSoC, which results in this university being ranked 2 or 3 in the last couple of years.
Local communities are important. If you’re on your own, it is difficult to get involved with a global community and e.g. feel confident to contribute to the kernel. However, with a local community that you can meet face to face, you can more easily feel part of the global community through the local community. ROSEdu organizes kernel workshops, 2hrs during 5 days. They can try things out and there’s somebody there that can help them out or give constructive criticism. They also have a local kernel mailing list to get polite review first before it’s exposed to the big bad LKML.
We can’t expect that someone from outside (the government) will solve the problems that we see inside the university. There should be small groups with a specific interest that find local solutions for local problems. In such an environment, it’s important to be both a teacher and a student.