coinhive公開意見書の事前公開


coinhiveについて意見書なるものが求められてると聞き、ちょろりと書こうと思ったのだが、技術者と呼ぶにはロートルなので公開する。それは変じゃねってあったらコメントつけてください。・・・ロートル。英語かとおもったら老頭児、中国語なんだね。らぉとぅ儿か。びっくりだ。

私は誰か

2000年初頭、新卒から技術職が50~100名程度のちいさなソフトウエア開発会社にプログラマー技術職として勤めていた。スペシャリストや部長職などを経て、子会社の役員CTOなどもやったが、ご多分に漏れずSIerと呼ばれるシステム開発業界隈から身を遠ざけ、緩く喫茶や小売業をまったりやる個人起業をし十数年になる。

技術職であった期間より、もはや商店街で部長をやっている期間のほうが長くなり、プログラマーとしては疑問符がつくようになってしまったが、おかげさまでICT界隈の技術には理解がない人達へ説明をする能力は得ることができた。

自分で手を動かし、ある程度のソフトウエアは設計から実装まで仕上げることができたが、前線からは離れているので先端技術者としてのスペシャリティはない。だが、プログラマーが集まるコミュニティの運営をしているので技術者の声は今でも聞くし、三鷹市界隈のICT事業者をあつめた協会の理事もやっているので経営者の声も聞く。ついでに言うと三鷹市の情報推進の委員などもしているので行政の意見も聞く機会があり広範囲に情報は得ているほうだと思う。

そのような観点からcoinhive騒動についての意見を申し上げたい。
なお、これからの意見は会社や組織を代表するものではなく、あくまで個人の意見である。おさだまり文言。

論点項目

・行為の主体
・刑法としての解釈
・coinhiveの評価と程度の問題

行為の主体

商店主にプログラミング言語を説明しようとしたら、ぴ~ひょろろというFAXが発する音のようなものを発声するのだと言う人が居たが、これを読まれる方は、そのような層よりはパソコンなどの操作について馴染みがあるものとして話しをすすめる。

プログラミングとは、簡単に言えばコンピューターが動作するにあたり、どのように挙動するかの指示を列挙した指示書のようなものである。

指示の中で別の指示書を呼び出したりするのが最近のプログラムでは常なので、そのため連鎖反応のように自動で実行されているように見えるものもあるが、あくまで実行の主体者は辿れば最初にそれを実行した者に行き着く。

正常系であれば実行者が居て、それを実行可能な環境が揃うことで実行結果を得ることができる。
異常系であれば機械などハードウエアの異常が不随意に発生したもの、または製作者も意図していなかった挙動、実行者の意図を欺いて実行されるものなどが考えられる。

多くの人が無自覚におこなっているホームページ閲覧という仕組みの正常系を技術的に考えてみると、閲覧者はまずホームページを保管しているサーバーへ閲覧したいという要望(リクエスト)を投げる。サーバー側はそれを許可し閲覧者にアクセスさせる。閲覧者はそれを自身のパソコンなどに持ち帰り自身のマシンで指示書を翻訳し実行し、閲覧を行う。

ホームページの提供者は閲覧者がいつ来てもよいように、家(サーバー)の鍵(ポート)をあけて待機状態(リッスン)にしておき、ときにはそのリクエストに応じてサーバー側で演算して実行結果として渡してあげる必要がある。最初に問い合わせをし閲覧許可の要望を投げるのも、それを実行するのも行為の主体は閲覧者である。閲覧者の指示を契機にしておこなわれる。

刑法としての解釈

いわゆるコンピュータ・ウイルスに関する罪(不正指令電磁的記録作成等)についてであるが、coinhiveはこの定義からは外れるものと考える。実行形態を見ても実行結果をみてもそもそもコンピューターウイルスの定義に当てはまらない。

