情報科実践事例報告会2019(神奈川) memo

神奈川県高等学校教科研究会情報部会での発表に関するメモ書き
https://www.facebook.com/johobukai/

Society5.0を意識した授業 ~協力者Aの悩みを解決せよ~
みたいなタイトルで発表します。今年は協力者の方がいて、例年よりも濃い内容になったかなあ、と思っています。
なお、「被験者A」と称するのが正しいのかもしれませんが、怖さを感じる、ということで「協力者A」と表します。

情報テクノロジーでの授業となりますが、狙いとしてはこの、ハード、ソフト、デザインを全部ひっくるめてやってみたい、というのと「問題を解決するという一連の行動」を体験させたい、物作りを身近に感じて欲しい、なんてのが大きな狙いです。

協力者Aですが、概要は以下の通り。

要は、彼の「コミュニケーションを取りたい」という希望をどうやって解決すれば良いのか?
情報コースからのアプローチ、君たちの持っている技術で何が出来るかしら?というような内容で、2学期の計20回ほどで授業を行ないました。

例によって、コードは主にコピペ、ただしデバイス作成(半田付け)なんかは付きっきりで作業しました。
主に使用した物としてPro Micro。自作キーボード界隈の部品を一通り使いました。

実は、昨年はArduino Unoを使い、今年の1学期はMicrobitを使っていて、そこらで代用出来れば良かったのですが。
出来ればPCに対応していて、PCを操作した方が汎用性が高いため、じゃあどうしよう?と行き着いたのがHID機能です。

実は・・・、最初はMicroBit+ipadでなんとかしたかったのですが、スイッチに対する入出力のPin不足に悩まされました。
※しかしスイッチをたくさん使いたい、という要望にたいしては以下の資料通りに解決

ただ、やっぱりHIDのエミュレート機能は必須かな、と。
専用デバイスよりは、キーボードやマウスとして認識させることで壊れてもすぐに容易できる汎用性を得よう、という発想。
しかしこれは、BadUSBなどを代表とするUSBの脆弱性もつけるため、正直、やって良いかどうか悩みましたが、行き当たりばったりで挑戦してみました。

作品例

生徒たちの感想としては、
マイコンやスイッチの仕組みを理解できた
マイクロビットでは作れなかった
便利な物を作る事が出来た
自分用にも作りたい
ボタンを増やしたい
押したかどうかの確認を出来る様にしたい
ディスプレイを付けたい
携帯につなげるようにしたい
楽に操作ができている
マウスの感度を調整したい
手元でレイヤーの切替状況が分からない
濁点の入力が上手く作れなかった
キーボードをエミュレートした悪用の可能性に気をつけねばならない


出るかな?とは思っていましたが、悪用の可能性に言及してきた生徒がいてとても嬉しく思いました。
本当はセキュリティの話で小一時間使いたいのですが、今回の発表では泣く泣く諦め。
大分昔に某マク〇ナルドの配布USBにウイルスが!なんて話が出てから(?)日々進化を遂げているBADUSB界隈。

さておき。
そんなこんなで実際にデバイスを作って、試してみて頂いた後のフィードバックで我々はコテンパンにされるわけです。

使う前

使った後

以下まとめ


キーマップ2種類
https://git.asami.chiba.jp/asami-t/qmkgit/blob/master/keyboards/shiro/keymaps/kadai/readme.md

https://git.asami.chiba.jp/asami-t/qmkgit/blob/master/keyboards/nafuda/keymaps/kadai/readme.md

Be a driver.

自分の人生の、主人公になろう。
自分の行く道を、自分の意志で選ぶ人になろう。
自由に、積極的に、人生を美しいものにしよう。
既存のルールや常識に縛られない人になろう。
自分の行く道は、自分で決めたほうが、楽しいに決まっている。
人生の、ドライバーになろう。
Be a driver.
MAZDA

//単に私がマツダ好き

helix froggy  片手キーボード

遊舎工房さんの公開されているファームウェアが、画像と違う部分があったので勝手に修正。

Froggy キーキャップセット

  /* Base
   * ,-----------------------------------------.             ,-----------------------------------------.
   * |  C+z |   ;  |   [  |   (  |   <  |   {  |             |      |      |      |      |      |      |
   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
   * | KANA |   P  |   K  |   R  |   A  |   F  |             |      |      |      |      |      |      |
   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
   * |  BS  |   D  |   T  |   H  |   E  |   O  |             |      |      |      |      |      |      |
   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
   * | Shift|   Y  |   S  |   N  |   I  |   U  |Space |      |      |      |      |      |      |      |
   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
   * | Ctrl | Gui  | Alt  | Sym  | Num  | OPT  | Ent  |      |      |      |      |      |      |      |
   * `-------------------------------------------------------------------------------------------------'
   */

