小学校のプログラミング教育で何を学ぶの

2020年4月から、小学校でプログラミング教育が始まります。ご存じの方も多いと思いますが、一体何を、どう教えるのでしょうか? そもそも、なぜプログラミングを学ばなければならないのか、そして、先生たちは教えられるのか? さまざまな疑問が渦巻いていることと思います。

コーディングが目的ではありません

プログラミングというと、プログラミング言語を使ってプログラムをかく、皆様にもおなじみの「コーディング」のイメージが強いのですが、小学校のプログラミングでは、プログラミング言語を覚えることが目的ではありません。

では、何が目的かというと、コンピュータを使ったプログラミングの体験を通して、将来どんな職業に就いても時代を超えて普遍的に求められる力「プログラミング的思考」等を育成するためとのことです。

プログラミング的思考??

プログラミング的思考? そう言われても何のことかわかりません。文科省の「小学校プログラミング教育の手引き」によると、

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

とあります。少し具体的に見てみましょう。

どう問題にアプローチするか、考え方を考える

教科書に採用されたプログラミング例としては、5年生算数の単元「円と正多角形」「コンピュータを使って正多角形をかく」があります。単元全体の目標は「正多角形の意味や性質について理解する」ことで、この目標を達成するための手段として、プログラミングの体験を用いるわけです。

コンピュータを使って、正多角形をかく方法は1つではありません。どういう動きをどんな順番で組み合わせたら、より簡単に少ない手順で正多角形が描けるのか、必要な動きを分析・分解し、並べ替え、試してみます。

限られた条件のなかで、どう実行するかを考える必要もあります。たとえば斜めに動かしたいと思っても、上下左右に動かす動きしかなければ、右へ3歩左へ1歩など、2種類以上の動きを組み合わせなければなりません。コンピュータは忖度などということは行いませんから、指示した通りの動きしかしてくれません。思い通りに動かないときは、指示が間違っていることになります。そこで、どこが間違っているのか理由を考え、順番や命令を修正し、何度も挑戦します。この試行錯誤の過程が大切だといわれています。

先の見えない時代に、あらかじめ決まっている答えを覚えるのではなく、問題にアプローチする方法をあれこれ考えながら、答えの決まっていない答えを探す。トライ&エラーを繰り返して、自分なりに最適の答えを見つけていく力。そして、今の時代に必須のITというツールを使ってそれを実現する力。これが未来を担う子供たちにプログラミング教育を通して培っていきたい、学んでほしいものではないかな、と思います。