coinhiveなどを利用し、ホームページ提供者でもない第三者が他者のホームページを書き換えマイニングスクリプトを設置したり、閲覧者がリクエストもしてないのに保存させたり実行させたり、なにかを騙り詐謀しユーザーにマイニングをさせるマルウエアやウイルスは存在する。しかし、それらのものと今回のWEBデザイナーがWEBサイトの部品としてcoinhiveを設置したものは手続き的にも技術的にも明確に区別できる。

今回の場合、ホームページ提供者が設置したものを閲覧者がリクエストして、それに応じてファイルへのアクセスを許可したものであり、またそれを実行したのも閲覧者である。

閲覧者はそのホームページのURLにアクセスすることで構成する索引(インデックスファイル)を取得し、その索引から閲覧するために個々のファイルを取得する。閲覧者の意図はホームページ全体を完全な形で閲覧することを前提としており、その意図に添った動作を行っているといえる。

プログラムや提供されるホームページを著者の著作物だと考えれば、著作者人格権うち同一性保持権は適応されて然るべきであろう。公衆送信権をサーバーに委譲しているに過ぎない。

もし、閲覧者の意図がホームページの完全な状態の実行ではなく、作者が意図しない形で閲覧をしたいのであれば、その閲覧者の意図に沿ってHTTPリクエストを逐次段階的に処理していく必要がある。TCP/IPのプロトコル(決まりごと)はそれを可能にしているが、手順が煩雑になるために、閲覧実行時(ブラウジング)に実行権限を委譲することでブラウザーがリクエストと応答をまとめて代理処理されている。

一般的なホームページ閲覧ソフト(ブラウザー)はjavascriptの実行を許可しない設定に切り替えることができるし、httpプロトコルをブラウザ任せにしなければ、その取捨選択をおこなう機会は失われていない。
インターネットを構築する技術仕様はRFCで公開されており、それに則ったやりとりの範囲でおこなわれる。しかも今回の件は、ブラウザが許可した範囲内でしか動けないJavaScriptの話しである。ページを立ち去れば終了するのだ。

仕様上そのようにはなっていないので、閲覧者側に気がつく機会は提供されなかったものとは言うことはできない。その機会をブラウザに権限委譲することで煩わしさから逃れているのだ。現代において一般的なホームページ上でも数えられぬほどのJavaScriptが動いている。もし、chormeブラウザを使っているならF12ボタンを押せば、現在どのようなファイルを取得して実行していて、ネットワークの状態などを検証することは容易に確認することができるだろう。確認してみるといい。そのうちいくつが閲覧者の意図に沿ったものだろうか?ホームページ設置者すら意図していないものもあるかもしれない。

coinhiveの実行はホームページの閲覧には不必要な挙動であり、正当な理由のないものとの意見、解釈もあるだろう。だが、ホームページ提供者の意図を閲覧者が定義することはできない。製作者が意図する完全な状態はcoinhiveを含むものとする著作者意図を閲覧者側の閲覧したいものの意図に沿わないから不正な電磁的記録であるとしてしまう危険性を今一度考慮する必要がある。

著作物と閲覧者が異なる人物である場合、閲覧者の意図を過不足なく斟酌して、著作者が著作物を用意することはできない。閲覧者の意図によって、その内容が不正指令電磁的記録になるのであれば、その影響範囲は現行のインターネット上の仕組みの根幹にも影響する。

インターネット初期の頃、ホームページを開くと自動で音楽が流れるようなサイトも多くあった。現在の流行りはサイトを閲覧するために動画広告を強制的に視聴させるようなホームページも多い。
これらの動画を流すために、見えないところで広告をより効率的に見せるためのトラッカー、アクセス解析などが動いている。情報を取得しユーザー上のマシンリソースを使用している。coinhiveと、広告などとの違いを社会的コンセンサスという不確かな定義のものの上に置いてしまうと、技術的にはそれらを区別することはできなくなるだろう。 欧州のGDPRのおかげでcookieなどはオプトイン形式になり可視化されつつあるが、 認識されていないだけで見えていない広告関連の仕組みは実に多い。ユーザーには一見認識することができない非常に多くの構造体が目に見える仕組みを支えている。

