さぁプログラミング教育を考えよう

 次期学習指導要領の解説が出ました.次期学習指導要領におけるプログラミング教育については次期学習指導要領とプログラミング教育に書きましたが,解説では,答申まで使われていたプログラミング的思考という言葉も復活しているので,改めて「プログラミング教育」の読み取りをしたいと思います.

 教科等ごとの記載に踏む込むと時間がかかりそうなので,とりあえずは総則の部分の記載を取り上げて,プログラミング教育のあるべき姿を書いてみようと思います.・・・・な〜んて,ただの私の私見を書くだけですがw

学習指導要領におけるプログラミング教育

 繰り返しになってしまいますが,やはりきちんと押さえておきたいのは学習指導要領の本文です.

第3 教育課程の実施と学習評価
1 主体的・対話的で深い学びの実現に向けた授業改善
(3) ・・・あわせて,各教科等の特質に応じて,次の学習活動を計画的に実施すること。
イ 児童がプログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動
(小学校学習指導要領 p.8)

 プログラミング教育は,「コンピュータに意図した処理を行わせる」ために必要な論理的思考「力」を身につけるために行う学習活動です.この文を素直に解釈すれば,「コンピュータに意図した処理を行わせる」ことを意識することが重要であると考えます.
 この点をはずしたら,それは国語でも算数でも普通に教えるべき論理的思考力の育成になり,わざわざプログラミング教育なんていう言葉を持ってくる必要はないでしょう.プログラミング教育は教科ではありませんが,プログラミング教育の「見方・考え方」は,他の教科等とは異なるものであるはずです.もし,いやいやそれでいいんだよということなのであれば,多くの先生方を不安にさせている「プログラミング」という言葉を使う必要はないですよね.

プログラミング的思考

 小学校学習指導要領解説では,上記の活動で育む力を「プログラミング的思考」と言い換えて(実際は上記が言い換えではありますが),次のように定義しています.

子供たちが将来どのような職業に就くとしても時代を越えて普遍的に求められるプログラミング的思考(自分が意図する一連の活動を実現するために,どのような動きの組合せが必要であり,一つ一つの動きに対応した記号を,どのように組み合わせたらいいのか,記号の組合せをどのように改善していけば,より意図した活動に近づくのか,といったことを論理的に考えていく力)
(小学校学習指導要領解説 p.85)

 ここだけを抜き出すと,様々な活動を論理的に組み立てる力であり,コンピュータとは関係ない活動もすべて含まれているように読むことができます.時代を超えて普遍的に求められる思考ともあり,コンピュータがない時代,そして予測できない未来でも必要な力としている点でも,コンピュータとは切り離したより広範的な力であると考えられます.

 ただし,続けて

を育むため,小学校においては,児童がプログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を計画的に実施することとしている。
(小学校学習指導要領解説 p.85)

とあるように,この力を育むための少なくとも小学校において求められる活動は,学習指導要領にあるとおり,プログラミングの体験と,コンピュータを思ったとおりに動かすための力を獲得する学習活動であるとしている点を忘れてはいけないでしょう.

 「プログラミングの体験といっても,別にコンピュータを使わないプログラミングだってあるだろ」という意見ありますよね.もちろん,コンピュータを使わないアンプラグドなプログラミング体験を否定はしませんが,コンピュータを動かすための力を育てる学習に,最後までコンピュータを使わない学習はありえないでしょう.

 たとえば,料理を手順(記号)に分解しながら,より最適な順番にする学習活動も,上記のプログラミング的思考を育むことはできそうです.しかし,一方で,コンピュータに意図した処理を行わせる力はつくのでしょうか? おそらくこの活動だけではつかない・・・と,私は思っています.
 もちろん,この活動に合わせたコンピュータプログラミングの体験があれば,この活動の意義が出てくると思います.しかし,この活動だけで終わるのであれば,それは学習指導要領に沿った学習活動ではないと思っています.

プログラミング教育のねらい

 小学校段階において学習活動としてプログラミングに取り組むねらいとしては,(コンピュータに意図した処理を行わせるために必要な)論理的思考力を育むことに加え,解説では

プログラムの働きやよさ,情報社会がコンピュータをはじめとする情報技術によって支えられていることなどに気付き,身近な問題の解決に主体的に取り組む態度やコンピュータ等を上手に活用してよりよい社会を築いていこうとする態度などを育むこと
(小学校学習指導要領解説 p.85)

としています.これらを育むのには,当たり前ですがコンピュータプログラミングをすることが一番よいと思います.コンピュータプログラミングを通して,コンピュータを様々なものに作り上げる体験をして,はじめて世の中に散りばめられているコンピュータの恩恵を感じることができると思います.先に取り上げた料理の分析活動,これだけを行うだけでは到達できないですよね.いかがでしょうか.
 読み物などでこれらの気づきや態度の育成はできるかもしれませんが,効果も効率も悪いことは容易に想像できるかと思います.特に,小学生という発達段階では,目の前にあるものを操作してこそ,本当の気付きや深い理解を達成できるはずです.

 また,

