ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Posts Tagged ‘小学校

プログラミング教育の体系化(1) – 「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」を読み解く – プログラミング教育に対する誤解を払拭するために

with one comment

平成28年4月19日、文部科学省の初等中等教育局教育課程課教育課程企画室は、「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」を開催することとした。その趣旨は「世界に誇る日本の小学校教育の強みを生かしつつ、次世代に必要な資質・能力を、学校と地域・社会の連携・協働の中で育むことができるよう、小学校段階で育成すべき資質・能力と効果的なプログラミング教育の在り方や、効果的なプログラミング教育を実現するために必要な条件整備等について検討を行うため」としている。

小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議について(文部科学省)>
http://www.mext.go.jp/b_menu/shingi/chousa/shotou/122/houkoku/1370400.htm

この有識者会議は平成28年6月16日に「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」を発表した。これを受ける形で、文部科学省は平成29年3月に新しい小学校学習指導要領(平成29年告示)を発表した。この学習指導要領では新しくプログラミング教育が位置づけられることなり、平成30年度と31年度は移行期間であり、平成32年度すなわち令和2年度、2020年度から完全実施となる。

小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)(文部科学省)>
http://www.mext.go.jp/b_menu/shingi/chousa/shotou/122/attach/1372525.htm

小学校学習指導要領(平成29年告示)(文部科学省)>
http://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/03/18/1413522_001.pdf

1.誤解をまねく表現

この「議論の取りまとめ」の冒頭には「有識者会議における議論の視野」と書かれた部分があり、どのような考え方で議論がすすめられ結論を出したかが簡潔にまとめられている。しかしここに誤解をまねく表現がある。それは2段目の文で、正確を期すために引用すると次のように書かれている。

「小学校段階におけるプログラミング教育については、学校と民間が連携した意欲的な取組が広がりつつある一方で、コーディング(プログラミング言語を用いた記述方法)を覚えることがプログラミング教育の目的であるとの誤解が広がりつつあるのではないかとの指摘もある。“小さいうちにコーディングを覚えさせないと子供が将来苦労するのではないか”といった保護者の心理からの過熱ぶりや、反対に“コーディングは時代によって変わるから、プログラミング教育に時間をかけることは全くの無駄ではないか”といった反応も、こうした誤解に基づくものではないかと考えられる。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 有識者会議における議論の視野)より

ここでは「コーディングを覚えることがプログラミング教育の目的ではない」のであり、保護者は子どもにコーディングを教えなければならないと心配する必要はないし、コーディングが時代によって変わっても今やろうとしているプログラミング教育は役に立つものである、と言っている。しかしコーディングを覚えなくもいい、と言っているのではなく、そもそもコーディングをしなくていいとも言っていない。コーディングは小学校でもしなければならないし教えなければならないはずだ。なぜならプログラミングをしなければ「プログラミング的思考」など身につくはずがないのだから。

しかしインターネットで「プログラミング教育」というキーワードで検索すると、いわゆる識者の意見として「プログラミング言語やコーディングを学ぶわけではない」といった誤解をしているものがみられる。プログラミング言語やコーディングそのものを否定的にとらえる考え方になってしまっているのだ。これは間違いである。

この原因の一端は、誤解をまねく上記の文にある。上記の文は、「コーディング」について「覚えること」がプログラミング教育の「目的ではない」と言っている。だから小学生にコーディングを覚えさせてテストで文法的に正しいコードが答えられることを求めることは間違いだし、コードを書けるようになることを目標にしてはいけない、と言っている。しかし授業ではコーディングを覚えさせなければならない。なぜならコーディングを覚えなければプログラムを書けないからだ。

2.授業ではコードを書かなければならない

前述の「有識者会議における議論の視野」には次の段にこう書いてある。「プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。こうしたプログラミング教育についての考え方や、小学校段階における具体的な在り方等を、下記3.や4.において示している。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 有識者会議における議論の視野)より

