Programming Startup Education
Infusing startup concepts into secondary school computing class
When I first started teaching secondary school computing in 2009, it was still a low-key and niche subject area in schools. In fact most schools did not have it as part of the curriculum. Maybe as an enrichment program but that was about it. My school somehow had computing as an elective subject that can be considered part of their grades. This was unique as the subject was not part of the national curriculum in its current form.
I was later given the opportunity to revamp the subject due to some changes in the school. it was great timing as there were many emerging trends happening in the tech world as well.
One trend that captured my imagination and I am sure many others as well was the rise of startups. Startups embodied the new frontier with its potential and risk. At the same time exuding adventure. I also saw elements that were useful for education. Since startups were so intertwined with tech, I decided to infuse elements of startup concepts into my computing lessons. These changes are summarised and happened over a period of a few years. Here are some of the concepts I “ripped off” or infused.
Teaching Full Stack Development
Right now, this seems like a no-brainer but the subject in its early days covers a wide range of topics from C++, 3D modelling to networking. Students learn a totally different module each semester and were unable to build on their previous knowledge. After completing the programme, the students still find it very difficult to build or develop any working prototype or computing project with what they learned.
I adopted some technology required in a tech startup and taught them in the new curriculum. I want the students to be able to develop an idea they have and into a working prototype. The current curriculum teaches game, web and mobile development. These are taught over two and a half years starting at fourteen years old. The idea is not to train them to be game or web developers. The key thing is to teach them the skills so that they express their creativity in a visible product.
Problem Based Learning
Most of the projects are problem based. They have to find the problems themselves. The projects somehow goes against the grain with their current school experience. There are few or no precedence, no fix product and nothing to memorise.
According to Paul Graham, this is the best way to get ideas. This habit is sort of drilled into them as they start creating their own projects from fourteen years old. From fifteen, they would need user validation, do simple surveys to see if their ideas can take off. Of course, sometimes they do manipulate the results to do their imaginary solution. But slowly they get the idea and it becomes part of their thinking.
Minimum Viable Product
After every module, they are supposed to develop a prototype or a product. As the modules scaffold toward developing different aspects of a product, most of them are able to come up with one. The process of building one is not easy. It is like the real world where they have to work together closely, do lots of self learning in order to create their own product. What was taught is actually not enough to build their solution most of the time. They must do a lot of self learning in order to complete the product.
Learning Outcomes
Finally did the change in curriculum achieved what was desired? These are some MVPs developed by the students.
Nappy Forums, CloudNet, Eventum, Grouper. Journy
Some recent games.