ホームページ提供者が閲覧者のマシン演算力をより多く必要とする部品を設置することにマナーとしては諸説紛々あるやもしれないが、これをもってコンピュータウイルスの定義を当てはめるのは定義を拡大しすぎである。

coinhiveの評価と程度の問題

ホームページの維持管理のためには、閲覧者が24時間いつきてもいいように電気をつけて待っている必要がある。経済的利益の確保はホームページ更新の動機になるばかりでなく必要な経費であり正当な理由の範囲内として考えることができる。 というより設置者が得られる利益も、閲覧者に見込まれる不利益もはたして公の議論にあたいするほど影響があるほどボリュームがあるものとは考えられない。いったいいくらの経済被害がこれによって生じうるのか。捜査や公判維持にいくらの経費をかけているのか。

coinhiveが問題となったのは、おそらくは、ホームページ改ざんなどで他人のホームページにそれらを埋め込むウイルスが流行ったことによりウイルス対策プログラムのパターンファイルに登録されたことをきっかけにウイルスと誤認されたことをきっかけにしているにすぎないように思う。また、仮想通貨のマイニングといういかがわしさが拍車をかけているのだろう。

だが、いちWEBデザイナーがホームページの部品として設置できる程度のものに、刑法犯に問うべきような過失や未必の故意がありえるだろうか?

いったい閲覧者に幾らの経済的損失を与え、幾らの不当な利益を得たというのだろうか? ホームページ閲覧中の滞在時間、javascriptがブラウザ上の割り当てたメモリ内とCPUの優先順序で動ける範囲で消費できる電気料金?数円、よくって数十円、どんなにがんばっても数百円もいかないだろう。見込める利益も予見の範囲、たかが知れている。

coinhiveで逮捕されたと話題になった当時、評価のため、オーストラリアのユニセフが設置したcoinhiveにアクセスしたり、通常のサイトと閲覧比較をしてCPU利用率などを比べてみたことがある。

下記は、量販品のメーカー製パソコンでCPU50%でcoinhiveを回したときのCPU可動遷移率だ。

次の画像は動画が再生される毎日新聞社のニュースページのCPU可動遷移率。

CPU稼働率の上限を制御できる分、coinhiveのほうがまだ閲覧者のPCには優しい。 電気泥棒だなどと非難する声もあるが、動画広告は閲覧者の時間泥棒である。通信帯域も食うことから、中継機の電気も食うし、その後のハードディスクの保存量も食う。 個人的にはホームページ閲覧の滞在時間なども勘案すればCPU利用率を2-30%ぐらいに絞ってくれるのならば動画広告より歓迎すべき未来のようにも思える。

画面のはじっこでチラチラ変な動画がぴょこぴょこしていたり、得ようとしている情報とは関係ないPR情報が記事に割り込んでくるのは苦痛なので、こういう収益化手段の遷移は歓迎したい。

たしかに仮想通貨マイニングはうさんくさい。coinhiveも終了した。だが、分散コンピューティングは将来は公益に資する可能性が大きくある。

いま人類を悩ませている新型コロナウイルス(COVID-19)。この解析に分散コンピューティングのFolding@homeプロジェクトが動きはじめている。
だがどうだろう、もし誰かが、これらをブラウザ上でも動くようにするプログラムを書いて、ホームページ上に置くことでこれらの解析に貢献できるものを作ったら? 日本では設置した人も、設置できるコードを書いた人も刑事罰の対象として逮捕されてしまうのだろうか。もしされないのであればその違いはなんであろうか。罪刑は法律が規定する範囲で運用されるべきもので、刑法犯については特に慎重に検討願いたい。

その他引用とか参考とか

BOINC is used by many volunteer computing projects.
boinc.berkeley.edu/projects.php

【寄稿】コインハイブ事件 意見書ご協力のお願い
www.hacker.or.jp/coinhiveopinion/

