小学校でのプログラミング教育が必修となってから、学校現場での試行錯誤が続いています。
この記事では、
- 情報系の学部出身
- 高校「情報」の教員免許所持
- 情報主任経験
- 小学校でプログラミング教育推進係
という私の立場から、小学校プログラミング教育の目的や教材、授業方法について解説していきます。
プログラミング教育の目的
コンピュータの仕組みの一端を知り、より主体的にコンピュータを活用する
文部科学省「小学校プログラミング教育の手引き(第三版)」には、以下のように書かれています。
あらゆる活動において、コンピュータなどの情報機器やサービスとそれによってもたらされる情報とを適切に選択・活用して問題を解決していくことが不可欠な社会が到来しつつあります。
プログラミングによって、コンピュータに自分が求める動作をさせることができるとともに、コンピュータの仕組みの一端をうかがい知ることができるので、コンピュータが「魔法の箱」ではなくなり、より主体的に活用することにつながります。
このように、コンピュータを理解し上手に活用していく力を身に付けることは、あらゆる活動においてコンピュータ等を活用することが求められるこれからの社会を生きていく子供たちにとって、将来どのような職業に就くとしても、極めて重要なこととなっています。
引用元:文部科学省HP「小学校プログラミング教育の手引き(第三版)」から一部抜粋
つまり、プログラミングを経験することによって、
普段活用しているコンピュータの仕組みの一端を知り、より主体的にコンピュータを活用することにつなげる
というのが、文科省が示している目的です。
ここからは私見を交えて述べていきます。
論理的思考力を高める
プログラミングは、論理的思考力を高めることにつながります。
プログラムは、論理的に組み立てていかなければ思ったような動作をさせることはできません。
プログラムのコードを書くことそのものではなく、させたい動作を論理的に組み上げていくことを通して、物事を順序立てて論理的に考えていくことにつながると考えられます。
試行錯誤と失敗から学ぶ
プログラミングを多少でもやったことのある方にはわかっていただけると思うのですが、プログラミングは一発で答えにたどり着くことはほとんど不可能に近いと思います。
プログラムを書きながら動作確認を行い、上手くいかなければどこが問題かを考えて修正し、再び動作確認…というサイクルを繰り返していきます。
このような思考過程は、プログラミング教育の大きな特徴といえるのではないでしょうか。
子どもたちの中には、「失敗は悪いこと」や「一発で答えを出すことがいいこと」などという考え方が少なからずあることが多いです。もちろん、プログラミング教育以外にもそれを改善するためのアプローチは必要ですが、プログラミング学習は、試行錯誤や失敗から学ぶことの大切さを学ぶ貴重な機会であると考えます。
プログラミング授業の進め方
ここからは、実際に現場でプログラミング教育をどのように進めていくのかという方法について書いていきます。多様な業務により疲弊する現場の負担を少しでも減らすために、私自身が取り組んでいることについても書いていますので、ぜひ参考にしていただければと思います。
まずは外部委託することを検討
まずは、自分で授業するよりも外部委託することを検討しましょう。私は学校内の情報主任として自ら外部委託を推進する立場でしたが、そうでない立場の場合は自校の情報主任などに打診してみましょう。新たな業務を増やすことは現場の教員への過度な負担となりかねません。また、それだけでなく、外部の専門的知識を持った方に依頼する方が学習効果も高いでしょう。
外部委託にはお金がかかりますから、なかなかすんなりとはいかないかもしれません。ただ、始めから何でもかんでも抱え込むのではなく、業務改善という意味でも、可能であれば外部委託というスタンスは大切なのではないでしょうか?
まず「アンプラグド」での導入を
「アンプラグドプログラミング」とは、パソコンなどの機器を使わないプログラミングのことです。プログラミングというのは、パソコンを使ってコードを入力するものをイメージする場合が多いかと思います。しかし、パソコンなどを使わなくてもプログラミング思考を学ぶことができます。特に、プログラミングを初めて学習する場合や、低学年の児童への指導に効果的だと思います。
例:プログラムにそって体を動かす
活動の例として、「プログラムに沿って体を動かす」活動を挙げます。黒板に、
手をたたく→ジャンプ→ジャンプ→しゃがむ
などの命令を順にマグネット等で貼り、その通りに子どもたちが動いてみるという活動をします。これは、プログラムに沿って動くという経験になります。慣れてきたら、子どもたちに自由に命令を追加させたり、順番を変えたりさせると楽しく活動できるでしょう。
日常動作をプログラムしてみる
もう一つの例として、「日常動作をプログラムしてみる」という活動を挙げます。上記のように、世の中にある色々なものはプログラムによって動いているということを確認した後、もう少し具体的にプログラムを考えていくという流れで進めると自然な導入ができるでしょう。
例えば「歯をみがく」ということをプログラムで考えてみます。授業では、紙やノートなどに子どもたちに書かせてみると色々な意見が出て盛り上がります。
- 右手で歯ブラシを持つ
- 前歯にあてる
- 左に1cm動かす
- 右に1cm動かす
- これを繰り返す
など、子どもたちから出た意見を共有しながら「それで本当に正しく動くのか」をやってみながら考えると授業が盛り上がります。これは用語を使えば、アルゴリズムを考えるという言い方もできるのですが、この過程そのものは実際のプログラミングに近いものがあると考えられます。
このように、パソコンなどの機器がなくてもプログラミング授業は可能です。むしろ、プログラミング学習を進めていく上で重要な導入といえるでしょう。授業にあたっての準備も、特別負担な量ではありませんし、校内で共有も可能です。
プログラミング教育に活用できる教材
ここからは、プログラミング教育を進めるにあたって活用できる教材を紹介します。
低学年にオススメ「Viscuit(ビスケット)」
実際にパソコンなどの機器を使って行うプログラミングとして、低学年におすすめなのは「ビスケット」です。
画像引用元:ビスケットviscuit ホームページ
個人的には、小学校低学年向けという印象です。難しい操作は一切なく、低学年の子どもでも感覚的に操作しながらプログラミングできるのが魅力です。タッチパネルに指で絵をかき、それを実際に動かすプログラムを作ることができるので、子どもにとっては何より楽しいです。楽しみながら学習できるのがとてもいいと思っています。
学年問わず取り組める教材「Scratch(スクラッチ)」
プログラミング教材の王道ともいえる教材「Scratch(スクラッチ)」は、ほとんどの教育関係者が一度は耳にしたことがあるのではないでしょうか?プログラミング教育における王道の教材と言っても過言ではないのではないでしょうか?
画像引用元:Scratch ホームページ
Scratch(スクラッチ)は、ブロックと呼ばれるパーツをつなぎ合わせることによってプログラミングを行うことができるツールです。スクラッチは、慣れさえすれば子どもにとってもさほど難しくないにもかかわらず、本格的なプログラミングを行うことができます。
難しいコードは一切なく、「もし〇〇なら」や「右に○○移動する」など、ブロックの命令は言葉で分かるようになっています。組み合わせることによって複雑なプログラミングも可能であり、大学時代に多少プログラミングを学んできた私からしてもかなり本格的だと感じます。
本格的にプログラミング的思考を働かせることができるので、始めに述べた「論理的思考力を高める」「試行錯誤により失敗から学ぶ」という経験を十分に積ませることができます。慣れるまでは丁寧にやり方などを教えてあげる必要がありますが、子どもが一度慣れてしまえば、どんどんと主体的にいろいろなプログラミングを子どもたち自身が試しながら驚くようなプログラミングをするようになります。子どもが自ら進めるようになるので、教員の負担も軽減します。
理想的な流れは「外部委託」から「校内」へ
これまでの経験から最も理想だと思う学習の流れは、
- 簡単なアンプラグドプログラミングを実施(可能なら外部委託)
- 外部講師による「ビスケット」や「スクラッチ」の操作方法や説明を実施
- ある程度子どもが操作に慣れたところで、定期的にプログラミング授業を実施(子どもが自主的に進める)
という流れです。この流れで進めることができれば、現場の教員の負担が過度に増えることなく、教育効果を最大化できると考えています。
まとめ
この記事が皆さんのお役に少しでも立てるのなら幸いです。最後までお読みいただきありがとうございました。