小学校では2020年度からプログラミングが必修化され、民間のスクールや塾、通信教育の広告でもプログラミングを見ることが当たり前になってきました。でもその情報量の一方で、「なんのためにプログラミングを学ぶんだろう?」というイメージがいまいちわかないのではないでしょうか。今回は、プログラミングを学ぶ価値について考えてみます。
デジタルネイティブというけれど「使い手」で終わっていない?
今の私たちに最も身近で高度なコンピューターといえば、タブレットやスマートフォン。操作が直感的でデジタルネイティブの子どもたちはすぐに使いこなしているように見えますが、その用途は、動画を見たり、アプリでゲームを楽しんだりと、情報やサービスの消費が中心になりがちです。
消費的な使い方は楽しくてやめられず、保護者に注意されて制限されるという悪循環になりやすいのがよくあるパターン。これは実は大人も同じで、つい長時間ネット上のコンテンツを消費してしまったという経験は誰もがしているのではないでしょうか。
子どもたちにとってこの流れを変えるきっかけになるのが、2020年度から全国の小中学校で進められている1人1台の専用モバイルPCの整備。書いたり読んだり表現したり考えたりする道具の一つとしてPC を活用する取り組みが始まっています。これにより、コンピューターの「使い手」としての経験の幅が大きく広がることが期待できます。
「使い手」を越えて「作り手」になる
コンピューターの主体的な「使い手」になることからさらに一歩踏み込んで、「作り手」として視点をもてるのが、プログラミングを学ぶ価値の一つです。
例えば、PCで文章を書いたり、絵を描いたり、発表スライドを作ったり、動画を作って発信したりするというのは、コンピューターの「使い手」としてのスキル。一方で、アプリ、ネット上で利用できるサービス、ゲーム、ロボットなどの仕組みを作るのは、プログラミングによる「作り手」としてのスキルです。
私たちのまわりにはPCやタブレット、スマートフォンに限らずさまざまなコンピューターがあり、それらの働きはプログラムによって決まっています。自分で作ったプログラムで何かが動く経験をすることは、コンピューターが実現できる便利な機能や仕組みそのものの「作り手」になるということ。作る側に誰かがいて、自分もそちら側に立てるということに気づけます。
例えば動画サイトのおすすめ動画が次々に出る仕組みや、ゲームの展開や課金の仕組みなどは、ユーザーを離さないように周到に考えてプログラムされたものです。そんな背景をイメージできるだけで消費的な使い方に小さな変化が生まれる子がいるかもしれません。また、「こんな仕組みを作って世の中を変えたい!」とパッと世界が広がる子もいるでしょう。
基礎的な知識や経験としても重要!
日常的にコンピューターを使う時代に、プログラミングについて学ぶというのは自然なことです。学校で学ぶプログラミングは技術者養成の職業訓練ではあリませんし、そこまでの学習時間も確保されていませんが、コンピューター技術を身近に捉える教養としては十分な役割を果たしてくれます。
将来プログラマーになる人はわずかだとしても、今は、公共、民間問わず多くのサービスがプログラムで作られています。そこには、企画や営業、デザイン、サポートなどさまざまな領域の人が仕事として関わります。プログラミングの基本的な役割を知っているとプログラマーとの協業もしやすく、自分の専門領域で仕事を進める上でも強みになるでしょう。
また、プログラマーになるにしても、プログラミングとの出会いがなければ、自分の適性にも気づかず将来の選択肢にすらなりません。小学校でプログラミングの基礎に触れて「面白そう!」と思ったら、民間のスクールに通ってより深く学ぶこともできますし、将来の進路としてイメージすることもできます。
問題解決能力としても注目される
もう一つ注目されているのは、プログラミングをする際の独特の思考プロセスです。プログラムはコンピューターの指示書のようなもので、単純な命令を細かく順に並べ、繰り返しや条件分岐を使って組み立てられています。
プログラミングをするときは、プログラムのコードをいきなり書き始めるわけではなく、事前の計画が重要です。作りたい機能を実現する手順を細かく分解し、一定の法則を見つけ出したり、必要な情報だけを判断したりして、どう処理を組み立てればコンピューターが機能を再現できるかを考えます。たとえばフローチャートのような形式で処理の流れを検討することもあります。
こうしたプログラミングに必要な思考プロセスは、他のジャンルや日常の課題解決にも応用できると考えられていて、アメリカや英国では、「Computational Thinking(コンピュテーショナル シンキング)」と呼ばれています。日本では独自に「プログラミング的思考」という言葉を定義して、小学校のプログラミング教育の目的の一つに掲げられています。
このように、思考法に注目することもあるため、プログラミング教室の宣伝などには、「論理的思考が……」「プログラミング的思考が……」と書かれているのです。
テスト対策の学習とは違う学びの姿がある
プログラミングが学びのイメージを変えてくれたという例もあります。テスト対策で求められるような、暗記と反復練習で素早く正答を見つけるような力は、プログラミングではあまり重要ではありません。プログラミングでは、自力で調べる力、調べた情報を応用する力、試行錯誤を繰り返す力、エラーの原因を効率よく見つける力、プログラムを完成させるまで粘り強くやり抜く力などが重要です。同じ機能を作るにもプログラムの作り方は何通りもありますから、唯一の正解がないことも多い世界です。
プログラミングのそんなところに、テスト対策的な学びとの違いを感じてのめりこむお子さんもいます。プログラミング教室の保護者からは、「子どもの自己肯定感が上がって自信がついた」「他のことにも正解を求めず積極的にチャレンジするようになった」という声があります。小学校の先生からは「普段は積極的な態度を見せない児童が、プログラミングにはとても熱心で集中していて驚いた」という感想をよく聞きます。
プログラミングを学ぶ直接的な目的だけでなく、学んだ結果身につくであろう視点や思考のパターン、マインドセットなども含めて捉えると、プログラミングを学ぶことの先にある姿が見えてくるのではないでしょうか。