違法マイニングとされたcoinhiveの法と技術のはなし
kuippa.com/blog/%e9%81%95%e6%b3%95%e3%83%9e%e3%82%a4%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%a8%e3%81%95%e3%82%8c%e3%81%9fcoinhive%e3%81%ae%e6%b3%95%e3%81%a8%e6%8a%80%e8%a1%93%e3%81%ae%e3%81%af%e3%81%aa%e3%81%97/

新型コロナウイルスの解析、分散コンピューティングで誰でも参加できるように 「Folding@home」が対応
www.itmedia.co.jp/news/articles/2003/15/news015.html


プログラマーズカフェ10周年


この6月でプログラマーズカフェが10年を迎えたそうな。まったく気にすることもなく普段どおりだったのだけど、10年一昔で何も変わらないといえば何もかわらないし、いろいろなものが変わったといえばいろいろなものが変わった。

10年前の 2009/6/4 に三鷹プログラマーズカフェβと称して第一回が三鷹産業プラザにて開催された。
そこに行けば技術の話しができる誰かがいるという、ふわっとした会で、発表したいことがある人はLT(ライトニングトーク)で発表すればいいし、もくもく自分の作業しててもいいし、まあ好きにすればいいよというゆるゆるの会である。平日昼間に都内からみれば辺境の三鷹で開催という会だったのだけど、初回は50人以上100人近い人達がわさーっと集まって泡を食った記憶がある。

それから、2013年4月ごろまで毎週木曜、計184回開催するというクレイジーな期間を経て、そこから武蔵境の武蔵野プレイスで毎月開催した。次回以降は3ヶ月ごとの開催にペースを落とす予定だ。

プログラマーズカフェを始めた当初はまだ都内でもIT系の勉強会もほとんどなく、フリーランスという働き方も珍しい時代。当時は三鷹市が推進していたSOHO(スモールオフィス・ホームオフィスの略)政策や三鷹のIT関係の事業者団体(これも当時はシステム開発会社が商工会では理容室などのサービス部会に所属したり、土木建築の工業部会に所属したりとばらばらであったために、ITはITでやりましょうやということで始まった業界団体。)の理事を自分がやっていたことなどもあり、

「IT技術者の人たちが集まれる会をやりたんだけど。」
「平日昼間ならどこかしら場所開いてるし、いいよ。」

という、お話しのわかる、大人な方たちのご助力と、運営にご協力いただいた皆様のご助力で開始することができた。ちなみに当時開催場所にしていた三鷹産業プラザとは三鷹市が出資した第三セクターの企業が管理するインキュベーションなどもかねた施設である。

当時はリーマンショックの後遺症が深刻化して、会社がばったばた潰れている頃で、おもに技術者派遣系の会社の社長さんが、社内で技術者が余っているんだけど・・・という話しを聞いたのも開催動機のひとつだ。技術者を社内で遊ばせておくなんてもったいないな。いろんな技術がガンガン生まれてるんだから合同で勉強会でもすりゃいいじゃない、というのもあったのだけど、やってみると従業員を得体のしれないただの茶飲み話しにいってきていいよという危篤な経営者の人はほとんどいなかった。

かわりに集まったのが平日昼間に集まれる結構とんがった人たちだった。

平日の昼間に三鷹に来れる人というのはどういう人達だろうか。
本当に様々だ。小学生から古希まで。バリバリのエンジニアから、失業中、転職活動中の人、学生、これからプログラミングをはじめてみたい人、すでに隠居している人、これから起業したいひと、すでにひとやま当て終わった人、駄菓子屋さんと呼ばれるような人から、もう、あれやこれやごった煮にしてゆるゆるびんびんにしたのがプログラマーズカフェなのだ。世間界隈ではマニアックすぎる話題でも誰かが反応することもあるし、ああ、あの話しねみたいな話しで談笑できるぐらいにレンジだけはとにかく広かったように思う。ただ、世間一般の「勉強会」だと思ってこの会にうっかり来て愕然とするパターンも多かったようにも思う。

参加したその回にどんな発表があるか、話題があがるかなどはその回の参加者の顔ぶれででしかないので、毎回なにがおこるかはわからない。本当にしょーもない話しだけで終わるときもあれば、踏み込んだLTがいくつもある回も超稀にだがあった。