ここも婉曲でわかりにくい書き方がされているのだが、「子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら」というところは、要するに「プログラミングをさせる」ということだ。「コンピュータに意図した処理を行うよう指示する」ことは現時点ではまさに「コーディング」のことであり「ができるということを体験」は実際にコードを書いてコンピュータで実行し動いたことを確かめることだ。つまり小学生にはコーディングをさせ、自分で考えたコードが正しく動くということを体験させなければならない。そのためにはコードの書き方がわからなければならないし、開発ツールの使い方を覚えなければならないし、作ったコードを動かす方法も知らなければならない。

もちろん特定のプログラミング言語の書法を暗記してすらすらコーディングできるようになる必要はないし、そもそもテキスト型のコーディングでなくブロック型のコーディングでもよいだろう。重要なことは、コンピュータにやらせたい処理を自分で考えてプログラミングをし、失敗体験もしながら正しく動くプログラムを作り上げる体験をさせることであり、それにはコーディングを覚えなければならないはずだ。

この「コンピュータに意図した処理を行うよう指示することができるということを体験」という文は随所にみられる。婉曲ではあるが、これは「プログラミングを体験させる」ということである。つまり、小学校の授業では子どもたちにコードを書かせなければならない。プログラミング体験をさせなければならない。

そもそも「プログラミング的思考」はコードを書かずに身につくはずがない。このことはプログラマーなら知っている。当たり前だ。

3.職業プログラマーの養成も期待されている

前述の「有識者会議における議論の視野」の「4.小学校教育におけるプログラミング教育の在り方 – (3)教育課程外や学校外の学習機会とのつながり」には次の記述がある。

「小学校におけるプログラミング教育で、プログラミングに触れたことをきっかけとして、個人的に更に深く学んでみたいと思ったり、プログラミングに携わる職業を目指して学びたいという夢を持ったりする子供たちが増えてくることも期待される。」「プログラミングに興味を抱いた子供が、多様な才能を伸ばしていくことができるよう、民間で実施されている多様なプログラミング教育の機会や、土曜学習等における学習機会を個別に活用できるよう、都市部だけではなく全国を視野に入れ、官民連携して体制を整えていくことが求められる。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 有識者会議における議論の視野)より

これについてもインターネットの識者の意見として「プログラマーの養成を目指したものではない」といった極論がみられるが、「プログラミングに携わる職業」に就くにはプログラミングを知っておかなければならないし、職業プログラマーが育つことを期待しているのだ。これは国家的目標でもある。

他国のリーダーがこぞってプログラミング教育に言及するのも、プログラマーが育たないということは国家的な危機だからだ。これは大げさではない。近年の米中貿易摩擦も広範な通信技術に対する主導権争いである。日常生活において家電製品の多くはプログラムで制御されている。プログラムが必要ないのは単純な電熱器や扇風機のようなものくらいだろう。プログラマーがいなければ家電製品すら製造することが不可能になる。ましてや通信インフラを自国で開発、制御できないとなれば、もはや国家が破綻する。

もちろん直接的に職業プログラマーにならなくとも、およそ社会の各層での意思決定者たる人材はプログラミングのことを知っていなければならない。コンピュータやプログラミングを知らなければ意思決定を誤ることになるだろう。

令和2年、2020年の4月まであと9ヶ月であり、小学校の先生は教材研究などの取り組みをすすめていることだろう。各地でプログラミング研修会が開かれており筆者も呼ばれることがある。小学校では Scratch、Micro:bit、Minecraft などを使った実践が定着してきているが、今後は教材の作りこみに工夫が必要だろう。筆者の考えとしては、人感センサのような体感的なもの、サーボモーターなど動くものの制御を体験させることを推奨したい。そして今後は、小学校で基本的なプログラミング体験をした子どもたちが中学校や高等学校で発展的な学習をどうするのかが課題となるだろう。それは、もう、目の前にやってきている。

<次の記事>
プログラミング教育の体系化(2) – 「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」には中学校や高等学校でのプログラミング教育についても言及されている – 目標は「全ての高校生がプログラミングを問題解決に活用することを学べるようにする」こと
https://matsumotoyoshio.wordpress.com/2019/08/05/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e8%82%b2%e3%81%ae%e4%bd%93%e7%b3%bb%e5%8c%96%ef%bc%88%ef%bc%92%ef%bc%89-%e3%80%8c%e5%b0%8f%e5%ad%a6%e6%a0%a1%e6%ae%b5/

