久しぶりの投稿です。今日は、最近よくお手伝いをしている
CoderDojo Tokyo にまつわる話を書こうと思います。実は5月の初旬に CoderDojo 創始者の一人、James Whelton(
@jwhelton)さんが来日していたのですが、来日中は、ほぼ毎日彼と話しをしていたので、そこで見聞きしたノウハウなどを、ここで共有しようと思います。「CoderDojo にメンターとして手伝ってみたい!」とか、「CoderDojo を地元で開いてみたい!」って考えている方の参考になれば嬉しいです。
「そもそも CoderDojo Tokyo って何ぞや?」って方は、次の記事を参考にすると良いかと思います。ココらへんを抑えておけば、CoderDojo に関する話の流れは、ほぼ全て掴めるかと思います。
話を戻しましょう。ここでは、運営側としてやってみた体験や、Founder の James から見聞きした話の中で、僕がポイントだと思ったものを3つだけ書こうと思います。ただ、僕が勝手にこう思ってるだけなので、James や CoderDojo Tokyo の Founder の方々が全く同じように考えているとは限らないです。あしからず。
1. CoderDojoは「点在型」ムーブメント.
最初のポイントは、CoderDojo の広がり方についての話です。僕もつい先日まで勘違いしていたのですが、CoderDojo は、大勢の人が一箇所にあつまるような一箇所集中型ではなく、いくつもの Dojo が色々な地域に点在しているムーブメントのようです。例えば、CoderDojo 発祥の地「アイルランド」は、車で3時間も走れば国土の半分を渡りきれてしまうような狭い土地だけれど、それでも、アイルランドだけで 20 個以上もの CoderDojo が点在しているそうです。そして、各 Dojo の規模は、小さくて20人ぐらい、一番大きい Dojo でも120人ぐらいの規模だそうです。なので、コンセプトとしては、日本の書道や剣道、合気道などの道場などと同じように考えても良いと考えています。1つの Dojo を大きくしていくよりも、「やりたい」って人達が集まって、どんどん自分たちの道場を開いていくのが、本来の CoderDojo のコンセプトに近いのかな、と考えています。
これは日本の CoderDojo についても同じだと思います。例えば CoderDojo Tokyo では、メンターや運営側の人数とか考えると、参加できる人数の上限が数百、数千になることはないでしょう。少なくとも現状では、メンターが都合よく全員揃っていても、20人ほどの子供しか受け入れることができません。したがって、ポイントとなるのは、CoderDojo Tokyo の規模を大きくしていくのではなく、色んな地域に CoderDojo を新たに開いていくことだと思います。例えば、
地域Rubyの会みたいに、CoderDojo Tokyo だけではなく、CoderDojo Shinjuku / Ikebukuro / Akihabara など、それぞれの地域でそれぞれの CoderDojo を立ちあげて、運営していくのが良いと僕は考えています。
注意点としては、CoderDojo として名乗るためには、原則として
CoderDojo のコンセプトに従っている必要があることです、例えば、オープンソースではなくて、ビジネスとして CoderDojo っぽいことをやっても、それは公式な CoderDojo としてカウントすることはできないそうです(James 談)。
2. 目標は「魚の釣り方」を学ぶこと.
次のポイントは、教えるときの話です。実際に CoderDojo Tokyo #1 に運営&メンターとして参加して感じましたが、Scratch のような簡易的なプログラミング言語を教材として使って、そして適切なメンターがいれば、子供たちは驚くべき速さで Scratch の使い方を学習することが出来ます。しかし、どこまで教えれば良いのでしょうか?
Scratch の学習にしても、教えようと思えば、SmallTalk などの内部の振る舞いまで教えることが出来ます。しかし、そういった深い部分まで教えられるメンターはそこまで多くいません。同様に、 HTML や Javascript でも、教えようと思えば、かなり深いところまで教えることが出来ます。しかし、それをするだけのリソースを、ボランティアだけでサポートすることは現実的ではありません。
そこで、まずは Function や Array などの基本的なプログラミングの概念を教えることが大事なのではないかと、僕は考えています。基本的な概念までなら、そこまで多大なリソースを必要としません。また、Function や Array などの、プログラミングの基本的な概念を理解することが出来れば、大抵のモノはそれらの組み合わせでどうにかなります。
そこまで理解させることが出来れば、少々限定的ではありますが、自分で課題を見つけて、自分で解決させるような個人プロジェクトを立ち上げることが出来るかもしれません。始めは多少のサポートが必要だとは思いますが、それでも、自分から情報を探し、自分から学習していくスタイルを身に付けることは、刻一刻と技術が進歩していくソフトウェア業界では非常に大事な要素の一つだと思います。また、ここまでのサポートなら、リソースの面から見ても、ボランティアだけでサポートできる可能性も高まります。
日本の CoderDojo は日本なりにカスタマイズする必要があるとは思いますが、こういった実例は非常に参考になると思います。そして、アイルランドの例のように、自分からトライ&エラーを繰り返していけるスキルを身に付けられるように、CoderDojo 側でサポートしていくことが、1つの重要な到達目標なのではないかと僕は考えています。
3. 困ったときの「CoderDojo Kata」
最後は教材の話です。Scratch にしろ HTML / JavaScript にしろ、プログラミングを教えるための教材がないと、効率的な学習は難しいです。しかし、メンターや運営側もボランティアで手伝ってくれているので、教材づくりまでサポート出来る人は中々いません。そこで、最近発足されたのが「
CoderDojo Kata」です(日本の「型」に因んでいます)。
このサイトでは、各 CoderDojo で作られた教材や、運営のノウハウが公開・共有されています。また、ここで公開されている情報は基本的に全てオープンソースになっています。なので、例えば、教材を1から全てを準備するよりかは、CoderDojo Kata に既にあるものを利用した方が、運営側のコストをかなり軽減できると思います。
最近出来たばかりなので、まだ情報が完全に共有されているわけではないですが、徐々に整いつつあるようです。例えば、アイルランドでは、Funcion や Array の概念を教えるためにサイコロのプログラムを使っていて、
その教材を全て GitHub に上げています。こちらはまだ CoderDojo Kata に上げられていませんが、このような教材を世界中の CoderDojo で共有することで、各 CoderDojo の負担を軽減していくそうです。なので、これから「地元で CoderDojo をやってみたい!」と考えている方は、要チェックです。
ちなみに CoderDojo Tokyo でも、作成した教材の
日本語版・
英語版の両方を用意して CoderDojo Kata に還元したり、英語版の教材の日本語化を進めていたりします。もし他の地域で CoderDojo を立ち上げ・運営する方がいれば、是非ご活用してもらえればと思います。
より詳しい CoderDojo の日本語の情報については、次のページでまとめていくつもりなので、もし興味がある方は是非参加してみてください。
CoderDojo Japan
http://www.facebook.com/groups/226227927490614/
最後に
CoderDojo は世界中で流行っている大々的なムーブメントのように見えますが、とはいえ、 CoderDojo のコンセプトが生まれてから、まだ10ヶ月しか経っていません。なので、
Co-founder の James が Ustream で述べているように、CoderDojo はまだまだ実験的に試行錯誤していく段階なんだと思います。今後も継続的に続くのかどうかは僕には分かりませんが、CoderDojo のコンセプトが「面白い!」と感じるのであれば、まずはメンターなり見学なりの形で、気軽に CoderDojo に関わってみてはいかがでしょうか?
僕も、また沖縄に訪れるときには、CoderDojo Okinawa の話を持ち上げてみたいと思います。もし興味のある方がいたら、
@yasulab に声かけてくださいね。
ではでは。