講義でのペアプログラミングの使いどころ

今年度のJavaの講義では、ペアプログラミングを導入して、演習に取り組む時間を比較的多く取ってみました。そして、必須課題として、その感想を聞きましたが、総合的に良かったあるいはどちらでもないというのが33%、残りの67%は「よくなかった」という感想でした。理由は知らない相手や、理解度の違う相手との演習は思った以上に神経を使うということで、それほど効果的ではないという感想でした。全員に利点とデメリットも書かせましたが、ほぼ、同じような答えで、よくなかったと感じた人たちも利点がある点は理解しています。なんかうっとおしからいやだ…ということではなく、きちんと理由を考えさせた上で、総合評価させています。

1つあるのは、友達関係にない相手と組ませることになるのは、確かに大変かもしれません。とは言え、講義運用上どうしてもそれは必要になります。レベルが違う人と組むのは、それなりに悪い事ではないと思うのですが、「課題を行う」というまじめな学生達のゴールにとっては足かせと感じたのかもしれません。ただ、他人がどう考えるのかということが理解できる点は良かった点として挙げられていました。

今年度は比較的多くペアプロをやりましたが、来年度は、限定的にやろうかと思っています。アジャイルのプラクティスは、形のないソフトウエアを作るプロセスを進化させるいちばん有力な手法だと感じています。ただ、プログラミングの初心者でできそうなプラクティスはペアプロではないかというのが当初の考えです。しかしながら、まずは基礎力をつけてレベルを比較的揃えてからやるというのが重要なようです。また、講義全体の進行度合いとはある程度独立した課題を与えるひつ模様もあると感じました。つまり、講義の流れは追えている学生もいれば、遅れている学生もいるということで、そこで一様でなくなる可能性があるということです。来年度は、「ペアプロの日」つまり、ペアプロで課題だけをやる日を1回か2回確保しようと思っています。

ようするにペアプロが機能する状況を、講師が作った上で、させないといけないという当たり前の結論なのですが、現場の開発と教育の現場の違いはまさにそういうところではないかと感じました。

学校として成り立つには何が必要か?

私自身、ある学校でiOSの開発のことを教えており、このことを書くべきかどうか、同業者のことなのでちょっと迷ったのですが、きっかけのことがあってからやや時間が空いているので書く事にしました。自分の考えを残すのがブログの1つの役割でもあります。

ちょうど、2〜3年ほど前、複数の人からまったく同じ依頼を受けました。一部の方には個人レッスンもしました。依頼というのは「あるスクールへ通ったのだけど、まったく何も勉強できなかった」というものです。実際、個人レッスンしても、けっこう当たり前のことでつまずいていたのです。どこでどんなことを習ったのかを聞き、みなさん、同じことをおっしゃいました。もちろん、どの学校なのかはここでは伏せますが(とは言え関係者にはすぐ分かるでしょう)、その学校に行けば、「まとまった数のアプリケーションが作る事ができる」という点に実用性を感じたということなのです。また、値段的にも安いということもあったみたいです。

そういうわけで、みんな期待するのはそのスクールへ行けば、自分もアプリケーションを作れるようになるだろうということです。ところが通ってみると、テキストが配られ、アプリケーションのソースとちょっとした解説があり、その通りに入力してアプリが動いた〜というのの繰り返しだそうです。当然、動くアプリのプログラムだから、動く訳ですが、その繰り返しで、何十もアプリケーションを作った上に、さて、自分で作りたいアプリケーションがあるのだけど、プロジェクトを作った後にハタと手が止まるというわけです。

このスクールはかなりメディア露出もしたりして、そこそこ有名であり、かなり多数の受講者がいるようなことが紹介されています。だけど、同じようなことを言う人に何人にも出会い、私にとってはこのメッセージのタイトルの内容、つまりは学校とはなんぞやという考える契機になりました。

もっとも、「サンプルアプリケーションをたくさん作る」点はけっして悪くはないと思います。スクール側は期待するのは、実例から学ぶということでしょう。きちんとした実例は確かに手本ではあります。しかし、単に作業として進めてしまうと疑問に思う事なく進めてしまい、実は何も理解していない人も発生します。それは受講者の力量だろうと言ってしまうと、学校ってそこで終わるのです。学校の最終目標は、当然ながら生徒の能力を高めることに尽きるのです。ただ、100%それが達成できないだろうとか、絶対はないとか、いろいろエクスキューズはあるでしょう。しかし、学校として、全部の生徒に対する能力を高める努力をしないというのは正しいあり方ではありません。もちろん、そのスクールでは、実際にiOSのアプリをApp Storeに登録した人もたくさんいるらしく、まったくだめなわけではないようですが、一方で、私個人の周囲にも、失礼ながら落ちこぼれた人が何人もいるというのは、多分、成功者の方が少ないのじゃないかと想像できます。

ちなみに、そのスクールで結果を出した人ってのは、どうやら、作業をした後に、講師をしっかり捕まえて、あれこれ質問をした人ということを聞きました。その人は、手本と自分の知識の対比を判断でき、ギャップを埋める努力をしたということです。その方は、たぶん、一般より安い受講料で高い効果を得たという意味で、得るもの多数あったでしょう。しかしながら、聞くところによると、そういう人はごく小数、特に誰かが講師をスタックしたら、結局他の受講者は質問すらできないような場合もあったりするということです。まあ、実際には常にそうではないのかもしれませんけど、そういう状況が1回でもあると、受講している人は悪い状況を印象深く記憶するものです。

ただ、残念なことに、そうしたスクールの成功事例を「アプリケーションのサンプルを作らせる」という点に集約して、それによって儲かるみたいな話に流れている傾向があります。学校もベースはビジネスです。もちろん、儲かるという点は重要です。しかし、明らかに楽に儲かる方法みたいなパターンとして理解されているのはほんとうに残念です。サンプルベースでの学習の方法についてはは、ここでは詳細は書きませんが、実際のところは運用は難しいです。本来、学習には王道はないという前提があるとします。すると、学校というのは究極的には生徒に苦労させ、また言い換えればつまずかせて、その状況を打破する手伝いをし、そこから生徒は何かを得るという状態を作るということが求められます。苦労するのは当たり前だけど、そこで手を差し伸べるのが学校の役割と考えます。サンプルベースの学習でもそれは可能ですが、すくなくとも作業として集約させれば、苦労やひっかかりはありません。その場では「至ってスムーズ」としか思わないでしょう。そうではなくて、むしろ、ひっかけ、あるいはひっかかりをうまくコースの中に入れることによって、自力で解決させるような手法を取るほうが、本来の学校の機能を満たすと思います。

別にそのスクールがある前から、私は同じような事を言ってきており、そういう手法はどうなのかときかれることも多々あり、上記のようなことをお話することも何度もありました。結果的に学校に行っても地力が身に付かなかった人が多く出てくると、市場が飽和した段階で挽回する手段はなくなります。それは、学校にとっても生徒にとっても幸福な話ではないでしょう。長らく学校にかかわっている人はその意味が分かると思います。来シーズン(つまり4月から)、こういう主張をする私をラインからはずす学校がある一方で、こういう主張が正しいということでライン拡充を依頼するところもあります。もちろん、ラインからはずされれば何もできないのではありますが、一方で、本筋を忘れないで、かつ今時の市場環境において受け入れられるテイストってのもやっぱり考えて、がんばってやろうかなと思った次第でした。