みんな勘違いしていない?「プログラミング的思考」の本当の意味

プログラミングをしないプログラミング教育は、はたして成立するのでしょうか?今回は「プログラミング的思考」という言葉について詳しく掘り下げ、結局のところなにをすればいいのかを考えてみたいと思います。

  • プログラミングをしなくてもプログラミング的思考は育まれると解釈している人が多い。
  • アンプラグドは低学年対象の授業などでは有効に機能するがそれで終わってはいけない。
  • 今のプログラミング教育に欠けているのは、自分たちで手を動かしてモノを作る活動。

これまでの【プログラミング教育のホントのところ】はこちら

中京新聞に誤解を招きそうな「プログラミング的思考」記事が掲載

2019年12月13日に、中京新聞に「料理や買い物、良い訓練 家庭で育てる『プログラミング』力」という記事が掲載されました。本記事では、料理の手順や買い物の手順などでプログラミング的思考が育まれる、といったことが書かれています。

料理や買い物、良い訓練 家庭で育てる「プログラミング」力 より中日新聞 2019年12月13日画像参照:https://www.chunichi.co.jp/article/living/life/CK2019121302000001.html

しかしこの記事を読んだ読者は、プログラミングをしなくてもプログラミング的思考は育まれるから問題ないと解釈しかねません(なおこのような取材記事は、取材された側が伝えたいことと記者が伝えたいことが完全に一致しているとは限らないため、取材された方がこのような発言をしているとは限りません)。

「プログラミング的思考」教育

プログラミング教育変遷の過程でプログラミング的思考という言葉が使われるようになったのは、二回目の有識者会議で、ソニーグローバルエデュケーションの磯津政明氏が次のように発言したことから始まっています。

プログラミング教育の本質がなんであるかというと、御存じのとおりコーディングというよりは、プログラミング的思考、先ほどもありましたが、コンピューテーショナル・シンキングと言われているところがプログラミング教育の本質ではないかと考えておりまして、この部分を強めるのが、プログラミング教育のあるべき姿だと感じているところです。

この発言からわかることは、もともとプログラミング的思考は、コンピューテーショナル・シンキング(Computational Thinking)を訳したものだったということです。ではコンピューテーショナル・シンキングとはなんでしょうか。

コンピューテーショナル・シンキングとは、 Jeannette M. Wing 氏が提唱する「コンピューター科学者のように考える思考法」のことで、問題解決・システムデザイン・コンピューター科学の概念の基づく人間の理解などが含まれます。なお、公立はこだて未来大学の中島秀之氏が Computational Thinking の論文を日本語訳しているため、より詳しく知りたい人はこちらを参考にされるとよいでしょう。

Computational Thinking の論文日本語訳

さて、これを読むと、少なくとも現在広く使われている「プログラミング的思考」と「コンピューテーショナル・シンキング」は、だいぶ異なることがわかります。プログラミング的思考は、いったいなにを指しているのでしょう。

文部科学省的には、プログラミング的思考について次のように説明しています。

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力

私は本連載でもすでに紹介している通り、「情報を捉えて細分化し、再構築する力」と説明しています。しかし、これらはあくまでも「思考法」について問題にしているのであって、プログラミング教育でなにをするかという「具体的な方法」については説明されていません。

「プログラミング的思考」教育に欠けているもの

プログラミング教育で行われる方法論のひとつに「CSアンプラグド」があります。これは「コンピューターを使わずに情報科学を教えるための学習法」であり、現在多くの実践が行われています。記事で紹介されているような料理や買い物の手順を考えて実行することは、アルゴリズムを考えるまさにアンプラグド的な授業と言えます。「プログラミング的思考」を強調する授業では、よくアンプラグドが使われてます。

アンプラグドは低学年を対象とする授業やプログラミング教育の導入場面で取り入れるととても有効に機能します。たとえば学習指導要領に記載されている5年生の正多角形の作図場面で、実際に自分が作ったプログラム通りに教室を歩くことは、理解を深める一助になります。

しかしそれだけで完結してはいけません。「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」では、「コンピューターに意図した処理を行うよう指示する」という一文が書かれています。アンプラグドだけでは、コンピューターに意図した処理を行うように指示することはできません。

ここで問題なのは、コンピューターを使ったとしても「プログラミング的思考」という言葉に捉われるがあまり、プログラミングが本来もつ創造性(クリエイティビティ)の視点を失ってしまうことがあるということです。たとえば「みらいの学びコンソーシアム」では家庭科の授業として、炊飯器シミュレーター使った実践例が掲載されています。

家族と食べる朝食を考えよう | 小学校を中心としたプログラミング教育ポータル

この授業では物事を順序立てて考える力は育めるかもしれませんが、創造的な活動はどこにもありません。これはプログラミング教育というよりは、ICTを活用した家庭科の授業と呼ぶべきでしょう。

創造性の視点をもとう

今のプログラミング教育に欠けているのは、創造性の視点です。創造性を育むための授業には意図的な「余白」が必要です。プログラミングの授業は図工の授業と同じように、自分たちで手を動かしてモノを作る活動が必要不可欠と言えるでしょう。

小学校で行われる授業の多くは、学習指導案という授業計画書(言うなれば、授業の流れをプログラミングしたもの)に基づいて行われます。指導案にはどのタイミングでどのような発問をするかなどまで書かれているため、指導案通りの授業をしようとすると、どうしても教師が導きたいゴールに向けて行く以外のことができなくなってしまいます。

しかし、創造性とは常に計画の外で生まれる営みです。教師がコントロールする時間ではなく、子どもたち自身がコントロールする時間を少しでも授業に取り入れること。それが私の主張する「余白」です。なお、授業の「余白」をデザインするときには、本連載でも紹介した、Scratch の開発者であるミッチェル・レズニック氏の提唱する創造的な学びが参考になるでしょう。

Scratchがプログラミング教育で一番使われているこれだけの理由【プログラミング教育のホントのところ】 - バレッドプレス(VALED PRESS)

プログラミング教育を学校教育で実施する最大のポイントは、この国のほとんどすべての子どもたちがプログラミングを体験できるという点にあります。子どもたちとプログラミングが幸せな出会い方ができるように、創造性を育むための「余白」をもった授業をしていく必要があるのではないでしょうか。

パズルゲーム的な活動ではなく、創造性を育む活動のあるプログラミング教育が望まれます。

この記事が気に入ったら「いいね!」をクリック!バレッド(VALED PRESS)の最新情報をお届けします!

これまでの【プログラミング教育のホントのところ】はこちら

プログラミング教育のホントのところ - バレッドプレス(VALED PRESS)

© Valed.press