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

InfoPath & SQL Server !

Archive for the ‘教科「情報」’ Category

なぜテレビ番組は47%が半分以上に見える円グラフを作ったのか -自分で作ったらこうなった – Microsoft Excel で作る円グラフの秘密

leave a comment »

あるテレビ番組で、世論調査の内閣支持率を円グラフで表したときに、「支持しない」の47%が半分以上になっている円グラフを報道して話題になっている。なぜこのようなことになったのだろうか。

この件は、たとえば次のページで詳細を見ることができる。
@niftyニュース「民放各局の初歩的な放送ミスが相次ぐ 『ひるおび!』の円グラフには呆れの声も」
https://news.nifty.com/article/entame/showbizd/12283-668589/

話題になっているテレビ番組の画面キャプチャはネットのあちこちで見ることができるが、これを見ると確かに「支持する」の33%もやや広いように見え、「支持しない」の47%は明らかに円の半分以上を占めていて間違いは明らかだ。100%から33%と47%をひくと残りは20%だが、この面積もかなり狭い。

試しに作ってみたのが次のグラフだ。このグラフはだいたい話題のテレビ番組の円グラフに近い形だが、これは次のデータをもとに作ったものだ。

支持する 47
支持しない 33
(その他) 1

朝日新聞_円グラフの間違い_20200522_001

ここで想像できるのは、この円グラフを作った人は20%を1%と間違え、合計が100%にならないグラフを作ってしまったということだ。

実際に、この世論調査を実施した新聞社のサイトを見ると、「支持する」と「支持しない」以外は20%あったと書いてある。では正しいデータでグラフを作ってみよう。

朝日新聞_円グラフの間違い_20200522_02

朝日新聞_円グラフの間違い_20200522_002

これが正しいグラフだ。しかし、このグラフを見てどうだろう。確かに「支持しない」を示す赤い部分は円の半分以下ではあるが、一見すると先のグラフより赤い部分が大きく見えないだろうか。

これは円グラフを作るときのテクニックによるものだ。それは「見せたいものを強調する」という手法であり、これを裏返すと情報を受け取る側には「グラフに惑わされないようにする」知恵が必要だということになる。

次のグラフはどうだ。数字は全く同じだが並び順を変えている。

朝日新聞_円グラフの間違い_20200522_003

このグラフだと「支持する」を示す青い部分と「支持しない」を示す赤い部分の差をあまり感じないのではないだろうか。なぜかと言えば「3Dグラフ」だからである。厚みがあるのでデータが手前にくると視覚的に広い面積に受け取ってしまう。

試しにもっと極端に角度をつけてみよう。

朝日新聞_円グラフの間違い_20200522_004

さすがにここまで極端だと「おかしい」と気づくだろうが、本質は同じだ。手前に来るエリアが厚みのために大きく見える。

もうひとつは色が人の心に与える印象の強さだ。色に関する研究で「膨張色」と「収縮色」と呼ばれるものだ。一般に白地を背景にするとき、黄色や赤色は膨張色、青色は収縮色と呼ばれ、膨張色は実際よりも広く、収縮色は実際よりも狭く感じることがわかっている。

では色を変えてみよう。

朝日新聞_円グラフの間違い_20200522_005

人によって感じ方は違うと思われるが、一見すると赤い部分と青い部分は同じくらいの面積か、もしかしたら赤の方が広いと感じるのではないだろうか。ここでは「支持する」が赤色で33%、「支持しない」が青色で47%だ。

次に「支持する」と「支持しない」以外のデータは何かを考える。これはテレビ番組で映し出されたグラフでは何を示しているかわからないが、世論調査を行った新聞社には書かれている。それは「その他・答えない」だ。

「その他」とはどんな回答だろう。おそらく「どちらでもない」や「わからない」といったものではないか。「答えない」はどうだろう。なぜ答えないのか。それは答えたくないからだ。ではなせ答えたくないのか。その世論調査そのものに疑問を感じているからか、調査を実施する新聞社を信用していないことが考えられる。

グラフのデータの並びを変えてみよう。

朝日新聞_円グラフの間違い_20200522_006

「支持する」と「支持しない」という両極端の回答に対して「その他・答えない」を示すとしれば、このように間に挟んで示すべきだろう。

