- 教育オピニオン
- 学習指導要領・教育課程
新しい学習指導要領において、小学校段階からプログラミングに関する能力を付けさせるべきという論議が出てきて、教育現場を不安にさせていると聞く。確かに、コンピュータとはどのようなものであり、どのような仕組みで動作しているのかを理解するためには、動作の礎となるプログラミングやアルゴリズム、あるいはセンサーや制御の技術についての知識は、避けることができない。ただ、それが、小中高のどの段階で、どの程度まで、しかもすべての児童・生徒が理解したり、体験したりする必要があるのか、またどのような学習活動が適切なのか、がここでの論点なのである。
1 「プログラミング的思考」とは、どのようなものか
さて、この論議で出てきた「プログラミング的思考」とは、どのようなものか。プログラミングとは、機械に理解でき実行できる命令の範囲で、目的の仕事(作業)を自動的に順次に行わせる手順を考え、記述することと考えてよい。多くの場合、この命令は英語など人に意味が分かる動詞と目的語でテキスト記述できるようになっており、プログラミング言語と呼ばれる。すなわち、プログラミングは、プログラミング言語を使って、コンピュータに自動処理させる方法を学ぶことになる。ここでの本質的な考え方とは、コンピュータのプログラムは、1)順に動作する一命令、 2)条件分岐と3)繰り返しの組み合わせで動作すること(構造化プログラムの基本的概念)、あるいは、イベントが発生すると対応して動作するメカニズム群(イベントドリブンやオブジェクト指向)などの考え方である。
実際のプログラミングでは、変数や数値の代入、データの操作、関数の概念が必要で、シンボルの形式的な操作が未成熟(12歳以後に、身に付くと考えられている)な児童には、概念的に理解することは困難であろう。したがって、プログラミングするとしても、言語ではなく、具体的なシンボルや図といったものを媒介にする環境がなければ、小学生には理解できない。また、処理の結果も、一つひとつの命令に対応した動作が目で確認できるものでなければ、自分で誤りにも気が付けない。したがって変数を使って、計算をさせるプログラムやアルゴリズムの理解ではなく、プログラミングのもつ本質的な特性や考え方を、体験や実習を通して、徐々に身に付けていくという考え方が必要になる。これが「プログラミング的思考」の育成である。
2 どのようにすれば、「プログラミング的思考」の育成が可能になるのか
では、どのようにすれば、「プログラミング的思考」の育成が可能になるのか、まずは、作業の流れから定型的なこと、法則的なことを見つける練習が入門的である。例えば、日常的に行っている動作(朝起きて、学校にいくまで)行動を取り出し、手順に書き出してみる、条件(雨が降っていたらなど)によって行動が変化するなら、それを列挙してみるなどである。
しかし、やはり、実際にプログラミングを体験して何かを完成させるという課題中心型の学習を行うことは必要不可欠であろう。これには、児童が理解でき、自分で操作し、結果が確認でき、完成まで自分で確認できるように工夫されたプログラミングの環境が必要になる。古くは、LOGOなどが教育用として代表的であったが、最近では、Scratch(スクラッチ)、Viscuit(ビスケット)、Alice(アリス)など、ビジュアル型・ブロック型と呼ばれるプログラミング環境(ツール)が利用できるようになり、小中学生を対象としたワークショップの試行もある。具体的には、命令(や目的語)を示すアイコンやイラスト、繰り返しや条件分岐を示す図やブロックチャートを画面上に並べ変えプログラムを構成する。また、結果はイラストや、キャラクタの動きなどで示すというもので、プログラミングに必要な基本要素が含まれている。これらのツールを使うと、物語を作ったり、キャラクタを躍らせたりできるので、児童・生徒も喜んで取り組める課題になるだろう。
しかし、ここで重要なことは、同じロボット操作や、アニメの制作でも、その課題に含まれている要素により、「プログラミング的思考」につながる学習とそうではない学習に分かれるということである。プログラミングでは、目標とする動きをはっきりイメージしてから、それに向かってプログラミングをさせることが重要であり、いろいろな機能を使って創作的な動きを試してみるというだけでは、結果を予想し与えられた命令や条件で考えるという「プログラミング的思考」にはつながっていかない。一方で、自分で結果を見直し、自分で修正させる(デバッグ)十分な時間の確保も必要になるため、音楽や図工、体育などの表現活動の演習と連携して取り組むことも必要になると思われる。
その意味で、児童向きプログラミング教育の諸外国のツールは、まだ筆者から見て満足できる環境にはない。しかし、学習指導要領が決定すれば、わが国の学校での利用に向けた小学校向けのプログラミング演習環境が開発されるようになるだろうし、それを期待したい。