プログラミング言語を覚えたり,プログラミングの技能を習得したりといったことではなく
(小学校学習指導要領解説 p.85)

ともあります.プログラミング言語を覚える必要はないですよね.情報工学系の大学でもプログラミング言語を覚えさせることを目的とした授業はない・・・ですよね.職業訓練を目的とする専門学校などだとプログラミング言語を覚えることが学習になっているところもあるのかな?
 ただし,「プログラミングの技能」のところはちょっとひっかかるんですよね.私が,知識と技能,そして思考力・判断力の違いをしっかりと理解しきれていないからかと思うのですが,技能を習得していない状態で,プログラミング体験から深い学びを経て,論理的思考力を育めるのか?と.ここはもうちょっと勉強して,書き改めたいと思います.

情報活用能力とプログラミング的思考と情報技術

 次期学習指導要領におけるICT関連の大きな変化として「情報活用能力」の扱いが挙げられます.現行の学習指導要領では

児童がコンピュータや情報通信ネットワークなどの情報手段に慣れ親しみ,コンピュータで文字を入力するなどの基本的な操作や情報モラルを身に付け,適切に活用できるようにするための学習活動を充実する
(現行 小学校学習指導要領 p.4)

とあるだけでしたが,次期学習指導要領では

第2 教育課程の編成
2 教科等横断的な視点に立った資質・能力の育成
(1) 各学校においては,児童の発達の段階を考慮し,言語能力,情報活用能力(情報モラルを含む。),問題発見・解決能力等の学習の基盤となる資質・能力を育成していくことができるよう,各教科等の特質を生かしつつ,教科等横断的な視点から教育課程の編成を図るものとする。
(小学校学習指導要領 p.5)

と,各教科の学びの基盤となる力として,現在非常に重視され様々な取り組みが行われている言語能力に並んでの記述となりました.そして,

情報活用能力をより具体的に捉えれば・・・さらに,このような学習活動を遂行する上で必要となる情報手段の基本的な操作の習得や,プログラミング的思考,情報モラル,情報セキュリティ,統計等に関する資質・能力等も含むものである
(小学校学習指導要領解説 p.51)

と,プログラミング的思考はこの情報活用能力の一部であるとしており,プログラミング教育の位置付けは意外に高いことがわかります.

 この情報活用能力については,

情報活用能力は,世の中の様々な事象を情報とその結び付きとして捉え,情報及び情報技術を適切かつ効果的に活用して,問題を発見・解決したり自分の考えを形成したりしていくために必要な資質・能力である・・・情報技術は人々の生活にますます身近なものとなっていくと考えられるが,そうした情報技術を手段として学習や日常生活に活用できるようにしていくことも重要となる。
(小学校学習指導要領解説 p.51)

との記述があります.情報活用能力には,情報を扱う力として情報技術とは切り離した力も含まれますが,情報技術に関係する力でもあることがわかります.そもそも,今回の改訂の方針には,

平成28 年12 月の中央教育審議会答申を受け,今回の改訂においては,情報化やグローバル化といった社会的変化が,人間の予測を超えて加速度的に進展するようになってきていることを踏まえ,複雑で予測困難な時代の中でも,・・・よりよい社会と幸福な人生を切り拓き,未来の創り手となることができるよう,教育を通してそのために必要な力を育んでいくことを重視している。
(小学校学習指導要領解説 p.23-24)

とあり,そして,この情報化やグローバル化こそが情報技術の発展と社会への浸透によるものです.また,

今日,コンピュータ等の情報技術は急激な進展を遂げ,人々の社会生活や日常生活に浸透し・・・将来の予測は困難であるが,情報技術は今後も飛躍的に進展し・・・職業生活ばかりでなく・・・あらゆる活動において・・・そうした機器やサービス,情報を適切に選択・活用していくことが不可欠な社会が到来しつつある。
 そうした社会において・・・情報活用能力の育成が極めて重要となっている。・・・今回の改訂においては,コンピュータや情報通信ネットワークなどの情報手段の活用について,こうした情報活用能力の育成もそのねらいとするとともに,人々のあらゆる活動に今後一層浸透していく情報技術を,児童が手段として学習や日常生活に活用できるようにするため,各教科等においてこれらを適切に活用した学習活動の充実を図ることとしている。
(小学校学習指導要領解説 p.83-84)

