2013年9月16日月曜日

教育理念: レビューを重視する

実践的な知識や経験を蓄えるのに最も効果が高い方法は何でしょうか.私たちは,プログラミングではコードレビューが地道ではあるが最も教育効果が高いという結論に達しました.コードレビューは,学生が書いたプログラムについて,どうしてこのようにプログラミングしたのか意図を問いながら,プログラミングの妥当性を議論することを中心に行います.
コードレビューの教育効果が高い理由はいくつかあります.
  1. コードレビューを通して教授された知識は,学生が自ら経験したことの延長線上にあることなので,身近で理解しやすく意欲も高まります.ただ聞くだけの講義より自ら考え手を動かす演習のほうが学習内容が定着しやすくなるのと同じ理由です.
  2. コードレビューでプログラミングの意図について答えることは,プログラミングを通して行った経験を振り返ることなので,学生が経験から学びを得ることに直結します.経験とふりかえりを対で行うことは,経験学習の観点から有効です.
  3. コードレビューを行うことは,学生の演習結果に対して適切なフィードバックを与えることなので,自分自身のプログラミングの良し悪しを即座に学ぶことができます.スポーツで鏡やビデオを見ながら自分のフォームを確認することと同じような学習効果が得られます.
  4. コードレビューは個別指導でもあるので,学生の理解度や習熟度に合った適切な指導を行いやすく学習効果が高まります.家庭教師や個別指導塾のことを考えれば,一斉講義よりも個別指導のほうが学習効果が高いのは納得いただけるでしょう.
もちろん,コードレビューには時間も手間もかかります.そこで,私たちはコードレビューの効率を高める様々な工夫を考えて実施しています.たとえば,上級生が下級生のコードレビューを行うことは,下級生はもちろん上級生もコードレビューを通して学ぶことができます.

レビューを中心とした指導方法は,起業家育成に欠かせないビジネスモデリングにおいても有効だと私たちは信じています.そこで,学生が書いたビジネスモデルを学生同士や教員,社会人の視点から数多くレビューする機会を設けています.


私たちは,プログラミングやビジネスモデリングのレビューを中心とした実践的な指導を行います.

2013年9月8日日曜日

教育理念: 現実社会の中から問題を抽出して解決する経験を積ませる

学生が社会に出るとさまざまな問題に直面します.社会全体の問題かもしれませんし,日々の業務の中で直面するような問題かもしれません.
それらの問題の多くは,1つの模範解答があるとは限らない複雑な問題です.一方,日本の受験で扱われる問題は,ただ1つの模範解答があることが通例です.しかし,ただ1つの模範解答があるような問題に慣れきっていると,現実の模範解答があるとは限らない問題に対処することができなくなるものです.そのため,受験勉強の思考パターンから意識を変えていく必要があります.
社会人は業務の中で大小様々な問題を解決していくことが求められます.すぐに解決できそうにない場合には,解決方法や解決できそうな人が既に存在するのか探すこともあるでしょう.いわゆる「デキる人」とは,様々な問題に柔軟に対処できる人ということでしょう.社会から学生に対して,そのような人になることが期待されています.

問題解決能力を高めるには,最初は簡単な応用問題から始め,徐々に複雑で現実的な問題に取り組む訓練を積むことが大事です.
解決方法が見出されていない未知の問題であっても,それを解決の方向に近づける定石が存在します.実は大学で行う研究活動の多くは,このような解決方法が見出されていない問題に取り組むためにも使えるのです.たとえば,研究活動の一環として書籍や論文を探したり読んだりします.これは問題に対して,既に知られている解決方法の中で有用なものはないか探すことに応用できます.
大学の研究室では,しばしばこのようなノウハウを口伝のように伝えているものですが,それでは効率的ではありません.世の中には,研究活動そのものをより良く行う方法についての研究が存在します.このような「研究活動についての研究」をメタ研究といいます.問題解決能力を効率的に高めるには,このようなメタ研究の成果を利用して,問題解決の定石を場当たり的ではなくきちんと体系立てて習得することが大切です.
問題解決の定石を学んだあとでは,簡単な問題から徐々に複雑な問題に取り組む訓練を積むことで,問題解決能力を高めることができます.よくある Project-Based Learning (PBL) や On-the-Job Training (OJT) では,このような訓練をせずに実践しか行わないことがしばしばありますが,それでは効果も効率も高まりません.私は,研究指導でも大人数授業でも,そのような訓練を盛り込んでいます.

また,複雑な事象の中から本質的な問題が何なのかを抽出する訓練も必要です.問題の本質を見出すことができれば,抜本的に解決できる可能性が高まります.一般に言われているように,的確に問題の本質を抽出するには,ある程度センスも必要かもしれません.しかし,私たちは,日々問題の本質を考える訓練を積むことで,問題の本質を抽出する能力を向上できると考えます.たとえば,似たようなパターンの中から共通の要素を見つける訓練を,プログラミングなどの実務に近い状況で行うことは,問題の本質を抽出する能力を高めるのに有効だと考えています.私の研究室指導では,こういった問題抽出の訓練を,レビュー活動や日々の活動のふりかえりに取り入れています.


私たちは,そのような問題の発見と解決を繰り返し訓練する機会を学生に与えます.