上記のように、GuiとAltの部分を交換してあります。(写真通り,公開されているhexだと逆になっている)

[keymap]
https://github.com/asami-hoge/qmk_firmware/blob/master/keyboards/helix/rev2/keymaps/froggy/keymap.c
[hex]
helix_rev2_froggy.zip

(途中)自作キーボード ビルド環境の構築覚書

WindowsでQMK Firmwareをビルドする環境作りの覚え書き

1. MSYS2の入手・インストール https://www.msys2.org/
64bitの場合は、msys2-x86_64_********.exe //**にはversion(日付)が入ります

2.MSYS2の更新
MSYS2のアップデートを行います
コマンド:pacman -Syu
を入力しEnter. 


このような画面でとまる場合は、一度MSYS2を終了し、再起動してもう一度。
コマンド:pacman -Syu

しばらくするとYes or Noを聞かれるので、 Y と入力します。

Arduino LCDメモ

1602A I2C アダプターの利用
https://iot.keicode.com/arduino/arduino-lcd-i2c.php

ArduinoでI2Cを使って格安LCDの1602に文字を表示させよう!
https://iot.keicode.com/arduino/arduino-lcd-i2c.php

情報テクノロジー 第?回

今年はMicrobitを使って、共生社会やsociety5.0をテーマとしながら
「身体的な障害を持つ人でも、コミュニケーションが取れるデバイスを作ろう」 を行っていました。
※なんと今年は被験者・協力者もいます

ある班の、自作キーボードを使用したアイディアが大分形になってきたので、少し紹介したいと思います。
※自作キーボードとは、キーボードの形や、ボタンの個数、大きさ、ボタンの種類(EnterやA,B..)などを自由に作れるデバイスです

※なお、この版のアイディアはMicrobitでは限界を迎えたため、急遽別のマイコン(Pro micro)を使用することにしました。


【条件】
左半身しか動かない、喋る事が出来ない人に、コミュニケーションを可能とするデバイスを作る

【使用したもの】
自作キーボード:[shiro] https://yushakobo.jp/shop/shiro/
ソースコード(Ver0.1):https://github.com/asami-hoge/shiro_toggle/blob/master/keymap.c

まだ生徒達の葛藤は続いておりますが、一足先に出来栄えを載せておきたいと思います。
現時点での状況ですが、このあとどれくらいブラッシュアップできるのかが楽しみです。


※今回の取り組みを進める中で、自作キーボード界隈、特にこのキットを販売してくださった遊舎工房さん
また、私の知識不足を支えてくれ、ご指導いただきました Discord鯖 “Self-Made Keyboards in Japan” の
@s-showさん、@shelaさん、@hsgwさん、@takashiskiさん、@hyoshihara04さんに深く感謝申し上げます。

これから被験者の方と打ち合わせながら、より良いものへとPDCAを回しながら、生徒たちと取り組みたいと思います。
取り急ぎ、ご報告まで。

全高情研・40点

発表してきました。
自己採点では40点。

やはり準備不足が目立ってしまった。
そして、コンテンツ的に自分の中で一段落してしまい、
発信への意欲が足りていなかったように思う。

うーん、へこみますなあ。
しっかりしなくては。

資料(PDF)をのせておきます。
明日、他の方の発表から元気をもらわなくては。

和歌山LT

全日制普通科「情報コース」設置校実践報告

第12回 全高情研(和歌山大会)に参加してきます。

第12回全国高等学校情報教育研究会全国大会(和歌山大会) に参加してきます。
http://www.zenkojoken.jp/12wakayama/

今年は初日の、しかもトップバッターで発表することに。
なんてこったい。まだ、何の準備もしていない。

最近は初日の空気に触れながらその日の夜に作成ていたので・・・。
LTも90秒が→45秒になってて、今年は本当にハードル高いなあ。
とりあえず飛行機の中で作れるかしら・・・大丈夫かしら?

もっとこう、計画的に生活しなきゃ、いかんのだろうなあ。

参加される方、ぜひぜひ宜しくお願いします。
話しかけてもらえると、喜びます。
(発表側で参加してると、他の人の発表をあまり聞くことが出来ない)

第7回 江戸川大学 情報教育研究会

第7回 江戸川大学 情報教育研究会に参加してきました。
「小中学校は高等学校の下請けではない」という発言が印象的でした。

私は文科省、小中学校(義務教育)の先生、高校の先生それぞれに、
キーボード入力についてお尋ねしてきました。
実際問題、タイピングのスキルはどの段階でどの程度やるべきなの? と。

