【プログラミング教育の基礎2】思考の要素を「粉ふきいも」から考える…関西大・黒上晴夫教授

 次期学習指導要領で注目される、小学校での2020年からのプログラミング教育の導入。その第一人者である関西大学総合情報学部・黒上晴夫教授が「プログラミング教育」の基礎をわかりやすく解説。

教育・受験 先生
図2
  • 図2
  • 小学館:「プログラミング教育導入の前に知っておきたい思考のアイディア」
 次期学習指導要領で注目される、小学校での2020年からのプログラミング教育の導入。その第一人者である関西大学総合情報学部・黒上晴夫教授が「プログラミング教育」の基礎をわかりやすく解説。

本書(*1)におけるプログラミング的思考



*1 「プログラミング教育導入の前に知っておきたい思考のアイディア (教育技術MOOK)」発行:小学館

 学習指導要領を作成するに当たって、プログラミングについて検討する会議が設置された(「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」)。その議論の取りまとめ(*2)で用いられた言葉が、プログラミング的思考である。

*2「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」2017.6(http://www.mext.go.jp/b_menu/shingi/chousa/shotou/122/attach/1372525.htm)

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

 同時に、小学校でのプログラミング教育は、プログラムの書き方を覚えることが目的ではないとも強調されており、また、求められる知識・技能としては、身近な生活でコンピューターが活用されていることや、問題の解決には必要な手順があることに気付くことだと記されていることを受けると、ただ体験としてプログラムを介してモノを動かしてみる体験をするだけでは十分だとは言えない。

 大事なのは、その背景に、どのような指令(自分の意図)があり、それが何を操作しているのかについての感覚であり、それを思ったとおりに操る思考である。そして、それを教科の学習や日常生活とつなげることも欠かせない。

 むしろ、教科の学習や日常生活におけるさまざまな思考を、より論理的にしながら、それがプログラミングにも活かせるようにすることを考えたい。このような考え方をもとに、本書をつくった。

プログラミング的思考の要素



 では、どのような思考を扱えば、プログラミングにつながるのか。以下の3つが基本となる。

1. 順序(順次):ものごとを手順としてとらえて実行すること(プログラムは、上から下に順序よく処理を進める)

2. 場合分け(分岐):状況によって次の行動を変えること(プログラムは条件が揃ったときに該当する処理を進める)

3. 繰り返し(反復):目標が達成されるまで同じ動作を続けること(プログラムは、条件が揃うまで処理を繰り返す)

 これら3つの要素は、日常生活の中にいくらでもある。あまり意識してはいないが。

 たとえば、じゃがいもをゆでるときは、まずじゃがいもを洗う。次に皮をむく。料理によっては皮のままゆでる。切ってからゆでたり、ゆでてからつぶしたり切ったりする。何をつくるかにあわせて、手順を決めて実行する。

 この中に、すでに分岐が含まれていた。その料理は皮が付いているままか、皮をむいた料理か、これは分岐である。ゆでる前に切るか、後から処理するかも分岐である。

 そして、ゆでているときには反復がある。柔らかくなっているかどうかを、竹串を刺して確かめる。まだ固ければ、ゆでる処理を続ける(たとえば図2)。

 こんなことを、料理をしながら考えたりはしない。自動的にやっている。しかし、レシピを書くことになると、この手順を意識しなければならなくなる。それがうまい人のレシピは、わかりやすい。そう、レシピはある種のプログラムなのだ。

 もちろん、このようなことは教科内容についても当てはまる。

図2

 さらに、プログラミングに関わる学習では、プログラムを実行することが欠かせない。実際にプログラムを実行してみて、想定どおりの流れになっていることを確かめたり、逆に想定していないことが起こって修正したりすることで、プログラムの質が高まる。本書の事例では、日常的な出来事を作業の流れや考える手順として捉えて、それを図やフローチャートに表すものが多い。そのような学習では、それがその作業や手順を正しく表しているか、よりよい表し方はないか、その流れで実際に正しく結果が出せるか、などを検討する。つまり、考え出した流れや手順を、自分たち自身で実際にたどるのである。その意味で、プログラミング的思考においても、「実行」はとても重要だ。

 もう1つ、要素がある。「相互作用」とでも言おうか。それは、誰かが何かをすることが別の何かに影響を与えるという感覚である。本の紹介文をつくって下学年に読んでもらう活動を考えよう。それによって、本の貸し出し数が変わるかもしれない。通常は、紹介文をつくるところまでしか授業では扱わない。しかし、その結果を追跡すると、自分の活動がほかの人の活動に影響を与えることが実感できる。

 このような見方は、これからのプログラミングには不可欠な要素だろう。これは、本書の事例では、バスケットボールの作戦がそれに近い。自分や他者の動きが次の動きに影響を与えることを知り、「柔軟性が必要なことを学ぶことができた」とある。

プログラミング教育導入の前に知っておきたい思考のアイディア (教育技術MOOK)

発行:小学館

<著者:黒上 晴夫>
関西大学総合情報学部教授。米国や豪州における授業研究を元に、2012年に「シンキングツール~考えることを教えたい~」を無料でWeb公開。以来、思考スキル・思考ツールの活用研究をリードしてきた。学習指導要領改訂に関わる各種会議委員。
<著者:堀田 龍也>
東北大学大学院情報科学研究科教授、博士(工学)。東京都小学校教諭を皮切りに、情報社会に生きていく子どもたちのための授業の在り方を追いかけてきた。文部科学省参与(併任)。中央教育審議会情報ワーキンググループ主査。小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議主査/学校におけるICT環境整備の在り方に関する有識者会議座長。

《リセマム》

【注目の記事】

特集

編集部おすすめの記事

特集

page top