小学校プログラミング教育の懸念事項
小学校プログラミング教育の懸念事項
塾やIT系などの民間企業が展開する「プログラミング教育」は、思考力育成を謳ってはいるものの、プログラマー育成型の「プログラミング」に特化した「ただ作って終わる」ものが、ほとんどです。
また、教育学部の大学生による実習やボランティアなどが、プログラミングがどのように思考力育成に結び付くのかを理解しないまま、「方法」だけを児童に教えたりするような指導も多く聞かれます。
これでは、思考力はおろか創造力もつきません。ここはやはり、現場の小学校の先生による、授業の全体設計がなされた中で展開するプログラミング教育が、最も効果的で合理的ではないかと思います。
文科省からは、まずコンピュータに触れて「楽しく学ぶ」という体験が必要と示されています。ですので、簡単なプログラムで「触れてみよう」という流れが先にあっても良いかと思います。
コンピュータそのものに興味や関心を抱いてもらうのが、ねらいの一つでもあるため、プログラミングは「体験」が優先と言われています。理論が先だと、これまでの教科のように苦手意識が生まれる可能性があるからです。先にキャラクターを動かしたり、ロボットを動かしてみたり、「楽しく学ぶ」という体験が必要のようです。
ただ「低学年」では、そのプログラミングさえ難しいかと思います。どちらにしても、第一段階目でボリュームのあるもの、例えば、いきなり「地域プロジェクトの問題解決に着手する」などは難易度が高く、ついていけない児童が出てしまう可能性があります。
複数の段階(階層)に分けて、少しずつ取り組み、その段階ごとに理解度を確認することが重要です。簡単なもので、何度か繰り返し演習を重ねていくことを推奨します。
先生がやるべきこと
実際にデジタルデバイスを使用したプログラミングの場面では、児童の方が先行して前述した民間の教室などでプログラミング学習をしており、かなりの腕前をもつ児童も増えてきております。プログラミング検定試験までも誕生している状況です。
そのような中で、小学校の先生がそれらの児童を上回る程のプログラミング能力を習得して指導にあたる必要があるでしょうか。ここでは、小学校の先生がやるべきことを解説しながらまとめていきたいと思います。
基本的には、アンプラグドの指導方法と変わらない部分は、児童に「考えさせる」ことです。1つの課題が終わったら次ではなく、1つの課題に対して、次々と条件などを追加したり変更したりしながら深堀して思考力を鍛えていきます。
デジタルデバイスを使用したプログラミング授業を開始する場合は、初めて触る児童はいいですが、特に民間の教室でやってきた児童に対してはリセットという意味で、思考力、つまり考える力を付けるための学習だということを理解させる必要があります。
ゲームを自分で作れる楽しさも大事ですが、将来を見据えた時に、もっと大事なスキルが「論理的思考力」だということ、人生や仕事にはたびたび大なり小なり、答えが1つとは限らない問題にぶつかり、その都度、最適解を導き出しながら前に進まなくてはなりません。本来の目的をしっかり指導しましょう。
先生は、プログラム作成ツールの基本的操作は覚えるにしても、難解なプログラムを作成した児童が自分では発見できないバグを一緒になって探す必要も時間もありません。線引きしましょう。それよりも、受け持つ児童ひとり一人がしっかりと考え方を学べるように導いてあげる必要があります。
<先生がやるべき10のこと>
① プログラムでどんなことができるのか実行して見せて興味をひく(ゲーム、クイズ、図形描画、音楽など)
② プログラム作成ツールの使用解説(Scratchなら、画面解説や各ブロックの機能と使い方など)
③ 簡易プログラムを実行しながら順を追って何をしているのか見せながら解説していく
④ 児童と一緒に簡単なプログラムを作成する。全員が完成できるまで丁寧に指導する
⑤ ある程度全員が慣れるまで何本かプログラムを用意しておき、同様に児童と一緒に作成(習うより慣れろ)
⑥ 中程度ボリュームのプログラムを写経型で写し書きさせ、各ブロックの挙動や全体像などを理解させる
⑦ 児童がうまくできない時の対処方法(デバッグ手法[1])を指導する
⑧ 自分で作成したプログラムのバグは、自分で修正箇所を発見して修正するまでが課題だと指導する
⑨ ベースとなるプログラムに対して、処理や条件を追加課題として与えていき、プログラムを修正・拡張させる
ここで重要なことは、すぐに質問したり友達に答えを求めたりしないこと。自分で考え抜くことが重要です。
⑩ フローチャート(設計図)を配布し、どのようにプログラムするかを考える時間を作る。
その後、実際に作成に入って完成したら正解と照合してバグがないか検証させる。
[1] デバッグとは間違いを修正することで、バグ(bug)を取り除く(de)からなる単語をつなげて「debug(デバッグ)」と言います。
プログラミング教材と授業展開
プログラミング教材
① ビジュアル・プログラミング
プログラムに必要な要素をグラフィカルにパーツ化し、ドラッグ&ドロップのマウス操作で簡単にプログラミングできるようにしたもので、代表的なツールには「Scratch」があります。低学年:Scrtch.Jr が、高学年:Scrtch が向いています。
② フィジカル・プログラミング
リアルなモノ(ロボットやドローンなど)をパソコンやタブレットと接続して、ビジュアル・プログラミングなどで命令を出して、実際に動かしてみるものです。
Scratch で作成したプログラムに児童が触れる2つのパターン
① 教員が Scratch で作成した「実行画面」に児童が触れる
例えば、クイズプログラムに児童はただ、数字を入力して解答するだけのものであったり、「プログラムが途中までできているもの」や「間違えているプログラム」を用意し、設計書をもとに児童に追記させたり、修正させたりさせるなど。
② 児童がScratchでプログラミングを実施する
題材(設計書)があり、児童がその通りにプログラミングしていく方法や、自由発想によるプログラミング(夏休みなどの課題研究、自由研究など)など。
プログラミング教育の授業展開
① プログラムの2つのパターン
本来、プログラムは何らかの入力に伴い処理を実行するものと、入力を伴わない定期実行型が存在します。誰かに操作や入力をしてもらい、処理が継続していくプログラムで、「利用者」の存在を想定して作成されるもの。
例えば、事務員がデータを画面に入力して請求書をプリントアウトするなどです。これを児童が扱うなら、互いにオリジナルのクイズをプログラムで作成して、それを今度は利用者として互いのクイズに解答するなどが考えられます。入力を伴わない自己完結するプログラムには、月次処理として設定した時刻にプログラムが自動実行し、バックアップを取るなどです。
今回のような小学校で扱うビジュアル・プログラミングでは、入力操作によって結果が異なるようなクイズやゲームプログラムと、実行ボタンを押せば、一発で図形が描画されて終了するプログラムがあるといった違いです。
考慮しなければいけない点が多いという意味では、「利用者」を想定したプログラムの方が難易度は高いので、まずは、自己完結型プログラムから実施すると良いかと思います。
② プログラミング教育の2つのパターン
・教科に組み込んだプログラミング的思考力の育成
国語や算数の単元にプログラミング的思考を組み込んだ授業
・教科以外のプログラミングを通して思考力を育成
総合的な学習の時間で実施する、思考力だけではなく、プログラミングにも重点を置いた授業
▼Amazonおすすめ本
おすすめ記事
-
小学校プログラミング教育とは
プログラミング教育必修化 今回の学習指導要領改訂(2020年度から小学校で完全実施)による、小学校での教育の大きな変更点は 「外国語を、小学校5・6年生から教科とする」「道徳を教科とする」「プログラミング教育を導入する」 […]
-
プログラミング的思考とは
情報活用能力とは 学習活動において、必要に応じてコンピュータ等の情報手段を適切に用いて、情報を得たり、整理・比較したり、発信・伝達したり、保存・共有したり、といったことができる力です。 こうした情報活用能力を育むためには […]
-
プログラミング的思考力育成のその前に
プログラムとは何か プログラムとは、コンピュータ(パソコンやスマートフォンなど)にして欲しいことを、プログラム言語を使って「命令」という形で作成した機能をいいます。 その機能の集合体、完成したものがアプリケーション(アプ […]
-
プログラミング的思考力育成方法の提案
プログラミング的思考力育成方法 プログラミング的思考能力は以下の6つになります。 ものごとを一旦分解してから整理する能力(分解、分類、共通化) ものごとを単純化して重要な部分を捉える能力(抽象化、メタ認知) やるべきこと […]
小学校プログラミング教育とは
プログラミング教育必修化 今回の学習指導要領改訂(2020年度から小学校で完全実施)による、小学校での教育の大きな変更点は 「外国語を、小学校5・6年生から教科とする」「道徳を教科とする」「プログラミング教育を導入する」 […]
プログラミング的思考とは
情報活用能力とは 学習活動において、必要に応じてコンピュータ等の情報手段を適切に用いて、情報を得たり、整理・比較したり、発信・伝達したり、保存・共有したり、といったことができる力です。 こうした情報活用能力を育むためには […]
プログラミング的思考力育成のその前に
プログラムとは何か プログラムとは、コンピュータ(パソコンやスマートフォンなど)にして欲しいことを、プログラム言語を使って「命令」という形で作成した機能をいいます。 その機能の集合体、完成したものがアプリケーション(アプ […]
プログラミング的思考力育成方法の提案
プログラミング的思考力育成方法 プログラミング的思考能力は以下の6つになります。 ものごとを一旦分解してから整理する能力(分解、分類、共通化) ものごとを単純化して重要な部分を捉える能力(抽象化、メタ認知) やるべきこと […]