先月のブログ記事でもお伝えしたとおり、来年の重要な目標のひとつは、学習者が楽しめることとメンタリングのしやすさの両方を考えてトラックを再構築することです。この1年、Maud de Vriesが中心となって進めてきたTrack Anatomyプロジェクトで大きな進歩を遂げ、その中でトラックの構造に関する根本的な問題がいくつか見えてきました。これらは優先的に対処すべきだと考えています。この2か月間、リーダーシップチームでは、どのように取り組むべきか、また、さまざまなプログラミング言語のイディオムを適切な時期に学べるようトラックを必要な状態に整えるには何が必要かを話し合ってきました。
今日は、とてもわくわくするお知らせがあります。シカゴ大学のJames EvansとGary Lupyanとともに、スローン財団の支援を受けたプロジェクトを立ち上げます。これにより、Exercismのトラックを根本から見直し、その変更をいくつもの言語で実行に移すことに、本腰を入れて取り組めるようになります。さらに、このプロジェクトを率いる人材としてErik Schierboomを迎えられたことも、うれしくお知らせします。
背景
この2年間、JamesとGaryは、プログラマーが使う言語がその人の効率性や創造性、協働のしかたにどう影響するかを調べてきました。スローン財団の助成を受けて、この研究の重要な部分は、プログラマーがどのようにしてさまざまな言語を学ぶのか、また、すでに持っている知識が新しい学習を助けるのか妨げるのかを理解することだと突き止めています。これは、Exercismの言語トラックについてずっと自問してきた問いでもあります。過去の経験は、その人がトラックで必要とする道筋や、もっともよく響くメンタリングのスタイルと内容に、どのような影響を与えるのでしょうか?
JamesとGary、そしてスローン財団は、Exercismがリソースの一部を投じてトラックの再設計に力を注げるよう、支援を決めてくれました。それは、各言語ならではの特徴に焦点を当て、学習者がすでに持っている経験に応じて、より一人ひとりに合わせたものにするための取り組みです。
プロジェクト
これについては、これから数週間、数か月のうちにブログでもっと詳しく書いていきますが、ここでは、このプロジェクトで達成したい主な目標と、それがExercismにどう影響するかを簡単に紹介したいと思います。
トラックの中核を見直す: トラックが教えるのは、プログラミングそのものではなくプログラミング言語です。この考えをトラックに反映させ、中核となる道筋を、言語ならではのイディオムを教えることに焦点を当てて作り直します。1つのイディオムに絞った新しい演習を設計・開発していく予定です。たとえばRubyなら、ループではなく列挙を教える演習、JavaScriptならプロトタイプやバインディングの概念を教える演習が考えられます。
中核となる演習で自動解析を網羅的にカバーする: 学習者がトラックの中核をすばやく通り抜けられるようにしたいと考えています。演習を設計するときは、想定される解答の95%を自動解析でカバーするにはどうすればよいかに、意識的に焦点を当てます。そうすれば、メンターがやり取りするのは、本当に助けを必要とする5%の学習者か、もっと面白くバリエーション豊かなサイド演習になります。その一環として、メンターがコードベースの中まで掘り下げなくても自動アナライザーに貢献できるツールも開発したいと考えています。
過去の経験に応じた、オーダーメイドの自動メンタリングとメンタリングのヒントを提供する: 前のステップが完了したら、学習者に返すフィードバックを、その人の過去の経験に合わせて調整することを模索します。自動応答の内容でも、メンターに渡すヒントでも構いません。ある言語を学ぶときに必要とされるフィードバックは、それまでの知識に大きく左右されます。基準となる点が人によって違いますし、すでに身についた知識はかえって捨てにくいこともあります。そこで、その人の過去の経験を考慮することで、学習者一人ひとりに合った、より役立つ体験を提供できます。
ブラウザ上でコードを書けるようにする: トラックの中核の見直しと並行して、もっとも要望の多かった機能のひとつを追加します。ブラウザ上で演習を解けるようにするのです。これはCLIの利用に取って代わるものではありません。CLIは学び方として非常に価値があると信じています。ただ、言語とそのツール一式をインストールしなくても、気軽に言語を試して探求できるようになります。
資金提供
JamesとGaryを通じてスローン財団から受ける資金により、Jeremy、Nicole、Charles、Karloは、今後12か月、上の目標を達成するために必要なプロダクトの仕事、開発の仕事、アーキテクチャに、時間の大半を注ぐことができます。
また、このプロジェクトの「カリキュラム」面を率いるためにErikを雇うこともできます。Erikは2016年からExercismに大きく貢献しており、C#、F#、Scalaのトラックをメンテナンスし、アナライザーを構築し、演習を設計し、project-specificationsに貢献し、メンタリングも行ってきました。プログラミング言語への情熱も強く、Exercismのトラックのかなりの数を完了しています。さらに重要なことに、Exercismコミュニティの中で誰からも好かれ、尊敬されている人物であり、50の異なるプログラミング言語の違いと共通点を際立たせるようなトラックやシステムをどう設計すればよいかを、一緒に考え導いていくのにうってつけの立場にあります。
参加するには
このプロジェクトを支援する専任チームを立ち上げます。このチームは、トラック全体で扱うイディオムを定義し、新しい中核演習を設計し、アナライザーのフレームワークと標準の設計を手伝い、すでにある知識が学習にどう影響するかをじっくり考える役割を担います。
経験豊富なメンターかつメンテナーで、参加してみたいという方は、ぜひご連絡ください。Slackで私に声をかけてください。
まとめ
次のフェーズをとても楽しみにしています。これはExercismが大きく前進し、学習者にもメンターにもよりよく応える助けになると信じています。James、Gary、そしてスローン財団の支援に、心から感謝しています。