超算数から昔大学生時代に塾講師アルバイトをしていたこととかを思い出してみる
こんにちは、K研究員です。
KY研究所はツイッターもあるのですが、そのツイッターを眺めていると、教育関係の人のツイートがよく流れてきます。そうすると、はじきの公式とか掛け算に順序があるとか、掛け算には三種類あるとかいろいろなんだかなーと思う話もあり、ふと塾講師アルバイトをしていたことを思い出しました。
https://twitter.com/hashtag/%E8%B6%85%E7%AE%97%E6%95%B0?src=hashtag_click
ところで、掛け算に種類があるという話は、英語の現在完了形には三つの用法があるみたいな話に似てますね。大人になってみると、現在完了形って、過去に起きた出来事が現在まで続いているだけで、三つの用法とか増やすと逆に紛らわしいんじゃないかとか思います。
一つ目の塾
一つ目の塾は、時給900円ぐらいで、個別指導の塾でした。900円と言っても、給与明細は出ないわ、使用期間とか言って三か月ぐらい800円になるわで今でいうブラックな感じです。ただ、この塾は同世代の学生アルバイトが多かったため、アルバイト同士仲は良く、居心地が悪いレベルではありませんでした。
私は数学を中心に全教科を小学生から高校生まで教えていました。中には中学二年生でアルファベットの読み書きができない子もいました。アルファベットの読み書きができない子にはアルファベットを教えてあげればいいと思うと思います。私もそう思いました。でも何日教えてもmとnの違いは分かってもらえません。mとnを覚えているときはtは覚えていません。さらにそれを繰り返しているうちに、中間テストの成績を上げるように塾長から指導が入ります。なかなか厳しい環境です。
とはいえ、実際はそういう子は少数で、ボリュームゾーンとしては、勉強を作業(オペレーション)だと思っていて、理解することをあきらめている子たちでした。
彼ら彼女らは、連立方程式を加減法で解くのはすごく得意です。連立方程式の計算は特定の作業で解けるからです。しかし、いざ文章題になるとなかなか作業にはできません。例えば
新幹線が分速2kmトンネルを通過する。新幹線の先頭がトンネルに入ってから、新幹線の半分がトンネルの外に出るまで6分かかった。また、新幹線の全体が外に出るまで8分かかった。新幹線とトンネルの長さを求めよ
という問題がありました。私の教えていた生徒は
「わかりません」
と言いました。私はなるほど、文章題を読むコツを教えてみようと思いました。
「文章題はまず、絵にしてみると分かりやすいんだ。じゃあ新幹線を書いてみよう」
と言いました。
「できません」
その生徒はそう答えました。私は、なるほど、ちゃんと描けないと恥ずかしいと思っているのかもしれないなと思いました。なので、できるだけ不格好に台形と四角だけの新幹線を書いてみました。
「新幹線はこんな感じでいいんだよ。書いてみよう」
でも返事は同じでした。
「できません」
この生徒の中では、数学の文章題は絵を描いて考えるものではなく、問題それぞれにオペレーションがあって、それを教えてもらって暗記することだったのでしょう。「できません」と言えば丁寧に先生がオペレーションを教えてくれるのです。連立方程式の計算問題をすべてミスなく解ければ中間テストでは50点、そしてオペレーションをいくつか覚えておいて、覚えている文章題が二つぐらい出れば70点、それが彼ら彼女らの数学なのです。
別の生徒の例で印象に残っているものとしてこんなのもあります。
√5789の整数部分は何桁か
この問題は、「たぶん3桁かな」とあたりを付ければ、√5789 > 100のはずですが、両辺を二乗すると5789 > 10000ではないのは明らかなので2桁とわかる問題です。たぶんXX桁のXXが4でも5でも2でも1でも、だんだん近づけていけばいいので、何か仮説が建てられれば解くことができる問題です。
「XXさんは何桁の数だと思う?」
「わかりません」
「あてずっぽうでもいいよ」
「わかりません」
「じゃあ、4桁だと思う?」
「わかりません」
そんな感じです。たぶん本当にわからなかったのでしょう。平方根はなんか小数点のくっついてくる数みたいな認識もないのかもしれません。答えを聞いて覚えて楽をしてやろうとかそういう思いは微塵もなくて、わからないだけなのです。これがその塾の平均的な学生でした。
次の塾
次の塾は時給1500円ぐらいで5人のクラスを教えていました。中学校一年生で、頭のいい方にクラス分けされた生徒たちです。そこでは年度の最初から教えていたので、数学の正負の数を教えました。
さすが頭のいい子のクラスなので、正負の数はすぐ理解します。そして中間テストの2週間前になりました。頭がいいので正負の数の掛け算割り算まで進んでいますが、塾長から中間テスト前なので過去問をやるようにとのことで、正負の数の足し算引き算の過去問をやらせました。
さて、次の週はテストの一週間前です。また正負の数の足し算引き算の過去問をやらせるように言われました。
さて、次の週はテスト期間ですが、数学のテストは2日後です。なのでまた同じ過去問をやらせるように言われました。
さて、テストが終わり、テストの問題を集めて、間違ったところの解説をしました。ケアレスミス以外ほとんど間違いはありませんでした。
そんなこんなで、正負の数の足し算引き算のテスト対策を1か月近くやっていたことになります。ちなみに私はそこでそのクラスを首になりました。成績が悪かったからと言われたのです。では点数を教えてくださいと言いました。点数が悪くないのは知っていたので。もちろん点数は教えてもらえず、とにかく点数が悪かったの一点張りでした。おそらく私が言うことを聞かないのでいろいろとめんどくさくなったのだと思います。
この塾は時給は高かったですが、授業前に来て今日の計画を説明しろ(当然その時間の時給は無し)、夜10時から会議をするのでこい(当然その時間の時給は無し)というありさまで、割とすぐに辞めました。
労基に電話してみましたが、雇用契約書を確認してくださいと言われました。もちろんそんなものはもらっていないので、くれって言ってもらわないといけないですが、それを言えば私は不穏分子ですと言う様なものなので、言い出せませんでした。労基って役に立たないんだなと言うのを大学時代に学べたことぐらいの利点はありました。
中間テストの点がすべての教育
これはもう20年近く前の話で、今は変わっているのでしょうか。私自身は塾に行ったことがないので、当時、すごい世界だと思いました。
私が塾講師をしてみてきたものは中間テストの点がすべて、アルファベットがわからなくてもテスト勉強させないといけない、テストで点を取れば数学を理解する必要はない、テストで点を取るためには過去問を延々と解かせるという教育でした。塾は中間テストの点数を何万かで買っている、そういうビジネスモデルだったのです。
そういう意味で行くとプログラミング教育はいくら頑張っても中間テストの点は増えないので、そんなに需要はないのも仕方ないなと思います。でも自分の子供たちの代では正しい学びが行われてほしいと願います。
機械学習から考える正しい学び
では、正しい学びとは何でしょうか。機械学習の世界では汎化という言葉がよく使われます。これは与えた学習データだけでなく、それと似たデータも同じように判定できる能力のことです。例えば、じゃんけんのチョキを学習するときに、チョキの手をちょっと横にずらしても判定できていれば汎化できているということになります。以前ML2Scratchでじゃんけんを学習する記事を書きましたが、これは汎化能力があるため、数十枚の画像からちょっと変えた画像多数の画像を判定できるようになるのです。
これを英語の学習で考えると、教科書の英文とその役を覚えるだけで、中間テストの点数は上がります。そっくり同じ問題がでるからです。でもそれで海外の人と話せるかというとそうではありません。汎化はそのことと似ています。
教科書の英文と役から英語の語順や発音などを学び取ることができれば、単語を入れ替えたり、別の文章にその中の単語を使ったり、とっさに話したりできるでしょう。そのように、これを勉強してどう実際に使うのかと考え、実際に使える要素に分解して吸収することができれば汎化できたと言えます。
そのために重要なのが、「実際」(あるいは本番)という概念です。英語は「実際」に外国の人と話すと考えると理解しやすいですが、数学は「実際」どう使うかイメージできないため、そこから逆算して考えられないという人も多いのではないでしょうか。
プログラミングは数学を「実際」使う場の一つです。プログラミングを学ぶことで、自分のやっている数学や算数を「実際」にプログラミングで使うにはどう勉強するかという思考になってもらえたらいいなと思います。
無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。