そしてこの「その他・答えない」と答えた人の考え方を類推する。「わからない」と考えている人は、ある意味で誠実な人だ。政治は難しいことがわかっている。内閣がやることを自分のような専門家でない人間が評価するのは難しいと。「どちらでもない」と考えている人は、知性のある人だ。どんなものにも多面性があることがわかっている。内閣のとる政策は山ほどあり、うまくいっているものもあればそうでないものもあるだろう。いずれにせよ、明確に「支持しない」とは考えていないことに間違いない。

「答えない」はどうだろう。これは多くの人にこの世論調査や調査を実施する新聞社がどう認知されているかによるだろう。新聞社は事実を公平に伝えるものだという前提があるが、そもそも情報というものは、それが「情報」として作られるときに例外なく発信者の意図が反映される。客観的な数字でさえそうだ。その数字を情報として示すことに発信者の意図があるからだ。よく株価についてのニュースで「今年最大の株価」と言ったり「今年最大の上げ幅」と言ったりする。また「今月の最高値は今年最大だった」と言うこともあれば「今年は過去20年来の最高値を更新した」と言うこともある。「終値は今年最高の株価」と言うこともあれば「初値は今年最高の株価だった」と言うこともある。客観的な数値などいくらでもあるのだ。もしある日が「今年最大の株価」を更新したとしても、その日のうちの変動が激しく「今年最大の下げ幅」があった日かもしれない。このとき、どちらの数字を情報として示すかは、どのような意図で報道するかによる。

新聞社にも「社風」や会社としての「報道理念」があり、それに基づいて情報を発信する。ではそれが多くの人にどう認知されているかだが、もしこの新聞社が、内閣に対して批判的であると思われていれば「答えない」人は内閣を支持している人だろう。逆に内閣に対して受容的と思われているなら「答えない」人は内閣を支持していない人だろう。

グラフはそのように考えて理解しなければならない。

最後に、この世論調査の実施全体を考えてみよう。調査を行った新聞社によれば、次のような調査だったことがわかる。

調査対象数 2,010 (固定電話978、携帯電話1032)
有効回答数 1,185

朝日新聞_円グラフの間違い_20200522_03

調査対象が2,010で有効回答数が1,185だとすれば、パーセントをかけると実数を類推できる。

支持する 391 (1,185×0.33=391.05)
支持しない 557 (1,185×0.47=556.95)
その他・答えない 237 (1,185×0.20=237)
回答しない 825

つまり調査全体をグラフにすると次のようになるはずだ。

朝日新聞_円グラフの間違い_20200522_007

ここでも回答しなかった人の考えを類推しなければならない。なぜ回答しなかったのか。かけた固定電話の家族に「有権者がいる」または携帯電話の本人が「有権者である」ことはわかっている。なぜ回答しなかったのか。「忙しかった」ことはあるかもしれない。「面倒だ」と思ったかもしれない。それと同時に、前述の「その他・答えない」と同じように、その世論調査そのものに疑問を感じているからか、実施する新聞社を信用していないことも考えられる。

色を変えると、また違った印象に見える。

朝日新聞_円グラフの間違い_20200522_008

次のグラフはやりすぎだ。

朝日新聞_円グラフの間違い_20200522_009

さて最後に、これは検証することは不可能だが、電話をかけたとき、固定電話の973世帯は「有権者がいると判明した」とあるので、実際に電話をかけてから「有権者はいますか」と聞いたと想像される。携帯電話も同じで「有権者につながった」とあるので電話をかけて「有権者ですか」と聞いたはずだ。つまり、電話をかけて相手が出ても「有権者がいない」と答えたり、「世論調査です」と話して新聞社の名前を告げた時点で電話を切られたことがあると思われる。

「有権者はいない」と答えた人の考えを類推しよう。まず本当に有権者がいなかった場合がある。携帯電話なら本人が未成年である場合もあるだろう。単に面倒なので「いない」と答えたかもしれない。そして世論調査に懐疑的であったり新聞社の報道姿勢に疑問があったりして「いない」と答えたかもしれない。何も言わずに電話を切った場合も同じだ。

ここで問題なのは、それら「有権者はいない」と答えたり何も言わずに電話を切った人数が公開されていないことだ。つまり、統計で最も重要な「調査対象総数」とそこなら導き出される「回収率」が不明なことだ。

このように、もともとの調査対象数が公開されなければ、本当の意味で信頼できる世論調査かどうかを判断することはできないと考える。

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

 

Written by Yoshio Matsumoto

2020年5月22日 at 5:10 PM

micro:bit – Makecodeでカスタムブロックを作る – カスタムブロックを複数作って表示する方法

