In the last post I started a story about School 42, which is famous for its revolutionary training system: there There are no teachers, the students themselves check each other's work, there is no need to pay for studies. In this post I will tell you more about the training system and about what tasks students perform.
There are no teachers, there is the Internet and comrades. Schooling is based on the principles of joint project work - peer-to-peer learning. Students do not study any textbooks, they do not read lectures. The school organizers believe that everything can be found on the Internet, ask friends or more experienced students with whom you work together on a project.
Tasks performed are checked by other students 3-4 times, so everyone can be both a student and a mentor. There are no evaluations either - just need to complete the task correctly and completely. Even if it is made at 90%, it will be considered as a failure.
There are no ratings, there are points. To put a project for review, you need to have a certain number of points - correction points. Points are earned by checking other students' homework. And this is an additional growth factor - you have to understand a variety of tasks, sometimes surpassing your level of knowledge.
“Some projects are a real cosmos, the brain explodes from them. And then, to earn only one correction point, you have to sweat all day, figuring out the code. Once I was lucky, and I received as many as 4 points in a day - this is a rare success ", - says my friend, student Sergey.
Sitting in the corner will not work. Projects are executed both alone and in pairs, and larger groups. They are always personally protected, it is important that all members of the group take an active part, and that everyone understands the code and is highly motivated. Silence and sit aside here does not work. Thus, the school pumps the skills of group work and successful communication. And besides, all students get to know and communicate with each other, which is very useful for networking and future careers.
Gamification. As in a computer game, students move up through the levels and monitor their progress with the help of the Holy Graph - the “holy” map, which clearly shows the entire path and the upcoming path. As in the RPG, “experience” is accrued for projects, and after accumulating a certain amount of it, a transition to a new level takes place. The similarity with the present game is also in the fact that each new level is more complicated than the previous one, the tasks become more and more.
Glass and Adm. There are two main divisions in the school - the Glass (techies) and the Adm (administration). Glass - deals with technical issues and pedagogical component, while Adm - administrative and organizational issues. The personnel reserve of the Glass/Adm is replenished at the expense of the students themselves, who undergo an internship at the School.
It all starts with a “C.” At school, only Unix is used, considering Windows not to be the best choice. Code is taught from the very basics, forcing to comprehend the very logic of programming. The first few levels, all projects are executed only in C and C ++ languages, the IDE does not apply. Students use the gcc compiler and the vim text editor.
Norminet. After successful protection, all projects are uploaded to the local GitHub counterpart. But before that, they must be checked for compliance with the school’s rules using the Norminette program.
“If the code works fine, but there is a memory leak, then the project is considered failed. Also check for syntax. We have a list of prohibited functions, attributes, flags, and their use equates to cheating. You have to do everything with your own hands and very carefully ", - says Sergey.
All tasks performed by students are checked in three ways: programmatically, by check-list by other students and representatives of the Glass. Below are some of the projects that are carried out independently and checked on a check list:
Init (System and Network Administration) - you need to install the Debian operating system on the virtual machine and configure it according to the requirements specified in the task.
Libft —to implement standard C library functions such as:
strcmp, atoi, strlen, memcpy, strstr, toupper, tolower , etc. No third-party libraries, all by hand You write headers yourself, you implement them yourself, you create a
Makefile yourself, you compile it yourself.
Printf - you need to fully implement the standard
printf function with all its arguments in C. This is quite difficult for beginners.
Fillit - it was necessary to collect a square of the minimum area from the input tetramino list. At each new step, a new tetramino was added. The task is complicated by the fact that the calculations had to be done on C and for the minimum time.
Libls - implement your version of the
ls command with all its standard flags. It is possible and necessary to use the lessons from past assignments.
In addition to tasks performed alone, there is a separate category of tasks that are performed by a group of students - rushes. Unlike independent projects, the rush is checked not by the students on the check-list, but by the school staff from the Glass.
Pipex - the program accepts file names and arbitrary shell commands at the entrance, the student must demonstrate ability to work with pipes at the system level and implement functionality identical to the standard system behavior in the terminal.< br/>
Minitalk - implement client-server application in C language. The server should be able to support work with several clients and print messages sent by the client using the SIGUSR1 and SIGUSR2 system signals.
Frozen - write an IRC server on Golang, which is able to work with several clients simultaneously using concurrency and goroutines. The client must be able to log in using the login and password. The IRC server must support multiple channels.
Anyone can enroll in School 42, and for this you do not need to have special knowledge. Despite the fact that the program is designed for beginners, simple tasks are quickly replaced by non-trivial puzzles, often with vague wording. The student is required maximum commitment, the ability to search for missing information in the official documentation in English, as well as integrate with other students to perform tasks. The training program does not have a strict sequence, so everyone chooses a development path for himself.The absence of end-to-end ratings allows you to concentrate on your progress and development, rather than compare yourself with others.