三鷹で184回+武蔵野はざっくり72回。お? 計256回?
atndに参加登録されている三鷹分をざっくりsumするとのべ531人だったようだ。 常連さんはほとんどatnd登録もせずに着てたし、夜に開催してた大きめイベントも何回かやったので、武蔵野分もあわせればユニークでも千人は超えるであろう人たちが参加しているのではないかと思う。あんなサービスやこんなサービスをつくった中の人達や、あんな本やこんな本の著者なんかも来てた。今日はすっごくディープだったねなんていう回もそりゃなくもない。

数時間の本会のあと、カフェなどに移動して二次会三次会をして夜までずっとあーじゃないこーじゃないだべっていて、まるで大学生のサークル状態なのである。技術やビジネス経験がついているぶんかえってタチがわるいかもしれない。

この10年で時代がすすみオープンソースとかが一般化して本格的な商用に耐えるようになると大きい企業体に属していない人でも小資本でそこまで高くないスキルでもフリーランスという形で独立ができるようになった。都内では勉強会もテーマを絞ったものが盛んに開催されるようになった。
プログラマーズカフェを始めた当初はなかったコワーキングスペースという業態までいくつもできるほど、フリーランスという業態も一般化し昨今は働き方改革の関係でさらにこの流れが加速している。

三鷹から武蔵野に移動し毎月開催にしたのは、このコワーキングスペースが実験的に開業し、どうもいけそうだねと商業的に本格的のローンチされたことで、ひとつの時代を超えたからだ。集まるならコワーキングスペース作ったから、参加者から金あつめて使えと、でも、ま、そこまではできないなと。まあ、いい加減、追ん出されたともいうが。

10年前と比べて、プログラミングをめぐる環境は変わっただろうか。
小学校でプログラミングを教えるという話しはあがっているが、なんと紙のノートに穴埋めでするんだみたいな、笑えない話しもあがっている。この10年ネタには事欠かないほど、絶望する話、希望にわく話し、いろいろな話しがあった。3歩歩くと忘れるショートメモリのせいで、まったく具体例をあげて紹介できないのが残念であるが、日本にいる技術者諸兄はやるときはやるので、プログラミング界隈の未来もほどよく幸せなものになるのだろうと楽観している。

最近はろくなプログラムを書いておらず元プログラマーというレベルになってしまった。紅茶屋は黙ってタピオカ屋でもやっておけとの会の皆様からのお達しだが、きっとそのうち、なにか愉快なことができればいいですね。稀からはじめて類をなす。


中小企業! はい、技術で返してくださいね。


若年層に対するプログラミング教育の普及推進に向けた調査研究報告書よむよむ


よむよむシリーズ第うん段。

若年層に対するプログラミング教育の普及推進に向けた調査研究報告書
平成29年7月 株式会社 電通 総務省 情報流通行政局 情報流通振興課情報活用支援室
www.soumu.go.jp/main_sosiki/joho_tsusin/kyouiku_joho-ka/jakunensou.html

調査報告書とあるけれども、実施後のアンケートを纏めたものなので、この手の資料をさらにエッセンスにするのはしんどいね。調査報告書というよりは、助成金絡みの実証実験の実施報告書。

元ネタは全国11ブロック11団体により行われた、クラウド利用型プログラミング教育実施モデル実証。
調査研究報告書の中ではこれの実施期間が書かれてないのだけれども、「平成28年度第2次補正予算 公開講座の日程」資料を見る限り、平成29年(2017年)の7~11月頃に開催されたものについてのの模様。

図表 2-1 プログラミング講座の流れと本書参考箇所

少し冗長な報告書だったので、項目の順序等は入れ替えたりなんだりした。

実施モデルの検討

実施モデル検討におけるポイント

  • 地域や教育委員会・学校との連携
  • 地域性(地域の特産や伝統)を考慮したテーマ、カリキュラムに

各授業がどのように開催されたのかがここではなく、詳細は読み取れなかった。ポイントであげられている項目をみると教える側の都合であり、これ教育のモデルじゃないよね。

