Why? Because the school has no teachers. It is highly gamified and relies on peer-to-peer learning. Students are autonomous and learn at their own rate. Clearly, it is designed as a disruption of the education system
Game design is about structuring an experience to encourage desirable behaviors. The gamification that went into the curriculum design says a lot about the school's values, about the behaviors it desires to encourage. We'll take a look at them together. Given how much my daughter learned and appreciated the experience, there are lessons to be taken from the school.
In how we learn, and how we teach.
My daughter is currently waiting for the final results. This makes it a perfect time to talk about the school. Since she is neither in nor out I can (still) be objective about the experience. Here is an overview of how the experience was structured.
Students are thrown into the "deep end"
The admissions program is called "la piscine", which in French means the "swimming pool". You could also translate it the deep end, in that you get thrown in and you either sink or swim.
A little under 400 students showed up on the Paris campus this August for the first day of the "piscine". They were handed a set of exercises organized as "days" that act as stages. Each day is a set of exercises of increasing difficulty. These exercises teach you what you need for the final (boss) exercise of the stage.
There are no classes and no teachers (although there are staff members). The instructions tell students to make use of
man pages, Google, or their neighbors. To move on to the next stage the students need to complete at least 50% of a given stage. The first two stages were about using the shell, and all the following were about C.
And in no time students were collaborating to try to solve the exercises. My daughter, who is not usually the most sociable, was making friends in no time, over a common passion.
Exams break expectations
Every Friday there is a 4-hour exam (from 4 pm to 8 pm). This seems to be designed to break expectations as to the importance of exams.
First, the end-of-week exams are optional. You need to sign up for them if you want to take part.
Second, students need to actually gain access to the exam, i.e. find the way to log in to the exam environment. Fail to do that after 10 minutes, and you are out. (The information got shared before the first exam so most were ready).
And third, woe on you if your phone rings during the exam: the whole row you are sitting at then needs to leave.
The message is clear: the weekly exams aren't all that important. They serve mainly for the students to gauge their own progress.
How does a teacherless school grade exams?
In the exam, you can only access an exercise if you have completed the previous one. To do so you submit it for grading, whereupon the system runs unit tests and a coding style check. If you fail, you try again.
This also means that you know your grade in real time during the exam. You know if you have failed, you know if you can press on ahead.
How does peer-to-peer grading work?
Exercise grading uses the same automated system. There is an extra step though: Students need to put their code through two code reviews.
Students initially get four code review points that work as a currency (or a zero-sum game). Every time they review someone's code, they earn a point. Every time they request a code review, they spend a point.
Code reviews are set up via a booking system. Students state when they are available for reviewing code (or being reviewed). The system then matches students together. After the review, the reviewed student grades the reviewer on how helpful they were.
This means students cannot progress without also taking time to help other students.
The students, if they wish, can sign up for rush projects. These take place over 48 hours (on the weekend). The students who have signed up are assigned to teams of 3, with a designated team leader. The goal is to work together on a common goal. For example, solving a sudoku-type puzzle using backtracking, or humanizing a number.
XP & Level
Successfully completing exercises, exams, and rushes give students experience points. Based on the xp accumulated, students have a level.
Students are split into two houses: the stack and the heap. The houses compete to gain points both through academic achievements and social events.
Students also vote for which peers were most helpful to them over the previous week, in a system called the Voxotron. There is no clear reward. No doubt the votes play a role in the selection. The staff indicated they are looking for people who are able to learn and who fit the school's values.
The final boss
On the last day, students take an 8-hour coding exam (structured like the end-of-week exams) that covers exercises from the stages. When my daughter was in the exam a student's phone rang. Thankfully the staff only ejected the student and not the whole row.
The students came out of the final exam knowing their scores. They are now waiting for a final decision.
The school's name (42) is a nod to geek culture and humor. The gamified experience was part of the reason my daughter hopes she gets in. But is the school worth applying to?
Applying to the school was my daughter's choice. Although I like the concept of being self-taught and of learning by doing, I wasn't sure what to expect.
I liked several features of the school design. It feels like it is preparing students for life in the real (professional) world. The ability to learn by yourself and with your peers is vital. I liked the insistence on unit tests, and above all, code reviews.
The quick feedback loop indicating if you've failed an exercise (and why) is also a good design choice.
The school might not be for everyone. My daughter loved it. But if you need external constraints to be motivated and to learn, 42 might not be the place for you.
The "piscine" system gives you a foretaste of what the school is all about. You can make up your mind over the 4 weeks if you're a fit for their system. And even if you decide it isn't, the admissions program is already a great first step into the world of code.