2019年8月1日

松本 吉生(まつもとよしお)

Microsoft MVP Data Platform
京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在16回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

広告

令和元年度兵庫県私学教育情報化研究会第一回研修会の内容と資料 – 神戸学院大学附属中学校・高等学校 – 20190723

leave a comment »

令和元年(2019年)7月23日に「令和元年度兵庫県私学教育情報化研究会第一回研修会」で、「情報教育におけるプログラミング教育の現状と課題~学校現場の視点から~」の題で講演をさせていただき、Micro:bitとArduinoを使ったプログラミング実習について実習研修を行った。

講演の内容をかいつまんで説明すると、学習指導要領の改訂により「プログラミング教育」が注目されているが、本来は2000年の教科「情報」の導入からプログラミング教育が必要であったはずだということ、産業のあらゆる分野でプログラマーが必要となり、社会のあらゆる場面で情報機器が使われる現代において、すべての人間がプログラミング力を身に着けておくべきであること、そして今回の学習指導要領の改訂では、小学校では実際にプログラミングをする「体験」を通じてプログラミング的思考を育成すること、中学校では「ネットワークを利用した動的コンテンツの作成」すなわち動的Webページの実習など高度な内容が想定されていること、などをお話しした。

「小学校段階における論理的思考力や創造性、問題解決能力等の育成と プログラミング教育に関する有識者会議」の「議論のとりまとめ」には「コーディング(プログラミング言語を用いた記述方法)を覚えることがプログラミング教育の目的であるとの誤解が広がりつつある」や「時代を超えて普遍的に求められる力としての『プログラミング的思考』などを育むことであり、コーディングを覚えることが目的ではない。」といった記述があり、一部に「プログラミングはしなくてよい」といった誤解が生じているが、「子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら」のように婉曲的表現ながらプログラミングを実際にさせることが必要だと書かれている。ここを見落としてはならない。

小学校でブロック型のプログラミングを体験した子供たちに対して、中学校、高等学校でどのように体系的なプログラミング学習を行うかが焦眉の課題である。

<研修会の資料>

2019年7月29日

松本 吉生(まつもとよしお)

Microsoft MVP Data Platform
京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在16回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

 

小学校の先生はオブジェクト指向を知らなくてよいか – 高度な領域を知ることで教え方も変わる

leave a comment »

プログラミング教育において「オブジェクト指向」を学ぶことは重要だが、もちろん小学生にオブジェクト指向を教えろと言っているのではない。もちろん将来的に小学校のプログラミング教育にオブジェクト指向が取り入れられることになれば、それは歓迎すべきことだが、今すぐそうはならないだろう。また近い将来にオブジェクト指向ではない別のアプローチがプログラミングの主流になるかもしれない。ただ、現代プログラミングにおいてはオブジェクト指向は強力な手法であり、およそ個人レベルで使われるアプリケーションのほとんどがオブジェクト指向によって作られているといえる。このことから高等学校レベルではオブジェクト指向を身につけることをプログラミング教育の目標のひとつにしたい。

発達段階に応じたプログラミング教育を考えたとき、小学校では手続き型のプログラミングに留めるべきだろう。またキーボードから文字入力をするコーディングではなく、ブロックを視覚的に組み合わせてプログラムを作る、いわゆる「ブロック型」の開発環境が望ましいだろう。そして構造化プログラミングとしてまとめられる「順次構造、繰り返し構造、条件分岐」を理解しプログラミングができること、センサやアクチュエータをマイコンボードやロボットで制御し、入出力を体験的に理解し活用できること、などが目標になるだろう。では小学校の先生はオブジェクト指向を知らなくてよいのかといえば、そうではない。小学校の先生もオブジェクト指向を理解するべきである。

オブジェクト指向は高度に抽象化されたプログラミング手法である。中学校、高等学校と発達段階がすすむにつれ、どこかの段階で身につけさせたい概念である。小学校の授業では教えなくても、これを知っているのと知らないのとでは教材の作り方や教え方が違ってくるだろう。