メンター育成

・プログラミングスキル以上に子供との接し方やファシリテーションスキルを重視した

・地域に根ざした指導者(メンター)を育成し、教育ノウハウを伝える
・基礎的なプログラミングスキルと子供への接し方に関する知識が必要最低限のスキル

プログラミングスキルなしでも、子供への接し方に慣れている人が優先されたようだ。

必要最低限という言葉に現されているように、できる子は放置しがちな日本の教育姿勢が伺える。
だが、プログラミングとか論理思考に適正がある人というのは出現割合がすくないので、十把一絡げの教育とは一緒にしないほうがいいように思う。これではとんがった才能を持つ子が潰されてしまう。

トップノッチを育てるなら初期メンターにもせめてもマジシャン級ぐらいにはアクセスできるパスは儲けておくべきだ。

実施環境の準備

学校のPCはソフトウェアの追加インストールが困難な場合が多い。
実行環境をインストールしたPCを別途持ち込んだケース/…/端末の調達・持ち込みには大きなコストが発生するため、ScratchやHour of Code等のブラウザベースで動作する教材の利用や、実証環境をインストールしたUSBスティックタイプPCを持ち込む

プログラミングに熟達した人でも実行環境を整えるまではしんどかったりする。だからDockerとか、最近だとKubernetesがはやったりするのだろうけども、公教育だといろんなリソースの問題で難しいかもしれない。

ここでも全員がハイスペックのマシンである必要はなくて、低スペックでもいいんだけれども、芽が出つつある子を足並み揃えるためにロースペックに縛るような真似はしてほしくない。BYOD(Bring your own device)がんばってほしいですね。

メンターの確保

モチベーションの向上方法としては、メンター同士の横連携の促進や、活動へのインセンティブとして最低限の報酬の支払い、大学単位の認定、インターン制度の活用、公的機関によるメンターの認定制度等が考えられる

これって労働の衛生環境であって、内発的なモチベーションに関わる部分じゃないよね・・・。
まあ役務労働に近いから甘い言葉で誘って徴用するなら、労働環境も整える必要があるとは思う。
つか、「最低限の報酬」とあるけれども、なんで最低限なの?
なんでも機運の情勢でやりがい搾取、安く済まそうとする風潮よくないよね。
効果効用を明確にして、つけるところには予算確保して継続的なしくみにしないと。

地域でプログラミング教育を継続する際に必要とされる機能・人材

  • 継続的に地域のプログラミング教育をサポートする人材・団体
  • 地域の小中学校の授業をサポートする人材
  • 地域で発展的なプログラミングを学習できる場を提供する人材・団体

これ今までの白書でも書かれてたけれども、これ「不足する人材」だ。
いないもんそんな人。ないものねだり。
いてもこんな状況で手なんてあげようものなら使い潰されるだけだから隠れるよね。

メンターに必要とされるスキル・ノウハウ

図表 3-2 メンターに求められるスキルのイメージ

ふふ。「不足する人材」だね。スーパーマン信仰かな。ひとりに全部をもとめるのはやめよう。

メンター研修

本実証で育成されたメンターのうち、プログラマーやプログラミング経験者は1/3程度であり、半数近くはプログラミング未経験者であった。

図表 3-6 研修受講前のメンターのプログラミングスキル
図表 3-7 研修受講前のメンターの教育経験

教育関係者が優先された図。ここ難しいよね。

各実証地域におけるプログラミング教育講座の概要

教材

  • Scratch(スクラッチ)
  • レゴWeDo 2.0
  • National Instruments「LabVIEW」(ビジュアル言語)
  • python(テキスト言語)
  • 教育版レゴ マインドストームEV3(ロボット)
  • Ozobot(ロボット)
  • OzoBlockly(ビジュアル言語)
  • ScratchX(ビジュアル言語)
  • AruduinoX(サーボモーター)
  • Audiuno(テキスト言語)
  • アーテックロボ(ロボット)
  • GLICODE(お菓子を用いるプログラミング体験ツール)
  • Hour of Code(ビジュアル言語)
  • ルビィのぼうけん(アンプラグド)
  • Swift、Xcode(iphoneアプリ開発)
  • Gamesalad(テキスト言語)
  • HTML/CSS、Brackets・Mozer(テキスト言語)

