見出し画像

プログラミング教育を考える(3) 「プログラミング」が必要か

 小学校でのプログラミング教育を考える上での最大のポイントは,やはり「プログラミング的思考」だろう。
 この奇妙な用語が登場したのは「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」の「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) 平成28年6月16日」である。
 はじめに出てくるのは

○  プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。

なのだが,「プログラミング的思考」とは何なのかの定義は書かれていない。
しばらくあとに,

○  そのためには、自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力が必要になる。
○  こうした「プログラミング的思考」は、急速な技術革新の中でプログラミングや情報技術の在り方がどのように変化していっても、普遍的に求められる力であると考えられる。また、特定のコーディングを学ぶことではなく、「プログラミング的思考」を身に付けることは、情報技術が人間の生活にますます身近なものとなる中で、それらのサービスを受け身で享受するだけではなく、その働きを理解して、自分が設定した目的のために使いこなし、よりよい人生や社会づくりに生かしていくために必要である。言い換えれば、「プログラミング的思考」は、プログラミングに携わる職業を目指す子供たちだけではなく、どのような進路を選択しどのような職業に就くとしても、これからの時代において共通に求められる力であると言える。

が出てくる。「こうした」が何を指すのかが不明瞭なのだが,今ではその直前の文をプログラミング的思考と定義しているようだ。(小学校プログラミング教育の手引き)
 ここで問題になるのは「記号」だろう。まず,「動き」を「記号」化するのである。これは,ある具体的な動きを抽象的な記号で置き換えることを意味する。このような抽象化はどのくらいの学年から可能だろうか。
 小学校の算数の教科書を見てみると,具体的な数を文字 a や x で表すのは6年生になってからである。つまり,高学年にならないとこのような抽象的な概念を操ることは難しいということである。
 したがって(かどうかわからないが),小学生向けのプログラミング言語(たとえば Scratch)では,手続きをひらがなで書いたブロックを並べていくだけでプログラミングができるようになっている。
 「記号化」を必須でないとすれば

自分が意図する一連の活動を実現するために、どのような動きを組み合わせたらいいのかを論理的に考えていくこと。

と短縮できることになる。
 この考え方に基づいて,たとえば,家庭科で味噌汁を作る手順を考えるというような案があり,実践もなされている。(「なぜ,いま学校でプログラミングを学ぶのか」141ページ)
 教室掃除のマニュアルつくりというのもある(同63ページ)
しかし,これは,わざわざ「プログラミング」と銘打つようなものだろうか。今まででもやっている,ごく普通の「手順を考えよう」ではないか。

 この「プログラミング的思考」には,もうひとつ重要な問題がある。それは,「記号の組合せをどのように改善していけば」という箇所である。「小学校プログラミング教育の手引き」では,これが「試行錯誤」という言葉になって頻繁に出てくる。

しかし,これがおおいに問題なのである。
これについては,次回に論じていこう。