leave a comment »

microbit を Makecode で開発するときに、一定のまとまったコードをブロック化する「カスタムブロック」の作り方を紹介した。

micro:bit – Makecodeでカスタムブロックを作る
https://matsumotoyoshio.wordpress.com/2020/02/23/microbit-makecode%e3%81%a7%e6%8b%a1%e5%bc%b5%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e4%bd%9c%e3%82%8b/

上記のページで紹介したコードでは JavaScript でカスタムブロックを使うことができるが、ブロックモードにブロックが表示されない。ブロックを表示するには次のようにすればいい。

micro:bit – Makecodeでカスタムブロックを作る – カスタムブロックの表示方法
https://matsumotoyoshio.wordpress.com/2020/02/24/microbit-makecode%e3%81%a7%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e4%bd%9c%e3%82%8b-%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%96%e3%83%ad/

では複数のカスタムブロックを作るにはどうするか。次のように namespace に 2つの function を記述し、それぞれに名前をつけるといい。

makecode_2customblocks_001

makecode_2customblocks_002

気を付けなければならないことは、カスタムブロックの定義がビジュアル画面に反映されるタイミングが悪いことだ。まずカスタムブロックを定義したら、名前を付けて保存し、makecode のポータル画面に戻り、再度プロジェクトを読み込む、あるいは場合によってはブラウザを一旦閉じ、再起動しなければ反映されない場合もある。

正しくコードを書いていても画面に反映されないので「間違っているのではないか」と思うのだが、実はコードは正しく書かれている、ということがあるので気を付けよう。

2020年4月15日
松本 吉生(まつもとよしお)
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回目の連続受賞。2020年1月14日に「令和元年度文部科学大臣優秀教職員表彰」を受賞。

Written by Yoshio Matsumoto

2020年4月15日 at 11:03 PM

micro:bitで焦電型赤外線人感センサー AM312 を使う

leave a comment »

焦電型赤外線人感センサは人体から放出される赤外線を感知するもので、パッシブタイプとも言われる。人感センサに限らず多くのセンサーは 5V で動作するように設計されているが、micro:bit の I/O は動作電圧もセンサに供給できる電圧も 3.3V であるためセンサ選びに注意を要する。

いろいろなセンサを探していて、低電圧で動作する焦電型赤外線人感センサー AM312 を見つけた。簡単なスペックは以下の通り。

1.動作電圧 2.7 – 12V
2.ディレイタイム 2秒
3.ブロックタイム 2秒
4.トリガーモード 繰り返し
5.センサレンジ センサ角100度、3 – 5m
6.動作温度 -20度から60度

micro:bit とは次のようにジャンパケーブルとミノムシクリップを使って接続する。

P1350109_trimming_640_480

P1350111_mid_640_480

ディジタル値で検出するので、次のようなプログラミングをした。しかしこれでは正しく動作しない。

microbit_AM312_001

しかし、試しにアナログ値でセンサの値を読み取ると、検出していることがわかる。センサによって個体差があるだろうが、人がいないときは出力値がおよそ 10、人を検知すると 910 のアナログ値が得られる。

microbit_AM312_002

そこでプログラムを次のように変更する。

microbit_AM312_003

これで正しく人を検知できた。

P1350115_mid_640_480

このように実際のセンサを使う場合、ディジタル値を得られるセンサであっても理論通りに動作しない場合がある。これがセンサやデバイスに関するプログラミングの難しいところであり、面白いところでもある。

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

 

 

micro:bit – Makecodeでカスタムブロックを作る – カスタムブロックの表示方法

with one comment

microbit を Makecode で開発するときに、一定のまとまったコードをブロック化する「カスタムブロック」の作り方を紹介した。

micro:bit – Makecodeでカスタムブロックを作る
https://matsumotoyoshio.wordpress.com/2020/02/23/microbit-makecode%e3%81%a7%e6%8b%a1%e5%bc%b5%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e4%bd%9c%e3%82%8b/

上記のページで紹介したコードでは JavaScript でカスタムブロックを使うことができるが、ブロックモードにブロックが表示されない。ブロックを表示するには次のようにコードを追加する。

microbit_拡張ブロック_101

まず namespace の前に //% で始まるセクションを書く。ここに記述するパラメータは、次のようなブロックのカテゴリに関するデザインを意味している。

weight : ブロックのカテゴリが表示される順番。数字が大きいほど上に表示される。70のとき、デフォルトで「無線」の下、「ループ」の上に表示される。

