【小学校】プログラミング教育のねらいは「興味を持つこと」【分かりやすく解説】
- プログラミング教育をやらなきゃいけないのは分かっているけど、いったい何をすればいいの?
- 本を見ても意味が全然わからない。なんでプログラミング教育をやるの?
と悩んでいませんか?
まだ始まったばかりのプログラミング教育ですが、どこから手をつければいいのか分からずに悩んでいる先生が多いことかと思います。
実は、プログラミング教育は目的を理解すればそこまで複雑なものではありません。
プログラミング教育の目的はプログラミングを「学ぶ」ではなく、プログラミングに「興味を持つ」ことです。
私は、情報主任として小学校全体のプログラミング教育の推進を行ってきました。
最初は右も左も分かりませんでしたが、最終的には1年生から6年生までのプログラミング教育の年間指導計画を作成することができました。
全学年の取り組みを行う自治体はそう多くはないことかと思います。
この記事では、プログラミング教育を行う「理由」「目的」について分かりやすく紹介していきます。
この記事を読めば、プログラミング教育を進めていくうえで必要なことがすぐに分かります。
ぜひ、最後までご覧ください。
プログラミング教育導入の経緯
どうしてプログラミング教育は導入されることになったのでしょうか。
導入の経緯について簡単に触れておきたいと思います。
情報化の進展により社会や人々の生活が大きく変化し、将来の予測が難しい社会においては、情報や情報技術を主体的に活用していく力や、情報技術を手段として活用していく力が重要であると指摘されています。
文部科学省『小学校プログラミング教育の手引(第三版)』
大きく3つの要素に分けてみます。
- 情報化の進展により将来の予測が難しい
- 情報や情報技術を主体的に活用していく
- 情報技術を手段として活用していく
情報化の進展により将来の予測が難しい
近年目まぐるしいほど情報化が進展してきました。ついこの間までガラケーを持っていたのに、今では誰もがスマートフォンを使用しています。
たった数十年でここまで大きく進展を遂げると予想できた人はいるでしょうか。
今は「メタバース」という新しい情報技術も出てきており、ますます情報化が進むと言われています。
私たちの社会はまさに予測不可能な時代を迎えていると言えるでしょう。
情報や情報技術を主体的に活用していく
そんな世の中だからこそ、情報技術を主体的に活用していくことが求められます。
スマートフォンが流行っていた時、「私はガラケーを使い続ける!」と宣言していた人は周りにいませんでしたか?
その人たちは今もガラケーを使っているでしょうか?
ほとんどの人はスマートフォンに乗り換えていることかと思います。
新しい情報技術を恐れるのではなく、積極的に活用しようとすることが大切です。
学校現場は未だに紙文化が根強く、コンピュータを使うことに抵抗のある教員もいます。
しかし、それでは新しい情報化社会に取り残されてしまいます。
紙がダメだとは言いません。
しかし、コンピュータを活用することが必須になってきているということは理解しておく必要があります。
情報技術を手段として活用していく
コンピュータをただ使うのではなく、手段として活用していくことが求められています。
これまでは、ノートをとったり、壁新聞にまとめたりして授業を進めてきました。
その学び方の選択肢の一つに情報技術(コンピュータ)を増やしましょうということです。
例えば、体育の実技を撮影し、動画で振り返ったり、調べたことをパソコンでまとめたりすることなどが考えられます。
プログラミングに限らず、タブレットやPCなど情報技術を積極的に活用することで、将来、問題を解決するときに豊富な選択肢を持つことができます。
プログラミング教育の目的とは
そもそもプログラミング教育の目的とは何でしょうか。
文部科学省より出されている「小学校プログラミング教育の手引」から観点ごとに説明がされています。
少し、分かりづらいところもあるため、かなりかみ砕いて説明しきたいと思います。
知識・技能
身近な生活でコンピュータが活用されていることや、問題の解決には必要な手順があることに気付くこと。
文部科学省『小学校プログラミング教育の手引(第三版)』
文部科学省によると知識技能は二つのねらいがあることが分かります。
- 日常生活にコンピュータが活用されていることに気付く
- 問題の解決には必要な手順があることに気付く
日常生活にコンピュータが活用されていることに気付く
私たちが普段使っている電化製品のほとんどはコンピュータが搭載されていることをご存じですか?
まずは、日常生活の中にプログラミングされた製品がたくさんあることに気付くことが大切です。
たとえば、冷蔵庫にも簡単なコンピュータが搭載されています。
- ドアを開けっぱなしにしているとアラームが鳴る
- 常に同じ温度を保つように調整している
- 水を補充すると自動で氷を作ってくれる
このようにあらかじめコンピュータに指示しておくことで、人間が操作しなくても状況に応じてコンピュータが操作してくれています。
コンピュータが自動で調節してくれるものはすべてプログラミングされたコンピュータが搭載されています。
冷蔵庫以外にも、電子レンジ、洗濯機、加湿器、エアコン、テレビ、コーヒーメーカーなど家庭にあるほとんどの家電が該当します。
日常生活にあるありとあらゆるものがプログラミングされていることに気付くことで、プログラミングの大切さ、重要性を実感することができます。
ただ、PCを使って楽しい学習ではなく、子供たちの中でこの勉強は将来の役に立ちそうだと感じさせることが大切になります。
問題の解決には必要な手順があることに気付く
洗濯機を例に考えてみましょう。
洗濯ものをきれいに洗うには必要な手順があります。
- 洗濯物を洗濯機に入れる
- 洗剤、柔軟剤を投入する
- 洗いをする
- すすぎをする
- 脱水する
人間からすれば、洗った後すすいで脱水するのは考えなくても想像つきます。
しかし、コンピュータはそうはいきません。
一つ一つ必要な手順を指示しなければ思った通りに動くことはできません。
「ちょうどよく」とか「いい塩梅で」といった指示が理解できないのがコンピュータの難しいところです。このコンピュータ特有の難しさが手順の必要性に気付くきっかけとなります。
人間だと、言葉が足りなくても前後の文脈で補うことができますが、コンピュータはそうはいきません。プログラミング教育を通して手順の大切さをに気付いていきます。
ここでお勧めしたい本が「くらしのなかのプログラミング」です。
普段のくらしのなかでどのようなプログラミングがあるか子供向けに分かりやすく説明しています。
これを見せれば「知識・技能」の内容はは十分といってもいいくらい内容が充実しています。
買って絶対に損はしませんよ!
思考・判断・表現
思考・判断・表現については以下のように述べられています。
発達の段階に即して、「プログラミング的思考」を育成すること。
文部科学省『小学校プログラミング教育の手引(第三版)』
ここで大切なのは「プログラミングを習得すること」が目的ではないということです。
プログラミングを動かしていく過程のなかで、「プログラミング的思考」を身に付けることが一番の目的です。
プログラミング的思考は大きく5つにまとめることができます。
- コンピュータをどのように動かすか意図を持つ
- コンピュータの動きの順序を考える
- コンピュータが分かりやすいような命令に置き換える
- 命令の組み合わせを考える
- 命令の組み合わせを改善し、試行錯誤する。
冷蔵庫を例にしながら考えてみましょう!
コンピュータをどのように動かすか意図を持つ
コンピュータをどのように動かしたいか、どんな問題を解決してほしいのかを「計画」します。
ただ、目的もなくプログラミングをしているのでは、意味がありません。
プログラミングで「何をしたいのか」をワークシートに書くなどして明確にします。
ドアが開きっぱなしになっていたら電気代がもったいない!
開きっぱなしになっていたらアラームが鳴るようにしたい!
- 日常生活で何か困ったこと・悩みはないか
- 学校生活でこれがあったら便利!というものはないか
- ロボットをゴールまで最短距離で動かすにはどうすればよいか
- 思った通りにロボットを動かすにはどうすればよいか
コンピュータの動きの順番を考える
コンピュータに指示するには、順番を考えることが大切です。
「まず~~して、次に~~~して、最後に~~~する」というように指示する順番を計画します。
- ドアが開きっぱなしだったらアラームを鳴らす
- ドアを閉めたらアラームを止める
コンピュータが分かりやすいような命令に置き換える
当然ですが、コンピュータに言葉で指示しても理解してもらえません。
コンピュータが分かりやすいような命令にする必要があります。
ここで出てくるのがプログラミングです。
しかし、プログラミングは英語で書かれており、小学生で書くのは至難の業です。
そこで小学生向けに開発されたのが「ビジュアルプログラミング」です。
ビジュアルプログラミングだと「スクラッチ」が有名です。https://scratch.mit.edu/projects/editor/?tutorial=getStarted
「もし~なら」「〇回くり返す」といったプログラミングの操作を日本語で分かりやすく指示することができます。
- ドアが開きっぱなしだったらアラームを鳴らす
- ドアを閉めたらアラームを止める
命令の組み合わせを考える
命令を考えたら、その組み合わせを考えます。
今回の例で考えると、「タイマー」「アラーム」「ドアの開け閉め」の組み合わせを考える必要があります。
- もしドアが開いたら、タイマーを起動する(ドアとタイマーを組み合わせる)
- もし1分間ドアが開いていたら、アラームをずっと鳴らす(タイマーとアラームを組み合わせる)
- もしドアが閉められたらアラームを止める(ドアとアラームを組み合わせる)
命令の組み合わせを改善し、試行錯誤する。
最後に、命令の組み合わせを改善し試行錯誤します。プログラミング用語でいう「デバッグ」です。
プログラミングをするうえで、この試行錯誤することが一番重要です。
プログラミングを作成して一発でうまくいくことはほとんどありません。
最初に意図した通りに動かない場合、どこに問題があるのか考え改善していくことがプログラミングをするうえで一番大切になってくるポイントです。
先ほど例に挙げた冷蔵庫のプログラミングですが、一つ間違いがあります。
- もしドアが開いたら、タイマーを起動する
- もし1分間ドアが開いていたら、アラームをずっと鳴らす
- もしドアが閉められたらアラームを止める
何が間違っているか気付きましたか?
正解は「タイマーをリセットしていない」です。
最初にドアを開けてからタイマーが起動し続けているため、二回目以降、ドアを開けっぱなしにしてもアラームが鳴らなくなってしまいます。
計画通りにいかなかったとき、問題がどこにあるか原因を追究し、試行錯誤を繰り返しながら改善を繰り返していきます。
先ほどのプログラミングを改善すると、
- もしドアが開いたら、タイマーを起動する
- もし1分間ドアが開いていたら、アラームをずっと鳴らす
- もしドアが閉められたらアラームを止め、タイマーをリセットする
タイマーをリセットすることで、2回目以降もアラームが鳴るようになりますね!
このように試行錯誤を繰り返しながらプログラミング的思考を育んでいきます。
学びに向かう力、人間性等
発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくりに生かそうとする態度を涵養すること。
文部科学省『小学校プログラミング教育の手引(第三版)』
プログラミングが日常生活にあふれていることに気付き(知識・技能)、プログラミング的思考を身に付けていく(思考・判断・表現)中でコンピュータを活用しようとする態度を身に付けます。
具体的には以下の2つの態度を育成すると思っておくと考えやすいです。
- 日常生活の問題をコンピュータを使って解決しようとする
- 情報モラルを育成する
日常生活の問題をコンピュータを使って解決しようとする
コンピュータで問題を解決するとは具体的にどんな場面が考えられるでしょうか。
例えば、私が担任していたクラスでは、以下のような取り組みを子供たちが自主的に取り組んでいました。
- イラスト係が描いてほしい絵のリクエストを募るためにGoogleフォームでアンケートを採る
- プログラミングキット(MESH)を使って朝の検温チェックを行う
- 時間割係が明日の時間割をクラスのGoogleカレンダーで周知する
- 持ち物係が明日の持ち物をGoogleカレンダーで知らせる
- チェック係がQRコードを用いて提出物の管理を行う
もちろん、教師の手助けが必要な場面はいくつかありますが、基本的には子供達が自分で考え実行していました。
このように、効率的に作業したり、問題を解決したりする手段としてコンピュータを用いることで可能性がグンと広がっていきます。
今は些細な効率化でも、大人になったときに、これらの経験が財産になることは間違いありません。
コンピュータを使うのはなんとなくわかるけど、プログラミングを使うのって一部のエンジニアの人だけじゃないの?
確かに、プログラミングを使うのは専門的な職業の人だけかと思うかもしれません。
しかし、どの職業でもプログラミングを使うことはあり得ますし、私たち教員もプログラミングを用いて業務を効率化することは可能です。
クラス替えや席替え、在庫管理程度であれば、簡単なプログラミングを作るだけでボタン一つで作業が終わります。
事実、私もスケジュールをGoogleカレンダーで管理したり、クラス替えをVBAというプログラミングを用いたりすることで業務効率化をしています。
子どもたちもこれからの社会を生き抜くうえで、プログラミングを用いて問題を解決することが当たり前の時代になるといってもいいでしょう。
そのために小学生のうちに「プログラミングに興味を持つ」ような環境を作ってあげる必要があるんです。
情報モラルの育成
問題を解決するための手段としてコンピュータを活用していくうえで、情報モラルの育成は欠かせません。
情報モラルについては文部科学省HPにてこのように記述されています。
情報モラルとは情報社会で適正な活動を行うための基になる考え方と態度ととらえることができ、その内容としては、個人情報の保護、人権侵害、著作権等に対する対応、危険回避やネットワーク上のルール、マナーなどが一般に指摘されている。
文部科学省HPhttps://www.mext.go.jp/b_menu/shingi/chousa/shotou/056/shiryo/attach/1249674.htm
簡単に説明すると、
- 個人情報の保護(個人情報を流出しないように気を付ける)
- 人権侵害(ネット上の言動が誹謗中傷、いじめ、差別につながることを理解する)
- 著作権に対する対応(勝手に他人の制作物をコピーしたり、配信したりしてはいけないことを理解する)
- 危険回避(インターネット上の詐欺やトラブルを回避する術を身に付ける)
- ネットワーク上のルール、マナー(上述の内容や、インターネットでも実世界と同様のルールとマナーが存在することを理解する)
といったことをしっかりと理解する必要があります。
これはプログラミング教育で教えるだけでなく、普段の授業の中で適宜指導していきます。
まとめ
以上、プログラミング教育導入の経緯と目的でした。
簡単に内容をおさらいしたいと思います。
- 情報技術はどんどん進展しているから、コンピュータを使えるようにしておく必要がある
- 身近な生活にプログラミングされたものがあることに「気付くこと」(知識技能)
- 「プログラミング的思考」を身に付けること(思考・判断・表現)
- 「コンピュータを活用しようとする態度」を育てること(学びに向かう力、態度)
少しでもプログラミング教育について理解を深めていただければ幸いです。
他にもプログラミング教育の実践例について紹介したいと思うので是非ご覧ください!