・・・。テキスト言語ってなんだろう・・・・??
すごいな「テキスト言語」とかでググると教育界隈がいくつもでてくる。
はっ!もしかしてスクリプト言語のことか!!?

スクラッチはスクラッチなんだな。ブロック言語とかじゃないのか。
アンプラグドってなんじゃらほい?エリック・クラプトンか?プラグインじゃなくて仮想環境で動くなにかかな?あれ、ルビィのぼうけんって、北欧の女の人が作ったやつじゃなかったっけ?
Swiftとかはiphoneアプリ開発になっちゃうのな。
不思議分類。実施者の自己申告かな?なんだろうこれ。

小学生ならScratch一択かな。

お金のある家庭で小学校高学年から中学生なら教育版レゴ マインドストーム。
レゴはすでに国際的な教育プログラムを確立しているので、STEMとかチームビルド、プレゼンテーションまで学べるので超英才教育向けにいいと思う。何回か国際優勝したチームの某監督にだいぶ吹き込まれてるので、中立的な見方ができてないかもしれないけれど。
それより上で興味があれば、AIとかにまでタッチしうるpythonとかその他の「テキスト言語」でいいんじゃねぇのと。

unityとかを採用したところはないんだな?なんでだろう。今の中高生とかならunityスタートのほうがいいと思うのだが。

スペック重すぎ問題かな?サンプルコンパイルしただけで実行ファイルG単位だもんな。

自分だったらhtml5あたりで、UserMediaつかってカメラとか音声弄らせるかな。ブラウザ動くぐらいの実行環境でいいし、使うのもJavascript+html/cssぐらいだし。
ま、ブラウザの仕様変更ですぐ動かなくなるけれども。
まあ、そういうしちめんどくさい環境の部分は内包しておいてくれるのがScratchだからやっぱScratchでいいんじゃないの。

教育理念

  • 物事を創りだす楽しさ
  • 「ものづくり」に対する興味の増進を促す
  • 「ものづくり」を通じて自分の特性を知り、自分の能力を伸ばす

気になったのはこれ。
ものづくりとかがあって、なんか「うげぇ」とおもった。高度成長期の亡霊だ。
「ものづくり」と「プログラミング教育」は混同すべきではない。ものづくりの評価尺度ではプログラミングを評価できないからだ。
ものづくりを絡めてしまうと「アルゴリズム」などの不定形、アウトプットが目に見えないものないものが評価できない。

信越 (スタープログラミング)
プログラミング教育を手段として、子供たちの学び合いをベースに、以下の5つの資質・能力を身についけることを目標とした。

-創造力・イノベーション
-論理的思考力
-問題解決力
-自己肯定感
-プレゼンテーション能力

目標は理念じゃねぇとかいろいろあるかもしれないけれども、教育理念(教育目標)としてはこれが妥当なのではないか。
プログラミングはものづくりじゃなくて、仕組みづくりだからね。思考力や解決力をアウトプットされた製品(ガワ)でみるべきではないよね。

プログラミング教育講座に関するアンケート結果ピックアップ

図表 4-4 受講者の講座満足度

【受講者】Q2.1 プログラミングは楽しかったですか?

やたらに高い満足度が92%もある。
今後、プログラミングを続けたいですか?の問いには「今後もプログラミングを続けたい。」が7割もいた。

図表 4-6 保護者が希望するプログラミング講座の形式

【保護者】Q3.2 引き続きプログラミングを学ばせるとしたらどのような形式が良いと思いますか?

学校の授業として実施して欲しい。:放課後教室やクラブ活動として実施して欲しい。
6:4と割れている。なんとなく察せられるが興味深い。

子供の変化

