インタビュー&コラム

Lead Article

プログラミングを通して学ぶ
「論理的な思考力と問題解決能力」

聖心女子大学 教授
永野 和男

(2005/03掲載)

永野和男先生は、情報教育の第一人者として コンピュータの学校教育における利用に関する多方面な研究活動を行なわれています。
今回、永野先生にプログラミングを通して学ぶことができる学習の意義についてお伺いしました。


プログラミング入門ソフト
〈ロボチャート〉

―――「プログラミング」を子どもたちに経験させるメリットはどのようなものでしょう?

永野 プログラミングの経験は論理的な思考力や、順序だてて問題解決する能力を育成することが知られています。子ども段階では、単なる計算ではなく、何か具体的に見える形のものを法則にしたがって動作させて、試行錯誤で解決していく経験を続けると、より高い効果が期待できます。

中学校「技術・家庭科〈技術分野〉」(※以下技術科)において、プログラムの基本的な考え方〈順次構造、選択、くり返し〉を学習する内容が取り上げられています。特に技術では、センサーからの情報を得て機械(ロボット)を制御する楽しい演習が記述されています。

一口にプログラミングといっても、その作業にはいくつかの過程があります。まず処理の目的を把握し、処理全体の流れを考えます。そして、実際にコンピュータにひとつひとつの命令に置き換え、その処理が正しくできたのかを実際に動作させることでチェックします。この過程の中で重視すべき点は、処理全体の流れをいつも把握工夫できるようにすることです。流れ図(フローチャート)はこの処理の流れを図にあらわすものになり、いわば処理全体の設計図になります。ですから、命令と処理の関係がつかみやすいツールが必要になるのです。


 

 

―――しかし、プログラミングというと、たとえばC言語に代表されるプログラム言語の文法に沿ってプログラムをパソコンに入力していきます。それは、子どもたちにとって難しいのではないか?というイメージがあります。
また、教える側の教師としても、プログラミングのメリットはわかっていても言語の習得にも時間を割く必要があることから、学習を躊躇してしまうのではないでしょうか?

永野 本来プログラミングを経験することによって学んで欲しいものは、論理的な思考力です。
したがってプログラム言語を覚えることではありません。しかし、実際にコンピュータを動かすためにはプログラミング言語の使用を避けることができません。ここに大きなギャップがあります。
また、センサーを使った計測と制御も、新しい技術として大変重要ですが、いまのところそのようなことが記述できるわかりやすいプログラミング言語もほとんどありません。

問題を考えるときはできるだけ、視覚的に状況を把握でき、実行時にはプログラミング言語として表示できる そんな環境が最も理想的ですね。

プログラミングというと、どうしても、CやJAVAといったよく使われているプログラミング言語を教えたくなります。しかし、文法的に正確に記述するには、たくさんの約束を覚えなければなりませんし、なかなか実際に動作まで行き着くのは難しいのです。

大切なのは考え方のほうで、基本的な考え方がわかれば、他の言語に応用することは簡単なのです。実際私自身は、若いころから、プログラミング言語を使いこなして大きなシステムを作ってきた経験がありますが、習得したプログラミング言語の種類は10種類以上もあります。

その基本的な考え方のひとつが、〈順次構造、選択、くり返し〉であり、もうひとつが、センサーによる外界状況の変化に対応した動作制御(イベント・ドリブン)の考え方です。

したがって、この2つを、具体的でわかりやすい問題で何度も繰り返して実行し基本的な処理の仕組みを理解するほうが、将来もしプログラミングの世界にはいっていったとしても、応用力になると思いますね。

 

プログラミング入門ソフト

ドラッグ&ドロップのマウス操作でプログラムを作成することができます。また、流れ図とロボットの動きを同時に画面に表示することで、試行錯誤を助け、プログラミングの理解を深めます。

 


迷路抜けロボチャート

 


スペースロボチャート

―――プログラミングの本質を踏まえた上で、簡単にプログラミングの基本を習得できるソフトウェアが求められますね。
また、中学校「技術科」における学習内容に対応しているといいですね。

永野 そのようなことをいろいろ考えて、このプログラミング入門ソフト〈ロボチャート〉を開発しました。
〈ロボチャート〉は、中学校「技術」の実習を想定しており、通常のプログラム言語のように命令文を覚えたりする必要,もなく、とても簡単な操作で流れ図を組み立てることでプログラムを作成することができます。また、作成したフローチャートをプログラミング言語で表示する機能ももっていますので、言語で説明したい先生にも最適です。
プログラムは、順次構造、選択、くり返し、サブルーチンなどだけで構成できるようになっていますので、自然とプログラムの基本的な考え方を学習できます。

実習用には、「迷路抜けロボチャート」と「スペースロボチャート」の2種類を用意しました。前者は、そのまま教科書の内容として扱われています。また後者は、さまざまな状況を想定した対応のアルゴリズムを考える応用編で、状況を判断した自立型ロボットの設計の課題へと発展的に学ぶことができるようになっています。

また、「スペースロボチャート」は、相手の状況によって動作がかわりますので、正解があるわけではなく、いろいろ条件をかえて試してみることによって、いつまでもゲーム感覚で遊べますね。家庭でもぜひやってみてください。

ロボットなどを思ったように動かしてみるという具体的な課題を考えることで遊びながら、思考力や論理的なものの考え方が身につけばいいですよね。

スズキ教育ソフト