第34回 あなたは『英語』と『数学』のどちらが得意ですか?

第34回 あなたは『英語』と『数学』のどちらが得意ですか? 「プログラム学習の心構え」の探究活動報告

「プログラム学習の心構え」の探究活動報告

皆さん、こんにちは。テラオカ電子です。新年度が始まり、1カ月が過ぎました。特に、高校1年生にとっては、激動の1カ月を乗り越え、今、ゴールデンウイークで一息というところだと思います。有意義に過ごされていることと想像しております。

さて、今年度、勤務校の部活で、1年生に「探究」を指導することになりました。予定している探究活動では、プログラミングを行うのですが、まったくプログラミングをやったことがない方が多そうなので、今回は、「プログラミング学習の心構え」を述べたいと思います。

今回も初めにお断りなのですが、私は、プログラミング教育の専門家でもありませんし、プログラミングを職業にしているプロのプログラマーでもありません。なので、ここで述べるのは、あくまでも私の個人的な仮説です。したがって正しいか、有効なのかは分かりません。それでも私自身はプログラムを勉強し始める際には、このことを意識するとわりと、すんなりと、プログラミングの理解が進みましたので紹介します。これについて、皆さんの意見・感想等がありましたら是非、教えてください。

【1 プログラミングは『英語』と『数学』のどちらに近いか?】

突然ですが、質問です。プログラミング学習は、『英語』と『数学』のどちらの勉強に近いと思いますか? 生徒の方にこれを質問すると、大方の方が、『数学』に近いと答えてくれます。さらに、理由を聞くと、論理的に考える必要があるからと答えてくれます。これは、メディア報道で「数学は、論理的思考を養う教科」と散々言われているため、その刷り込みがあるからかもしれません。

一方で、『英語』と答えてくれる方も、一人か二人みえます。理由を聞くと、プログラミングは「プログラミング言語」を扱うので、「言語」の一種だからと答えてくれます。もちろん、プログラムは、コンピュータが理解できる「言語」ですね。

【2 プログラミングは『英語』と『数学』の両方に近い】

どちらに近いかと、二者選択を要求しておいて申し訳ないのですが、私の解答は、「プログラミングは『英語』と『数学』の両方に近い」となります。

プログラミングには、二つの側面があると考えています。一つは、プログラムコードという書式の側面です。どのようにコンピュータに命令するかの表現の問題です。プログラム言語の種類には、現在使われているものだけでも沢山あります。また、今後も新しいプログラム言語が開発されていきます。したがって、まずは、扱うプログラム言語の書式(書き方)を学ぶ必要があります。

ディスプレイやコンソールに表示させるためのコードや、分岐処理させるコードや繰り返し処理させるコードなど、プログラム言語固有の書き方を「正確に」理解する必要があります。「正確に」と強調したのは、コンピュータは、人間のように融通が利きませんので、曖昧な表現が許されないからです。

このような、「プログラムコードという書式の側面」の理解のためには、『英語』の文法の勉強方法が有効言えます。プログラムコードの書式は、英語の文法や構文に対応しますから。

もう一つの側面は、プログラムのアルゴリズムの側面です。アルゴリズムというのは、コンピュータに命令する「手順」のことです。どのようにコンピュータに命令するかの手順の書き方の側面です。ここでは、最初にこれを行い、次にこれを行い、その結果がこうであれば、これを行うなどを考えて、コンピュータに目的の問題を実行させる手順を矛盾なく記述する必要があります。

単純な問題ならばよいのですが、複雑な問題であれば、その処理を細分化して手順を論理的に考える必要があります。このアルゴリズムの構築は、いざ、やってみるとかなり難しいです。

このような、「プログラムのアルゴリズムの側面」のトレーニングは、『数学』に近いところがあります。数学には、厳密性が要求されますが、プログラミングにも、コンピュータは融通が利きませんので、同様に厳密性が必要です。

したがって、プログラミングは『英語』と『数学』の考え方の両方の側面を持っているといえます。このことを図で整理すると以下のようになります。生徒にこの話をすると、一応納得して貰えます。

【3 プログラミング学習の心構え】

では、初めてプログラミングを学ぶ時には、どのような心構えで学べばよいのでしょうか?

私は、プログラムを学んでいる時、今自分は、プログラムのコードを学んでいるのか、アルゴリズムを学んでいるのかを意識することがコツだと考えています。

プログラムを漠然と勉強するのではなく、プログラムの2つの側面を意識して、それに集中すると理解が進みやすいと思います。分からなくなったら、今自分がしっくこないのは、コードが分からないからなのか、アルゴリズムが難しいからなのかを意識して、そこを調べたりすると効率的に理解が進むと思います。

【4 まとめ】

以上、今回は、「プログラミング学習の心構え」を述べました。

プログラミングの勉強の際には、プログラミングのコードの側面とアルゴリズムの側面を意識してください。コードの場合には、これまでの『英語』の文法の勉強方法が役立ちます。また、アルゴリズムの場合には、『数学』の論理的思考の考え方が役立ちます。皆さんのこれまでの両方の勉強してきた力を使ってプログラミング学習を乗り切ってください。

余談ですが、私はプログラミングを大学生になって初めて勉強しました。「Fortran」でした。コンピュータが身近ではなかったので、そのイメージが無かったこともあり、当初、なかなか理解できなかったのを覚えています。今では、コンピュータは日常品です。プログラミングも小学生から学ぶ時代となりました。また、現在、人材、資金がAIに集中しており、これまでない変革の時代となっています。まさに今、プログラミング学習の時だと思います。

ここまで読んでくれて、ありがとうございます。ご意見・ご感想などありましたらお知らせください。

テラオカ電子 

【イチオシのYouTube動画】

このコーナでは、記事に関連する(関連しないかもしれません)気になるYouTube動画を紹介しています。今回は、鈴木ヒロミツ『でも、何かが違う』(1975)を紹介します。これは、私が高校1年生の時、よく聴いていた曲です。当時、鈴木ヒロミツさんは俳優だと思っていたので、歌がうますぎだったのを意外に感じていました。歌詞に「駆けていくには遠過ぎる 歩いていくにはもう若くない」とあります。私の「プログラム学習」のことを言われているように聞こえるのですが、「でも、何かが違う」と叫んでいるのです。

「鈴木ヒロミツ(モップス)/でも、何かが違う(1975年)」

【2024/05/03投稿】

この記事を書いた人

目次