В
先生はいない、インターネットと友達がある。 学校での教育は、共同プロジェクト活動、つまりピアツーピア学習の原則に基づいています。 学生は教科書を勉強せず、講義も受けません。 学校の主催者は、友人や、一緒にプロジェクトに取り組んでいる経験豊富な生徒から尋ねれば、インターネットですべてを見つけることができると信じています。
完了した課題は他の生徒によって 3 ~ 4 回チェックされるため、誰もが生徒であると同時にメンターになることができます。 成績もありません。タスクを正確かつ完全に完了する必要があるだけです。 たとえ90%できていても失敗としてカウントされます。
評価はありませんが、ポイントはあります。 レビューのためにプロジェクトを送信するには、一定数のポイント、つまり修正ポイントが必要です。 他の生徒の宿題をチェックするとポイントが獲得できます。 そして、これはさらなる成長要素です。さまざまなタスクを理解する必要があり、場合によっては自分の知識レベルを超えているからです。
「いくつかのプロジェクトは現実空間であり、驚くべきものです。 そして、たった 4 つの修正点を獲得するために、コードを理解しながら XNUMX 日中汗を流す必要があります。 ある日、私は幸運なことに、XNUMX 日に XNUMX ポイントも獲得できました。これはまれな幸運です。」と友人の学生セルゲイは言います。
隅に座っていてもうまくいきません。 プロジェクトは、個人、ペア、さらには大規模なグループで完了します。 彼らは常に個人的に保護されており、グループのメンバー全員が積極的に参加し、全員がコードを理解し、高いモチベーションを持っていることが重要です。 ここで黙って傍観しているわけにはいかない。 したがって、この学校はグループワークのスキルとコミュニケーションの成功を向上させます。 さらに、すべての学生がお互いを知り、コミュニケーションをとることができるため、ネットワーク作りや将来のキャリアに非常に役立ちます。
ゲーミフィケーション。 コンピューター ゲームのように、生徒はレベルを上げ、ホーリー グラフ (これまで通過した道全体と今後の道を明確に示す「神聖な」地図) を使用して進捗状況を追跡します。 RPG と同様にプロジェクトには「経験値」が与えられ、一定量溜まると新たなレベルに移行します。 実際のゲームとの類似点は、新しいレベルが進むたびに前のレベルよりも難しくなり、タスクの数も増えていくことです。
グラスとアドム。 この学校には、Bokal (技術者) と Adm (管理) の XNUMX つの主要な部門があります。 Bokal は技術的な問題と教育的要素を扱い、Adm は管理上および組織的な問題を扱います。 Bokala/Adm の人員は、学校でインターンシップを受ける学生自身によって補充されます。
ここで何をどのように教えているのか
すべては「S」から始まります。 学校では Windows が最善の選択ではないと考え、もっぱら Unix を使用します。 コードは基礎から教えられ、プログラミングのロジックそのものを理解することが求められます。 すべてのプロジェクトの最初の数レベルは C および C++ 言語でのみ実行され、IDE は使用されません。 学生は gcc コンパイラーと vim テキスト エディターを使用します。
「他のコースでは、機能を与え、プロジェクトを実行するように求められ、その後でそれがどのようにプログラムされているかを説明します。 ここでは、自分で関数を作成するまで関数を使用できません。 最初は、まだ「プール」にいたとき、なぜこの malloc が必要なのか、なぜ自分でメモリを割り当てる必要があるのか、なぜ Python と Javascript を勉強していないのか理解できませんでした。 そして突然、あなたはそのことに気づき、コンピュータがどのように考えているかを理解し始めます。」
指名する。 保護が成功すると、すべてのプロジェクトがローカルの GitHub にアップロードされます。 ただし、その前に、Norminette プログラムを使用してコードが学校の規則に準拠していることを確認する必要があります。
「コードが完全に動作してもメモリ リークが発生した場合、プロジェクトは失敗とみなされます。 また、構文もチェックされます。 禁止されている関数、属性、フラグのリストがあり、それらの使用は不正行為とみなされます。 すべてを自分の手で、慎重に行わなければなりません。」とセルゲイは言う。
タスクの例
学生が実行するすべてのタスクは XNUMX つの方法でチェックされます。XNUMX つはプログラムによる方法、他の学生と Glass の代表者によるチェックリストによるものです。 以下に、チェックリスト付きの日曜大工プロジェクトをいくつか示します。
Init (システムおよびネットワーク管理) — Debian オペレーティング システムを仮想マシンにインストールし、タスクで指定された要件に従って構成する必要があります。
リブフト — C 言語で次のような標準ライブラリ関数を実装します。 strcmp, atoi, strlen, memcpy, strstr, toupper, tolower
など。サードパーティのライブラリは使用できません。自分で実行してください。 自分でヘッダーを書き、自分で実装し、自分で作成する Makefile
、自分でコンパイルします。
プリントフ — 標準機能を完全に実装する必要がある printf
すべての引数を C で記述します。初心者にとっては非常に困難です。
フィリット - 入力として提供されたテトロミノのリストから最小面積の正方形を組み立てる必要がありました。 新しいステップごとに、新しいテトロミノが追加されました。 計算を C で最小限の時間で実行する必要があるため、この作業は複雑になります。
ライブラリ — 独自のバージョンのコマンドを実装する ls
すべての標準フラグを使用します。 過去の課題から発展させたものを使用することができますし、使用する必要があります。
ラッシュ
一人で実行するタスクに加えて、学生のグループによって実行される別のカテゴリのタスク、つまりラッシュがあります。 独立したプロジェクトとは異なり、ラッシュはチェックリストを使用して生徒によってチェックされるのではなく、Bokal の学校スタッフによってチェックされます。
パイペックス — プログラムはファイル名と任意のシェル コマンドを入力として受け入れます。学生は、システム レベルでパイプを操作し、システムの標準動作と同じ機能をターミナルに実装する能力を実証する必要があります。
ミニトーク — C でクライアント/サーバー アプリケーションを実装します。サーバーは、複数のクライアントとの連携をサポートし、SIGUSR1 および SIGUSR2 システム信号を使用してクライアントから送信されたメッセージを出力できなければなりません。
フローズン — 同時実行性とゴルーチンを使用して、複数のクライアントを同時に操作できる IRC サーバーを Golang で作成します。 クライアントは、ログイン名とパスワードを使用してログインできる必要があります。 IRC サーバーは複数のチャネルをサポートする必要があります。
まとめ
School 42 には誰でも入学でき、特別な知識は必要ありません。 このプログラムは初心者向けに設計されているにもかかわらず、単純なタスクはすぐに、明確な定式化を伴わない重要な問題に置き換えられます。 学生には最大限の献身性、英語の公式文書で不足している情報を検索する能力、および他の学生とチームを組んで課題を完了する能力が求められます。 トレーニング プログラムには厳密な順序はなく、誰もが自分自身の成長の道を選択します。 エンドツーエンドの評価がないため、他人と自分を比較するのではなく、自分の進歩と成長に集中できます。
出所: habr.com