「プログラミング的思考」はどのように教育現場に生きるのか。
2020年からプログラミングが小学校でも必修化される。そして、文部科学省はプログラミングをする技能よりも、「プログラミング的思考」を推している。
「プログラミング的思考」をキーワードにGoogleで検索してみるとこれほどの記事・ウェブサイトがヒットする。(3月31日時点)
しかし、教育現場ではどのようにすればよいのか、というところで戸惑っている人ばかりだ。シンプルにプログラミングをすることも、プログラミング的思考に当てはまるが、そうでないものも当てはめられる。
文部科学省に集まった有識者会議では、プログラミング的思考の定義を下記のようにまとめている。
「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」
(小学校プログラミング教育の手引(第二版)より)
まず、第一印象でこの文章を読んだときに思いついたのは「ダンス」
多くの子どもたちで、ダンスの練習をするときには、必ず「ぐるぐる」や「真ん中右左ポンポン」など、体の動きを言葉で表現して、全員でその組み合わせを音楽に合わせて実現していく、こういう力もプログラミング的思考にあてはまる。
そして、「料理」。料理をつくるときに手順を言語化して、その並び順に注意を払う。そうでなければ食べられるものに仕上がらないからだ。
体育でも家庭科でも「プログラミング的思考」は実現できる。広い意味での「活動」をことばで表現し、その組み合わせと順番を考えていくことなのだ。
プログラミングは当然のことながら、「プログラミング的思考」にあてはまる。プログラミングは下の3つの点で、ダンスや料理よりも優れている。
1.ことばでの表現と記録が同じ。
2.すぐにどんな活動になるかを確かめられる。
3.何度でもやり直せる。
例えば広く活用されている「Scratch」は、その手順がひと目でわかりやすくなるプログラミング言語(アプリケーション)だ。
1.ことばでの表現と記録が同じ。
レシピを書き残しておくためには料理とは別に、そのために書かねばならず、ダンスのやりかたを書き残すためにもそれを書くという一手間を加えなければならない。
しかし、プログラミングはそもそも書かねば動かすことはできないので、「ことばによる表現」がそっくりそのまま「記録」になる。
例えば、Scratchだったら、更にわかりやすく表現と記録が残り、カテゴリごとにブロックの色が変わっていて、例えば動きだったら青、見た目だったら紫、音だったらピンク、といったようにそれぞれがどんな機能を果たすのかが一目瞭然となっている。
2.すぐにどんな活動になるかを確かめられる。
ことばにした手順をすぐにやってみることができるのも強みだ。料理もダンスもキッチンや食材の準備、広い場所や鏡が必要で確かめるためには少々の時間がかかる。
しかし、プログラミングはコンピュータさえあればすぐに手順をことばにして書き、すぐに実行することができる。
3.何度でもやり直せる。
ダンスは何度も試すことができるが、料理は作ったらもう一度試すまでに時間が空いてしまう。
しかし、プログラミングは何度も書き直し、何度でもやり直すことができる。試行錯誤をいつでも、すぐに、なんどでも繰り返せることがプログラミングの他でもない強みなのだ。
プログラミングは「すぐにできる」ことが大変な強みなのだが、逆に「時間が早すぎる」ことは、「すぐに多くを求める」ことにつながってしまうかもしれない。
例えばキャンプでカレーをつくるときにはみんなでそのための準備をして、水をくんできて、火を起こして、やっとの思いで食べる事ができるから美味しいということもある。ダンスも運動会のためにじっくり準備してきたからやりきった達成感も大きい。
プログラミングも、目的をもったプロジェクトに設計するとじっくりと細かい試行錯誤の繰り返しで長い時間をかけてやりきる体験につなげることができる。
単純にプログラミングのやり方を教えるでもなく、ただ料理をするでもなく、「なにかのプロジェクト」のなかで試行錯誤をすることがプログラミング的思考を学びにいかし、大きな喜びと達成感を得るための秘訣なのかもしれない。