たとえば数学なら、中学校では連立方程式を学習する。よくある問題として「予算が290円あります。鉛筆は1本30円、消しゴムは1個50円です。予算を全部使って7人に渡すには、鉛筆と消しゴムをそれぞれ何個ずつ買えるでしょう。」がある。中学校の数学では、鉛筆を x 本、消しゴムを y 個として連立方程式を作って求めるだろう。小学生にとって連立方程式は抽象化度が高いので学ばないが、小学校6年生では「文字と式」の単元で数字を○や□にあてはめた計算方法を学習する。また「鉛筆を1本だけ買った場合、2本買った場合、3本買った場合・・・」と実際の数をあてはめながら答えを求めることもさせる。そしてこれは、中学校で連立方程式を学ぶ前段階として位置づけられている。もちろん教師は中学校では連立方程式を学習することを知っており、それを前提に授業を組み立てる。学問は系統だっており、学習も発達段階に応じて系統的に組み立てられるからだ。

したがって小学校の先生がプログラミング教育を行う時も、学習の先にオブジェクト指向があることを知っているのと知らないのとでは授業のアプローチも違うはずだ。その意味でも、小学校の先生もオブジェクト指向を理解しておくべきだ。オブジェクト指向は難しいと言われるが、すぐれた教材と学習メソッドがあれば理解できる。小学校からプログラミング教育を、と言われて奮闘する小学校の先生には頭が下がる思いであり、先駆的な実践を始めている先生方は子どもたちの未来を切り開く希望の星だと言えるが、そこを、あえて、さらに質の高いプログラミング教育を実現するために、オブジェクト指向を学んでいただきたいと望んでいる。

2018年3月8日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在3回目の連続受賞。

マインクラフトのエデュケーション版を使った問題解決の授業案を考えています。たとえば小学校四年生の「植木算」の考え方。

leave a comment »

マインクラフトをプログラミング教育に使うことを考えて勉強会をしています。

勉強会「マインクラフトとプログラミング教育」を開催します。
アドミンティーチャーズ
https://adminteachers.wordpress.com/2017/03/08/%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%80%8c%e3%83%9e%e3%82%a4%e3%83%b3%e3%82%af%e3%83%a9%e3%83%95%e3%83%88%e3%81%a8%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e8%82%b2%e3%80%8d/

マインクラフトにはエデュケーション版があり、エデュケーション版には一般のコンシューマー向けのマインクラフトにはない特殊パーツや「Classroom」という授業をするためのモードが用意されています。これらの機能を使えば、効果的に授業でマインクラフトを運用することができます。

マインクラフトは自由度が高く、無限の可能性がありますが、たとえば小学校の算数をテーマに取ると、このような問題解決型の授業案が考えられると思います。

テーマ:レッドストーンで「植木算」を理解しよう
概要:「植木算」は、おおむね小学校四年生の算数で取り上げられる課題で、割り算を習った後に、割り算を現実世界にあてはめて使うことを学ぶ目的で使われます。たとえば「10メートルの道路にそって1メートルおきに木を植えるとしたら、何本の木が必要ですか。」といった問題です。割り算を習った子供は、10メートル割る1メートルで10本、という答えを出せるとして、しかし実際は1mごとの「間」を数えるので9本でよい、ということに気付かせる問題です。これをレッドストーンの働きにおきかえて、15ブロックしか信号が伝わらないレッドストーンを150個使い、全部使ってできるだけ長く信号をつなぐために、何個の反復装置が必要かを考えさせ、実際にマインクラフトの世界でやってみて体験します。

授業案を Docs.com でも公開しています。
https://docs.com/user775272/8741/minecraft-small-challenge-no-2-planting-tree

Minecraft_Small_Change_002_001_mid_640

Minecraft_Small_Change_002_002_mid_640

Minecraft_Small_Change_002_003_mid_640

Minecraft_Small_Change_002_004_mid_640

Minecraft_Small_Change_002_005_mid_640