icon : Makecode に設定されているアイコンの番号。この番号に相当するアイコンがブロックのカテゴリに表示される。\uf076 なら磁石のアイコン、\uf077 なら上向きの「へ」の字アイコンになる。

color : ブロックのカテゴリの色。2桁の16進数で、前から RGB の値。#ff000 なら赤、#00ff00 なら緑、#0000ff なら青。

block : ブロックのカテゴリの名前。

次に export function の前に書く%// で始まるセクションには、個々のブロックのデザインに関するパラメータを書く。

block : ブロックの名前。

これでブロックモードに切り替えると、正しくブロックが表示され使うことができる。

microbit_拡張ブロック_102

microbit_拡張ブロック_103

注意する点は、カスタムブロックのデザインに関するコードを変更したとき、すぐに画面には反映されず、いちど保存して終了し、再度開くことでデザイナに反映される。これはデザイナのブロック表示が Makecode の開始時に初期化されるためだと思われる。コードを書いて、保存し、再度開くのは面倒だが現時点ではしかたないようだ。

2020年2月24日
松本 吉生(まつもとよしお)
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回目の連続受賞。2020年1月14日に「令和元年度文部科学大臣優秀教職員表彰」を受賞。

Written by Yoshio Matsumoto

2020年2月24日 at 7:45 PM

micro:bit – Makecodeでカスタムブロックを作る

with 2 comments

micro:bit は Mekecode でプログラミングするが、既存のブロックだけでなくカスタムブロックを作ってプログラミングに使うことができる。カスタムブロックは一定のまとまった動作をさせたいときに有効だし、オブジェクト指向を養う課題にもなる。

ただし Makecode のような Web ベースの開発環境は不断にアップデートされるので、ここで紹介するのはあくまでも現時点の方法だ。

Makecode を開いて「新しいプロジェクト」を開始したら、画面モードを「JavaScript」に変更する。左側の micro:bit シミュレータの下「エクスプローラー」が表示されるので、リボンの「+」をクリックする。ポップアップで「カスタムブロックを追加しますか?」と表示されるのでわかるだろう・

microbit_拡張ブロック_003

「カスタムブロックを追加しますか?」のメッセージが表示されるので「つづける」ボタンをクリックする。

microbit_拡張ブロック_004

すると次のような画面になり、カスタムブロックのひな形コードが表示される。

microbit_拡張ブロック_005

コードを LED が左から右に順番に点灯する簡単なものに変更しよう。

microbit_拡張ブロック_006

カスタムブロックができたら、エクスプローラーで main.ts をクリックして開き、カスタムブロックを使うコードを書く。

microbit_拡張ブロック_007

表示を JavaScript からブロックに変更すると、カスタムブロックが使われており、コードが正しく実行されることがシミュレータでわかる。

microbit_拡張ブロック_008

2020年2月23日
松本 吉生(まつもとよしお)
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回目の連続受賞。2020年1月14日に「令和元年度文部科学大臣優秀教職員表彰」を受賞。

Written by Yoshio Matsumoto

2020年2月23日 at 3:56 PM

高等学校教科「情報」教員はパソコンデスクの天板を修理するか。

leave a comment »

コンピュータ教室に設置されたパソコンデスクの足カバーが壊れているので自分で修理したのだが、天板も剥がれかけているところがあることに気づいた。ついでにこれも直してしまおう。

ここで修理に使う接着剤も、ダイソーで買ったエポキシ2液混合タイプのものだ。エポキシ接着剤は一般に効果速度が遅いが、これは速乾性で10分も経てば水あめ程度に固まってくる。

P1330764_mid_640_480

足カバーを修理するときと違い、ここでは一定の面積に接着剤を塗るので、へらを使う。

P1330826_mid_640_480

完全に接着剤が硬化するまで養生テープで押さえておく。

このように高等学校教科「情報」の教員はパソコンデスクを修理もするのだ。

高等学校教科「情報」教員はパソコンデスクの足カバーを修理するか。

leave a comment »

コンピュータ教室にコンピュータデスクが並んでおり、足にプラスチックのカバーがついている。このカバーは、スチールの足を保護するためのものだが、おそらくキャスター付きのイスの足があたってのことだろうが、あちこち割れていることに気が付いた。

P1330781_mid_640_480

近寄るとこんなかんじで、かなり凶暴に割れている。

P1330777_trimming_640_480

