EdTechZine(エドテックジン)

学習目的・対象者別

子どもたちのプログラミング的思考を養うために何が必要か? 動機づけや学び場づくりの研究より【デブサミ2020】

Developers Summit 2020【13-F-4】若年層におけるプログラミング的思考の学びの場づくりと動機づけ レポート

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2020/05/08 07:00

 2月13日~14日に開催された ITエンジニアの祭典「Developers Summit 2020」(通称デブサミ)。DX時代のテクノロジーが多く語られた同イベントでは、小学校で必修化されたプログラミング教育に関するセッションも設けられた。早稲田大学でプログラミング教育の研究に取り組む鷲崎弘宜氏、齋藤大輔氏、坂本一憲氏の3名が登壇した「若年層におけるプログラミング的思考の学びの場づくりと動機づけ」のセッションを紹介しよう。

身近な話題から始めるプログラミング的思考

 まずは鷲崎氏から、プログラミングを学ぶ必要性、プログラミング的思考の養い方について語られた。

早稲田大学 グローバルソフトウェアエンジニアリング研究所所長 鷲崎弘宜氏
早稲田大学 グローバルソフトウェアエンジニアリング研究所所長 鷲崎弘宜氏

 プログラミングを学ぶ必要性について鷲崎氏は、「プログラミングの技能習得」と、ひとつの学びが他の学びに寄与する「学習転移」、2つのねらいがあると述べた。中でも注目したいのは後者の「学習転移」で、同氏は2018年に発表されたScherer氏の研究(※注)を取り上げ、「プログラミングを学ぶことで、創造的思考、数学思考、メタ認知、空間認識能力、推論の学びを容易とし、他の学習の促進につながることがわかってきた」と説明した。小学校におけるプログラミング教育は、この学習転移の有効性に注目すべきだというのだ。

  • ※注:Scherer, R., Siddiq, F., & Sánchez Viveros, B. (2018). The cognitive benefits of learning computer programming: A meta-analysis of transfer effects. Journal of Educational Psychology.

 創造的思考や数学思考は、プログラミング的思考と重なる部分だ。鷲崎氏は自著『Scratchでたのしく学ぶプログラミング的思考』を参照して、プログラミング的思考とは何か、改めて整理したものを提示し、プログラミング的思考の要素を説明するとともに、「プログラミング的思考を支える論理的推論も重要である」と述べた。「問題の原因は何か」「どのような仮説を立てて考えればいいか」プログラミング的思考は問題の背景を読み取る力も養う必要があるというのだ。

鷲崎氏が提示したプログラミング的思考の整理。「プログラミング的思考は、日常生活の課題解決にも有効であるからこそ、子どもたちに学んでほしい」と同氏。
鷲崎氏が提示したプログラミング的思考の整理。「プログラミング的思考は、日常生活の課題解決にも有効であるからこそ、子どもたちに学んでほしい」と同氏。

 では、プログラミング的思考を養うためにはどうすればいいか。鷲崎氏は、プログラミングを「知らない」「知っている」「使える」「応用できる」の4段階でアプローチが変わるという。

プログラミングを「知らない」「知っている」「使える」「応用できる」の4段階でアプローチ
プログラミングを「知らない」「知っている」「使える」「応用できる」の4段階でアプローチ

 まずはプログラミングについて何も「知らない」とき。身近な話題の中で一般化や抽象化できる課題について考えるのが良い。鷲崎氏は一例として、下図のような課題を取り上げた。サンドイッチの食材を使って、他の料理を作ろうとしたときに何ができるのかを考える問題だ。考え方としては、サンドイッチで使用した食材を「分解」して、次に「共通」の食材で作れる料理を考え、最終的に「食パンでできる料理」という形に「一般化」して答えを出すだろう。このように日常の身近な課題とプログラミング的思考を絡め、「ものごとを分解して、本質を見極める思考を鍛えることが重要だ」と同氏は述べた。

プログラミング的思考を育むためには、最初は身近な話題で一般化、抽象化できる課題を考えるのが良い。画像は鷲崎氏が示した料理の例。
プログラミング的思考を育むためには、最初は身近な話題で一般化、抽象化できる課題を考えるのが良い。画像は鷲崎氏が示した料理の例。

 続いて、プログラミングを「知っている」段階になると、簡単なプログラムを組みながらプログラミング的思考に触れるのが良い。たとえば「Scratch」でできる一例(下図参照)として鷲崎氏は、「ネコが文字の黒い部分に触れたら、言葉を発する」という簡単なプログラムを紹介した。 「黒」という色をRGBの変数で指定すれば、「さまざまな色に触れるとアクションを起こす」という柔軟に扱えるプログラムに一般化することができる。プログラミングができるようになると、このような方法で「一般化」の概念を学ぶことができるというのだ。

一般化について、簡単なプログラムで考える。最初は色を使ってプログラムを組み、その後、変数を使えば一般化できることを学ぶ。
一般化について、簡単なプログラムで考える。最初は色を使ってプログラムを組み、その後、変数を使えば一般化できることを学ぶ。

 また鷲崎氏は、一般化や抽象化、モデル化などプログラミング的思考を下支えする論理的推論の養い方についても取り上げた。下図はその一例である。遠足の目的地までたどり着いた子に共通していた点は何か。はぐれた子は何が原因だったのか。背景から読み取れる共通点をもとにルールや原則を見い出したり、仮説を考えたりすることで論理的推論が養える。このように論理的推論についても、身近な課題から入っていくことが重要だと同氏は言う。

「論理的推論を養うときも、身近な話題から入ることが重要」と鷲崎氏。
「論理的推論を養うときも、身近な話題から入ることが重要」と鷲崎氏。

 また論理的推論についても、簡単なプログラムで鍛えることができると鷲崎氏。一例として、「Scratch」で風船が動くプログラムを作り、子どもたちがその動きを見ながらプログラムの規則性を予測して、同じように動く作品を作る取り組みを紹介した。最初は「◯秒待つ」くらいのルールしか見つけられないが、やっていくうちに、「最初は風船が手にあたっていたのに途中からあたらなくなったら、それは風船が移動したからである」という検討により、「風船が手にあたっているか、いないか」という条件の利用を考えられるようになっていくという。

論理的推論は簡単なプログラムで考える。
論理的推論は簡単なプログラムで考える。

 そして、プログラミングが「使える」段階にくると、いよいよ教科の学びの中でプログラミング的思考が養えると鷲崎氏は話す。たとえば算数の多角形では、内角の角度を変数で一般化し、多角形を描画するプログラムを作成するという具合だ。さらにプログラミングが「応用できる」段階になると、ゲームなどの作品づくりや具体的な課題解決の中でより発展的・創造的に養うことができる。このように、プログラミング的思考の育成については、「いきなり授業で身に付けよう」ではなく、身近な事象や課題に触れながら養うことが重要であるというのだ。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 神谷 加代(カミヤ カヨ)

     教育ITライター。「教育×IT」をテーマに教育分野におけるIT活用やプログラミング教育、EdTech関連の話題を多数取材。著書に『子どもにプログラミングを学ばせるべき6つの理由 「21世紀型スキル」で社会を生き抜く』(共著、インプレス)、『マインクラフトで身につく5つの力』(共著、学研プラス)など...

おすすめ記事

All contents copyright © 2017 Shoeisha Co., Ltd. All rights reserved. ver.1.0