プログラム利用の意義: 教えることで深く学べる/中高数学駆け込み寺 素数判定の巻

中高数学駆け込み寺, 素数判定の巻の第二回です.

前回のコンテンツは確認されたでしょうか? 後回しにせず, ぜひさっと眺めてしまってください.

改めて今回はプログラム援用学習のご利益についてお話します. 何の意味もなく面倒なことをさせようとしているわけではないからです.

プログラミングは教育だ

まず基本的な認識として, プログラミングはコンピューターへの教育だと思ってください. コンピューターに指示を飛ばして何かやらせるのがプログラミングです. コンピューターは信じられないほど頭が悪く, 融通も利きません.

人間とコンピューターはプログラミング言語でやりとりします. この意味で特に人工言語と呼ばれる場合があります. 言語なので文法があります. 文法的におかしな文を書くと「何を言っているのかわからない」と言って, コンピューターは全く動いてくれません.

例えば文法的に正しくプログラムを書いたとしても, その内容があなたの意図と違う場合, あなたが書いた通りにしか動きません. あなたの意図や空気は読んでくれません.

数学でも業務システムでも, プログラムを書くときの共通の問題です.

あなたの理解が試される瞬間

コンピューターに正確に教える必要があり, ここで自動的にあなたの理解が正されます.

このくり返しで, 自分独りではなかなか気付けない誤解を一つずつ丁寧に駆逐しましょう. これがまさにこのミニ講座で提唱するコンピューターに教える学習法です.

私の独自のアイディアではなく, 少なくともアメリカの物理教育で実践されている手法でもあります. 興味があればぜひ次の文献を読んでみてください.

コンピューターに教え, コンピューターに教わる

何が言いたいかというと, 生半可な理解ではプログラムはあなたの意図通りに動いてくれません. 意図通りに動いてほしければそれを正確に表現する必要があります. そして意図を正確に表現できたと思っても, そもそもその意図が間違っていると決して「正しく」動いてくれません. これを正してくれるのがコンピューターなのです.

生徒として見ればコンピューターはとても優れています. 指導者の指導が悪くても文句を言いません. 何度同じことをやらせても文句を言いません. 自分の忍耐が続く限り永遠に付き合ってくれます. 人間相手だとこうはいきません.

適切に問いかければ, 何をどうしてその計算結果を導いたのかも詳しく教えてくれます. これをうまく使ってプログラムのバグを取り除きます. 特にデバッグと呼ばれます.

実はいつもやっている

しかし落ち着いて考えてみると, コンピューターの方が遥かに忍耐強いだけで, 人に話している・教えているときと似た点はたくさんあります.

勉強に限らず, 仕事でもお客さんや同僚から思いもよらない指摘を受け, 今まで気付けなかった問題に気付き, それを真剣に考えるうちに視野が開けて理解が深まった経験がある人も多いでしょう. あなたもそうかもしれません. そしてその課題を解決する中で, 大きなビジネスチャンスにつながった経験がある人もいるかもしれません. 同じことをコンピューター相手に実践してみましょう.

今回はこのくらいで終わりにします. 次は第二回を案内します.

最後にコンテンツ再案内

最後にもう一度コンテンツを案内します.

ぜひ先送りせず積極的に取り組んでみてください.

アンケートにご協力ください

何かご意見や感想があれば次の読者アンケートまでお願いします.

回答は確約できませんが, 直接返事をご希望ならこのメールへの返信でも構いません.

またメールします.