高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

プログラミングと数学教育

このブログは、プログラミング教育 Advent Calendar 2015 - Adventarの16日目の記事です。

16日目は、Windows10のCortanaについて書く予定だったのですが、考えてみたら最初に結構全部書いてしまったのでした。
そのため、16日目はこの間ふらっとステーション・とつかで話題になったプログラミングと数学について、ちょっと書いてみようと思います。

ふらっとステーション・とつかで話していた内容は、プログラミングは他の全ての学校教科を勉強するきっかけになるよね という話しでした。

プログラマの方には今更な話かもしれませんが、プログラミングには数学の知識は、案外必須ではありません。最近のプログラミング環境はかなり進歩しているので、ある程度のことは、既存の部品(ライブラリやフレームワーク組込みのメソッド)を組み合わせることでできてしまいます。とくに、旧来から開発者が多かったパソコンやWebの分野では、公開されている部品の数も多く、数学の知識がなくてもできることはかなりあります。

もちろんそれでも既存の部品だけでどうしようもないものもありますし、スマートフォンや組み込みプログラミングのようなそれほど開発の歴史が深くない分野については、数学が必須な分野も少なくない。それ自体に数学は必須ではなくても、参考資料を読むのに数学が必要になる(参考資料が数学の知識前提で書かれている)というものもあります。

ざっくり書くと、プログラミングには「数学の知識が必須で無い分野」と「数学の知識が必須な分野」があるんじゃないかと思ってます。そして、基本的なプログラミングをする限りは数学の知識は不要。そこから派生していく という感じかな。

f:id:TakamiChie:20151216155423p:plain

すべての教科を勉強するきっかけに

ただ、プログラミングは全ての科目を勉強するきっかけになり得る と思っています。先に書いたとおり、それほど深い数学の知識がなくても、プログラミングはできます。ただし、慣れれば慣れるほど、必要となる知識(学校の科目含む)は多くなっていきます。初期こそ必要な知識は多くないですが、ランクアップするごとに、国語についで英語や高度数学、作るアプリの種類によっては社会や理科の知識まで、さまざまな物が必要になってくる。

プログラミングとは、コンピュータに「○○とは△△である」ということを教える作業ですから、これからコンピュータにさせたい物事について自分が大まかにでもいいので理解できている必要がある。

勉強に動機付け

学校で勉強する科目が重要になる仕事なんて、たくさんあります。でもその大半は、「いざ就職してみるまで」わかりません。

それに対して、プログラミングは別に、環境さえそろえれば小学生でもできる。それに今はPCさえあれば他の環境は無料でそろえることもできる環境になりました。だからこそ、プログラミングは「他の科目を勉強するための動機付け」にできる、最も若い年齢から触れるツールになるのでは と思います。

色んな物を知る・興味を持つきっかけに

もちろん学校の勉強だけではないです。風景とか、建造物やチラシのデザイン、物の動きなど、色んな物に興味を持つきっかけに、プログラミングはなり得ます。なによりコンピュータにとっては、「自分が全てを教える」立場になる必要があるのですから。

だからこそ、どんな形でもいいので、プログラミングはやった方がいいと思います。別に、子どもに限った話しではありません。大人も、高齢者も、プログラミングをして損をすることはないと思います。