(1) 21世紀型能力について
プログラミング教育には、21世紀型能力の向上に寄与すると期待されている。

・・・21世紀型能力?
唐突にでてくる21世紀型能力。21世紀型能力の説明はない。一般常識なのかな?

図表 4-10 プログラムを修正する際の動き

こんなん大人でも何をどういう風に修正するかで対応が違うので、これを見てもなにも言えないなと思った。
周りの人に聞いてばかりでは伸びないなとも思うけれども、手持ちの情報では解決できないのにまったく聞いてこないとただ無駄な時間を過ごすだけなになるので、聞かないといけないこともある。
パラメーター系の言語なら、細かく修正したほうがいいし、ブロック型なら命令の組み合わせを変えることで解決できることもあろう。設計が未熟ならフルスクラッチで作り直すのも有効。

図表 4-13 ロボット教材利用の有無別、受講者の継続希望割合

いやぁ、ロボット押しだなぁ。
ものを売りつけたいっていう商魂が透けて見える。
そりゃフィジカルコンピューティングのほうが子供は楽しいけどね。こういうのも、全員一律な環境にする必要はないよね。
教える側の都合で、学ぶ対象を制限するのはよくない。参加者のアンケート回答による定性的な評価ばかり。これでは教える側が経験が積めない。

プログラミング教育に関する支援体制等の調査

本調査におけるプログラミング教育とは、「子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むこと」

個人的な考えだけれども、子供のうちはコンピューターを使う必要すらないように思う。

2人ペアになって電話越しとかに相手に指示を伝えて動いてもらうというような指示命令および状態報告だけで、たぶん詰まるだろうし、楽しいんじゃないかな。
おもうように動かない相手のみが持つ不完全情報を制御しながら、目的を達するって多分大人でもなかなかできないよね。確かNASAの宇宙飛行士訓練で、片方が地図を持ってみたいなペア研修あるよね。

図表 10-2 プログラミング教育に携わるプレイヤー

この図だと国からの普及促進ってあるけれども、学びたいという子供からの欲求をみたしてあげる環境を整える側面も無視していいものではないよね。
プログラミングとかは教授の関係ではなく、flipped learning(反転学習)とかactive learning(能動学習)の要素が強いので、能動的に学びたい欲求を持つ子を放置しない仕組みを強化したほうがいいように思うな。

図 1-15 メンターの職業(N=73)

ほとんど学生。教授に引っ張られたのかな?

図 1-16 プログラミングスキル(N=94)

高度なスキルを持つひとが16%もいるならいいとおもう。
エンジニア志望で職についてても高度なスキルを持つ人そんな割合でいないと思うし。

おまけ、感想

エビデンスベースドラーニング

別件、しつっこくエビデンスベースドラーニングについて引用しておく。

教員は担当教科に関する知識はあるが,教授スキルは経験から獲得する。
EBEは,教育・訓練への教育予算の裏づけ(インプット指標),そして,費用対効果の視点からの政策評価(アウトプット指標)の2つの面で政策プロセスの文脈にかかわるようになる。

www.jstage.jst.go.jp/article/johokanri/60/1/60_20/_html/-char/ja

教授スキルを経験からじゃなく定量的に分析できるといいよね。教科書とか教師に依存するのよくない。
今回の若年層プログラミング教育についても、明らかにメンター、教師側の能力に大きく影響をうけるのだけれども、メンター側にプログラミングの経験がないのが恐ろしくてしょうがない。
そのうえ、インプット指標とアウトプット指標をもたないままなんとなく現場におっつけてしまうのはよくないよね。

教育者のキー・コンピテンシーが、横に展開されないままなのはよくない。

コンピテンシー(英: competency)とは、企業などで人材の活用に用いられる手法で、高業績者の行動特性などと訳されている。

特にプログラミングについては動画を使った教材、Mooc的な教材が重要になることだと思う。オープン教育リソース が日本でも充実してくるといいですね。

Scratchで楽しく学ぶ アート&サイエンス

スクラッチスクラッチ言ってたら紹介してという声がきこえた気がした