ともあり,情報活用能力,そしてプログラミング教育(プログラミング的思考)を,情報技術と関連付けて考えることが重要であると思います.

 この点は,先に出された答申における高等学校情報科の改訂方針からも読み取れます.答申では,情報技術が急激な進展を遂げ,社会生活や日常生活に浸透するなど,劇的な変化が起こっているため,卒業後の進路等を問わず,情報の科学的な理解に裏打ちされた情報活用能力を育むことが一層重要となってきているとし,Computer Scienceの内容を主とした科目を必修とすることとしています.現状,情報活用能力の三要素である情報活用の実践力,情報の科学的な理解,情報社会に参画する態度のうち,情報の科学的な理解が軽視されていることへの反省があるのかなと思っています.

教科教育とプログラミング教育

 さて,最後になりますが,次期学習指導要領では,

第2 教育課程の編成
2 教科等横断的な視点に立った資質・能力の育成
(1) 各学校においては,児童の発達の段階を考慮し,言語能力,情報活用能力(情報モラルを含む。),問題発見・解決能力等の学習の基盤となる資質・能力を育成していくことができるよう,各教科等の特質を生かしつつ,教科等横断的な視点から教育課程の編成を図るものとする。
(学習指導要領 p.4-5)
第3 教育課程の実施と学習評価
1 主体的・対話的で深い学びの実現に向けた授業改善
(3) ・・・あわせて,各教科等の特質に応じて,次の学習活動を計画的に実施すること。
ア 児童がコンピュータで文字を入力するなどの学習の基盤として必要となる情報手段の基本的な操作を習得するための学習活動
イ 児童がプログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動
(小学校学習指導要領 p.8)

とあり,情報活用能力の育成,プログラミング教育は,各教科等の特質を生かながら教科等横断的な視点から計画的に実施することとしています.つまり,改訂の目玉の一つでもあるカリキュラム・マネージメントによって,教科等に組み込んでいく必要があるということですね.

 さらに解説では,先に記したプログラミング教育のねらいの続きとして,

さらに,教科等で学ぶ知識及び技能等をより確実に身に付けさせることにある。
(小学校学習指導要領解説 p.85)

とあります.これがプログラミング教育を導入する最大の難関なのではないでしょうか.
 プログラミング教育を導入することによって,教科の学びを強化するということです.親父ギャグかよ!とか言っている場合ではありません.プログラミングの体験,コンピュータに意図した処理を行わせるために必要な力を育むための学習活動を,単純に実施すればよいのではなく,

したがって,教科等における学習上の必要性や学習内容と関連付けながら計画的かつ無理なく確実に実施されるものであることに留意する必要があることを踏まえ,小学校においては,教育課程全体を見渡し,プログラミングを実施する単元を位置付けていく学年や教科を決定する必要がある。・・・プログラミングに取り組むねらいを踏まえつつ,学校の教育目標や児童の実情等に応じて工夫して取り入れていくことが求められる。
(小学校学習指導要領解説 p.85)

とあるように,教科等の内容に関連させて教育課程を構成していくことが必要ということです.

 いや,ほんと大変だと思います.適当にプログラミング教育を済ますのであれば大変ではないでしょう.ICT支援員に丸投げするところも出てしまうかもしれません.しかし,それではますます日本は世界に遅れをとってしまうのではないかなぁ.せっかくの機会なのでプログラミング教育をきちんと考えてほしいなぁ.さらには,教科教育をプログラミング活動でパワーアップしようなんてすごい試みなので,先生方には一踏ん張りしてほしいなぁ・・・なんて思っています.

とりあえずまとめ

 なんか,プログラミング教育はコンピュータをちゃんと使え!という誘導的な文章になってしまいました.
 プログラミング教育は論理的思考力を育むもの,そしてそれを教科等教育の中で行う,これらの点から,なんとなくコンピュータから離れたプログラミング教育が巷で話題になっている印象があります.私は工学部出ということもあり,私の考え方がそもそも偏ったものであるかもしれませんが,ここに書いたようにプログラミング教育がコンピュータから離れた教育になったら,わざわざプログラミングなどという言葉を使って,現場の先生たちを混乱させる必要はないと思います.教科等の教育でそのような力はきちんと育てているはずですよね.

 そうそう,論理的思考力にからんで Comptational Thinking という言葉もよく聞くようになってきました.外国では,Comptational Thinking の育成を初等教育で行うようになっています.日本ももっときちんとカリキュラムを定めて情報活用能力の育成に取り組む大改革をした方がよいと思うのですが,プログラミング教育が限界だったのでしょうね.
 また,海外では Comptational Thinking を,Computer Science,そこまでいかなくてもきちんと Computer と絡めた教育にしています.一方,日本では高校の情報科をはじめ,情報活用能力の育成も,教えられない,教えるための環境がないという理由で,Computer の存在をおざなりにする傾向があるなと感じています.プログラミング教育もそうならないことを願うばかりです.

 なーんてことで,とりあえずおわり.

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

なおき

プログラミング教育

1つのマガジンに含まれています
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。