これでは生徒が足をぶつけて怪我をするかもしれない。とはいえ、このカバーを外すとスチールがむき出しになるので外すわけにもいかない。外しても危険である。このエッジが切り立ったスチールから保護するためにカバーが付いているのだから。

P1330795_trimming_640_480

いくつかは応急処置的に養生テープを巻いてみた。しばらくは止まってくれるが、そのうち剝がれてくる。

P1330770_mid_640_480

このカバーは簡単に取り外しできるように作られているため、同じものを注文して取り替えられそうだ。学校設備に関することは事務室の管轄なので、事務室に相談した。このような場合、学校によるのだが、必ずしも理解が得られるとは限らない。今回のケースでは、まず「型番を教えてください」と言われた。しかしパソコンデスクにメーカー名も型番も書いていないので私にはわからない。むしろ事務室が知っているはずなのだが、と思いながら「生徒が怪我をするかもしれないので探して買ってほしい」と言ったが「型番がわからないと注文できません」で終わった。

P1330785_mid_640_480

そこで自分で修理することにした。修理に使ったのはエポキシ2液混合タイプの接着剤だ。これはエポキシ接着剤のなかでも硬化速度が比較的早いものだ。「約10分で硬化」と書かれているが、実際、2液を混ぜて10分も経つと水あめ程度に固まってしまう。この接着剤はダイソーで買ったものだ。

P1330757_mid_640_480

紙の上に2液を等量押し出し、つまようじで混ぜる。割れているところに塗り、養生テープで押さえる。完全に硬化するには時間がかかるので押さえておくのだ。養生テープにはエポキシ接着剤は張り付かないので、硬化した後でパリッと剥がすことができる。

P1330827_mid_640_480

強度をかせぐために割れたところを内側からかぶせるように厚めに接着剤を盛っておく。

P1330789_mid_640_480

硬化するまで時間がかかるが、そのあいだカバーを外したままにもできないので、待つ間にも机の足に取り付けておく。

P1330788_trimming_640_480

高等学校の教科「情報」教員は、このようにパソコンデスクの修理もしなければならないのだ。

プログラミング教育の体系化(2) – 「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」には中学校や高等学校でのプログラミング教育についても言及されている – 目標は「全ての高校生がプログラミングを問題解決に活用することを学べるようにする」こと

with one comment

平成28年4月19日に文部科学省の初等中等教育局教育課程課教育課程企画室によって開催された「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」は、平成28年6月16日に「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」を発表した。これを受ける形で、文部科学省は平成29年3月に新しい小学校学習指導要領(平成29年告示)を発表した。

この「議論のとりまとめ」にはプログラミング教育について、「子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら」や「プログラミングを体験しながら」という記述が随所にあり、実際にプログラミングをすること、つまり「コーディング」することの重要性が示されている。その一方で、コーディングを「覚える」ことが「目的ではない」という誤解をまねく表現もあることについて、前掲の記事で示したところだ。

プログラミング教育の体系化(1) – 「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」を読み解く – プログラミング教育に対する誤解を払拭するために
https://matsumotoyoshio.wordpress.com/2019/08/01/%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%91%ef%bc%89-%e3%80%8c%e5%b0%8f%e5%ad%a6%e6%a0%a1%e6%ae%b5/

この有識者会議の「議論のとりまとめ」は「小学校段階における」プログラミング教育の在り方についてという題であるが、小学校だけでなく中学校や高等学校のプログラミング教育にも言及されており、体系的なプログラミング教育の必要性を示唆している。

1.プログラミング教育を小、中、高等学校の教育課程全体で位置付ける

「議論のとりまとめ」の冒頭「有識者会議における議論の視野」には次のように書かれている。全文を引用する。

「小学校段階におけるプログラミング教育について議論をまとめるに当たっては、人工知能の進化等にみられる、近年の急速な情報化の進展が教育に与える影響や、そうした中で教育課程全体としてどのような力を育成していくことが求められるのかといった、情報化の進展と教育課程全体との関係について整理しておく必要があった。こうした点については、中央教育審議会における次期学習指導要領改訂に向けた議論も踏まえながら、下記1.や2.において整理している。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 有識者会議における議論の視野)より引用