・文科省の人からは、「思考を邪魔しないレベル」まで、「義務段階で」というお答え。
・義務教育の人からは、「重要だとは思っているが、いつやればいいのやら」と「キーボードは必要か?」でした。
・高等学校の人からは、「入力という言葉を意図的に読み替えてはいけない。デファクトスタンダードであるキーボードを習得すべき」という意見と、「今後はCBT試験が主流になるだろう、その時にキーボード入力が出来ない、ではその子にとって不利になる。早期の対策が必要」という意見でした。

「キーボード」という入力デバイスの習得を学校で行うべきか否か、に関しては99%の自信しかなくて。残りの1%はCBTが解決しそうな気もしています。なんにせよ、「鉛筆の持ち方」を教えるようなレベルだとは思っているので、これは義務段階で終えておいて欲しいなあ。

参加された先生方、また主催して頂いた江戸川大学の玉田先生。いつもありがとうございます。
沢山質問していまい、失礼致しました。

共通鍵(AES)と秘密鍵(RSA)の違い

暗号化方式の説明についてお悩みである、という話を聞きました。
ふと、私ならどう説明するのか、とメモしておきます。


  1. 共通鍵方式と公開鍵/秘密鍵方式の違い(細かい話)
  2. 例えるならば・・・
  3. 暗号化の説明(簡素化)

1.共通鍵方式と公開鍵/秘密鍵方式の違い

とても簡単に説明しているサイトを見つけましたので、表を参考に読んでいただくのが一番よろしいかと。

(AESとRSAの比較)
AES/RSA
【図解】初心者も分かる”公開鍵/秘密鍵”の仕組み~公開鍵暗号方式の身近で具体的な利用例やメリット〜 より


2.例えるならば・・・

専門的なことはさておき、授業では、どう伝えているかというと。
私は南京錠とダイヤルロックに例えて説明しています。

※昨今は宅配ボックスで例えるのが面白いかなと思っています。

荷物を受け渡す時に、どんな鍵でフタを閉じる(暗号化する)のか?
メリットデメリットを考えてみよう、と。

共通鍵方式

まずは共通鍵方式です。
いわゆるダイヤルロックに例えています。
鍵となる「番号」を共有して、使いまわす。

メリットとしては、送る人、受け取る人、双方からの開け閉めが容易です。速度も速いです。
デメリットとしては、「番号が漏れる」と、大変危険です。 基本的に1対1など、少数相手にしか使えません。
※大量に配布すると、番号漏れの可能性が高まる。
※番号を教えるときには、慎重に。

公開鍵方式

公開鍵/秘密鍵方式です。
いわゆる、南京錠タイプ。

「錠」の部分だけを相手に渡し、「鍵」は自分だけが持ちます。

メリットとしては、「錠」を大量にコピーして、配れます(公開)
デメリットとしては、送り人は「鍵を閉める」ことしかできません。(ロックしかできない。鍵がない。)
慎重に鍵を閉めねばなりませんので、速度は遅くなります。※例えです。厳密には大きく違います


3.暗号化の説明(簡素化)

RSA暗号の簡単な説明です。
※社会と情報では、シーザー暗号レベルしかやりません。
※情報の科学と情報テクノロジーで扱っています。

暗号とは、「第三者が通信文を見ても特別な知識なしでは読めないように変換」したものです。(wikipediaより)
正確な定義はさておいて、これを「素数の性質」と「その計算が難しい」ことを利用して実装しているのだと説明します。

たとえば、「15」という数字があります。 これは 3*5という素数の掛算によって導かれる数字です。
素数同士の積(半素数)では、その性質上、因数が限られています。(3と5の組み合わせしかない)

つまり、これを鍵とするのです。
「15という南京錠」を配っておき、これを開けるには、「3*5と書かれた鍵」が必要だとするのです。
15=3*5が成立したときに、開錠できるようにします。

・「15」ならば簡単に解けてしまうんじゃない?
おっしゃる通りです。
ここから先は、PCの性能と桁数の追いかけっこが始まります。

15は簡単すぎるけども、ならば「175146184831」はどうでしょうか?
素因数分解するにしても、結構な時間がかかりそうですよね・・・?
まさか、2,3,5,7,,,と続けていくわけにもいきません。
(※204749*855419  この桁数でも、PCなら一瞬で解読します)

このように、桁数を大きくすればするほど、計算が難しくなります。
コンピュータ相手でも、十分に時間を稼げる桁数まで増やしてしまえばそれでよい、という考えですね。
実際にはもう少し、複雑にするための工夫がなされておりますが、概要としてはこれで十分かと思います。


とまあ、こんな感じで、大体10分~15分位を説明の時間に割いています。
何かの参考になれば。