How I visited the legendary School 42: "pool", cats and the Internet instead of teachers. Part 2

How I visited the legendary School 42: "pool", cats and the Internet instead of teachers. Part 2

В last post I started a story about School 42, which is famous for its revolutionary education system: there are no teachers, students check each other's work themselves, and there is no need to pay tuition fees. In this post, I will tell you more about the training system and what tasks students perform.

There are no teachers, there is the Internet and comrades. Education at school 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 organizers of the school believe that everything can be found on the Internet, ask friends or more experienced students with whom you are working on a project together.

Completed tasks are checked 3-4 times by other students, so everyone can be both a student and a mentor. There are no grades either - you just need to complete the task correctly and completely. Even if it is 90% done, it will be counted as a failure.

There are no ratings, there are points. To submit a project for review, you must have a certain number of points - correction points. Points are earned by checking other students' homework. And this is an additional growth factor - after all, you have to understand a variety of tasks, sometimes exceeding your level of knowledge.

“Some projects are real space, they blow up the brain. And then, in order to earn just one correction point, you have to sweat all day, understanding the code. Once I was lucky, and I got as many as 4 points in a day - this is a rare success ”, - says my friend, student Sergey.

You won't be able to sit in a corner. Projects are carried out both alone and in pairs, as well as in larger groups. They are always protected personally, and it is important that all members of the group take an active part, and that everyone understands the code and is highly motivated. It is not possible to remain silent and sit on the sidelines here. 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 the levels and track their progress with the help of the Holy Graph - a "holy" map, which clearly shows the entire path passed and the upcoming one. As in RPG, “experience” is awarded for projects, and after accumulating a certain amount of it, a transition to a new level is made. The similarity with the real game is also that each new level is more difficult than the previous one, there are more and more tasks.

How I visited the legendary School 42: "pool", cats and the Internet instead of teachers. Part 2

Glass and Adm. The school has two main divisions - Bokal (technicians) and Adm (administration). Glass deals with technical issues and the pedagogical component, while Adm deals with administrative and organizational issues. The personnel reserve of Bokala/Adm is replenished at the expense of the students themselves, undergoing an internship at the School.

How and what is taught here

Everything starts with "S". The school uses Unix exclusively, considering Windows not the best choice. Code is taught from the very basics, forcing you to comprehend the very logic of programming. For the first few levels, all projects are run in C and C++ only, IDEs are not used. Students use the gcc compiler and the vim text editor.

“Other courses will give you functions, ask you to complete a project, and only then explain how they are programmed. Here you can't use the function until you write it yourself. At first, back in the “pool”, I didn’t understand why I needed this malloc, why I should allocate memory myself, why I didn’t study Python and Javascript. And then suddenly it hits you and you start to understand how a computer thinks.”

Norminate. After successful protection, all projects are uploaded to the local equivalent of GitHub. But before that, they must be checked for compliance with school rules using the Norminette program.

“If the code works fine, but there is a memory leak, then the project is considered a failure. They also check for syntax. We have a list of prohibited functions, attributes, flags, and their use is tantamount to cheating. You have to do everything with your own hands and very carefully.”- says Sergey.

How I visited the legendary School 42: "pool", cats and the Internet instead of teachers. Part 2

Task Examples

All tasks performed by students are checked in three ways: programmatically, according to the checklist by other students and representatives of the Glass. Below are some projects that are carried out independently and checked against the checklist:

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 - implement standard library functions in C language, such as: strcmp, atoi, strlen, memcpy, strstr, toupper, tolower etc. No third-party libraries, all with your own hands. You write headers yourself, you implement them yourself, you create them yourself Makefile, you compile.

printf - it is necessary to fully implement the standard function printf with all its arguments in C language. It's quite difficult for beginners.

Fillit - it was necessary to collect a square of the minimum area from the list of tetraminoes submitted to the input. At each new step, a new tetramino was added. The task is complicated by the fact that the calculations had to be done in C and in the minimum time.

Libls - implement your own version of the command ls with all its standard flags. You can and should use the best practices from past assignments.

rushes

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, rush is not checked by students according to the checklist, but by school employees from Bokal.

pipex – the program accepts file names and arbitrary shell commands as input, the student must demonstrate the ability to work with pipes at the system level and implement functionality identical to the regular behavior of the system in the terminal.

Minitalk - implement a client-server application in C language. The server must be able to support multiple clients and print messages transmitted by the client using the SIGUSR1 and SIGUSR2 system signals.

Frozen - write an IRC server in Golang that is able to work with multiple clients at the same time using concurrency and goroutines. The client must be able to log in with a username and password. An IRC server must support multiple channels.

Conclusion

Anyone can enter 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 tasks, often with fuzzy wording. The student is required to give maximum dedication, the ability to search for missing information in the official documentation in English, and also to unite with other students to complete tasks. The training program does not have a strict sequence, so everyone chooses the path of development for himself. The absence of end-to-end ratings allows you to focus on your progress and development, and not compare yourself with others.

Source: habr.com

Add a comment