すなわちプログラミング教育は「近年の急速な情報化の進展」が背景にあり「情報化の進展と教育課程全体との関係」を見直す必要があったことから始まっている。ここで重要なのは「教育課程全体として」という言葉である。この「教育課程全体」という言葉は「2.これからの時代に求められる資質・能力とは」の冒頭に「特に、情報化の進展という社会的な変化の中では、以下のような資質・能力が重要になると考えられることから、こうした力の育成が教育課程全体を通じて実現されることが強く求められる。」とあり、言語能力との関連において「発達の段階に即して系統的に育成されるよう、小・中・高等学校を見通して教育内容の充実を図ることが検討されている。」とある。

すなわち、ここでの「教育課程」という言葉は単に小学校段階の教育を指しているのではなく、小学校、中学校、高等学校と義務教育諸学校を通じた教育課程のことを意味している。

2.中学校と高等学校でのプログラミング教育について

「3.学校教育におけるプログラミング教育の在り方とは」の「(2)学校教育として実施するプログラミング教育は何を目指すのか」には小・中・高等学校を通じたプログラミング教育について書かれている。ここでも「学校教育として」の言葉は小学校だけを指しているのではないことがわかる。以下引用する。

「【知識・技能】(小)身近な生活でコンピュータが活用されていることや、問題の解決には必要な手順があることに気付くこと。(中)社会におけるコンピュータの役割や影響を理解するとともに、簡単なプログラムを作成できるようにすること。(高)コンピュータの働きを科学的に理解するとともに、実際の問題解決にコンピュータを活用できるようにすること。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 3.学校教育におけるプログラミング教育の在り方とは)より引用

つまり小学校で育成する「知識・技能」は、中学校と高等学校で発展的にコンピュータに関する教育を学ぶ系統的な学習プロセスの過程にあるということだ。また「知識」だけでなく「技能」として育成すること、すなわちプログラミングによる問題解決を実践的に身に付けることが求められている。そして「思考力・判断力・表現力等」には次のように発達の段階に応じたプログラミングを学ぶことを指摘している。

「【思考力・判断力・表現力等】発達の段階に即して、「プログラミング的思考」(自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力)を育成すること。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 3.学校教育におけるプログラミング教育の在り方とは)より引用

ここも回りくどい表現であり隔靴掻痒たる感が否めないが「意図する一連の活動を実現」するために「記号の組み合わせをどのように改善」すればいいかを「論理的に考える」ことは、まさに「プログラミング」そのものであり、たとえどのような言語を使おうが、それがテキストであれブロック型であれ、実際にコーディングして試さなければ「より意図した活動に近づく」かどうかを理解できないだろう。つまり発達の段階に即した「プログラミング」を学ばなければならない。

3.中学校と高等学校の学習指導要領について

「議論のとりまとめ」の「(3)発達の段階に即した資質・能力の育成」には、次のように中学校や高等学校の学習指導要領についても言及されている。以下引用する。

「中学校及び高等学校では、それぞれの学校段階における子供たちの抽象的思考の発達に応じて、構造化された内容を体系的に教科学習として学んでいくこととなる。中学校では技術・家庭科において、高等学校では情報科において学ぶこととなるが、現在、中央教育審議会においては、中学校及び高等学校におけるプログラミング教育の充実についても議論されている。」「具体的には、中学校技術・家庭科技術分野の『情報に関する技術』において、計測・制御に関するプログラミングだけではなく、コンテンツに関するプログラミングを指導内容に盛り込むことによって、プログラミングに関する内容を倍増させること、高等学校情報科に共通必履修科目を新設し、全ての高校生がプログラミングを問題解決に活用することを学べるようにすることが検討されている。」(小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ) – 3.学校教育におけるプログラミング教育の在り方とは)より引用

小学校でのプログラミング教育は特定の教科にまとめられないが、中学校では「技術・家庭科」で、高等学校では「情報科」で「構造化された内容を体系的に」学ぶことをふまえ、中央教育審議会でプログラミング教育を検討していることに言及している。そして中学校では従来からあった「計測・制御」だけでなく「コンテンツに関するプログラミング」が指導内容に盛り込まれると書かれており「倍増」という表現まである。高等学校では「全ての高校生がプログラミングを問題解決に活用することを学ぶ」と検討されている。

すなわち、この有識者会議は「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」であるが、「議論のとりまとめ」に書かれていることは中学校、高等学校と義務教育諸学校の体系的なプログラミング教育を視野に入れた中で、小学校でのプログラミング教育について示されていると理解するべきである。

2019年8月6日

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

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回目の連続受賞。

プログラミング教育の体系化(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年告示)(文部科学省)>

クリックして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回目の連続受賞。