社会と情報 第2回 情報システムと暗号化

最近「情報の科学」や「情報テクノロジー」の授業ばかり更新している。
・・・社会と情報も更新しておかねば。

なぜ社情の更新が遅れるかというと、

ズバリ私が自分の授業に満足していないからです。

ハッキリいって、不満です。
酷いにもほどがある。人様に見せられる状態じゃないのです。

でも更新。

第2回では情報システムの歴史や経緯、現代の情報システムの説明や解説をしたうえで、
暗号化について触れました。
流れとしては、解説→板書→解説→暗号化 です。
複合化や暗号化の実習としては定番のシーザー暗号を使用しました。

もうちょっと、まともな資料と、まともな構成で授業をしてやりたい。
そんな思いは確かにあるのに、どうしても日々の雑務に時間を取られてしまう。
もしくは、そんな言い訳に逃げて、しっかり向き合えていないのかもしれない。

※社会と情報に関しては、他の教員(3人体制)と足並みを揃える関係で好き勝手やれていない、というだけの可能性もあります。

なんにせよ、しっかりしなくては。
反省の意味も込めて、社情もしっかり更新したいと思います。

情報テクノロジー第6回 センサーを使ってみよう。

社情や情科も進んではいるんですが更新が追いつかず。
Webベースで授業すると自分でも振り返ったり、まとめるのが楽で良いなあ(本音
コレはおそらく生徒も一緒だと思います。

G-suite、なかなかどうして良いのでは!?


さて、第6回です。
今まではArduinoの使い方、出力の仕方、PWMについて、を学びましたので、
次は入力です。主に超音波センサーの信号を受信してみよう、という物でした。
例によって、課題をそのまま記載します。
サンプルコードは
http://deviceplus.jp/hobby/entry016/ さんの物を参考に一部加工したものです。


超音波センサーを使ってみよう。
【sensor】
#define trigPin 2
#define ehoPin 3

double Duration = 0; //受信した間隔
double Distance = 0; //距離
void setup() {
Serial.begin( 9600 );
pinMode( echoPin, INPUT );
pinMode( trigPin, OUTPUT );
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite( trigPin, HIGH ); //超音波を出力
delayMicroseconds( 10 ); //
digitalWrite( trigPin, LOW );
Duration = pulseIn( echoPin, HIGH ); //センサからの入力
if (Duration > 0) {
Duration = Duration/2; //往復距離を半分にする
Distance = Duration*340*100/1000000; // 音速を340m/sに設定
Serial.print(“Distance:”);
Serial.print(Distance);
Serial.println(” cm”);
}
delay(500);
}

まずは実装!!

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
課題1
距離が測定できている時に、LEDを光らせてみましょう

課題2
距離が一定数(50㎝とか)以上近付いた場合、LEDを光らせてみましょう


ここまででした。
今回はプログラム班と回路班を入れ替え、相互に教え合いながら作業させました。
※普段4~6名の各グループ内で役割分担をしている
※プログラムと回路それぞれ2~3人ずつの配置

流石に最初は難航し、お互いがお互いに思うようにいかずモヤモヤしていたようですが、15分もしたら完全に熱中して真剣に取り組んでおりました。

しかし、流石に時間ロスが大きく、課題1までが限界だったようです。
休み時間も使いましたが、課題2まで終わった班は皆無でした。
※まあ、IF文をきちんと復習していない所為でもある。

彼らが2年時に既習しているのはJavaScript,
今使っているのはC++。

そりゃあスンナリいかないよね。

でもいいんです。
色々ぶつかって、間違えに間違え尽くして、学習していただきたい。

なお、今回一番多く見られたミスは、
「pulseIn」のIが大文字ではなく小文字だったり、Lの小文字だったりしたことです。
私としてはコピペでも良いと言っているのに・・・。
まあでも、コレで次は間違えないね!

最後に例のごとく、提出された動画を載せておきます。
「距離が測れていると分かるように撮影しなさい」
と言いましたが、時間も無い中でなかなか難しかったようです。

うーん、撮影も惜しい!

情報の科学 第3回 (データ量の話)

先に結論からいおう、ファイルサイズ問題は終わらなかった・・・。
授業研究が圧倒的に足りていない。
完全に私の力量不足、指導力不足である。

つい、雑談に逃げてしまう癖をなんとかしたい。
「BLOG書いてる時間で明日の教材研究をする」 だけで格段に良くなるだろうに。
ただまあ、それでも更新は続けたいと思う。
いつかきっと、未来の私、もしくはどこぞの誰かの役に立つことを願う。


さて、今日はファイルサイズについて授業を行った。
私が教えている2年生は、過去何度か触れているとおり1年次で社会と情報を履修しており、情報の科学を履修するに当たって重複した内容は簡単に復習するだけで、そのほとんどを省いている。
今回は授業冒頭に基数変換の確認をし、Excelの関数やその特徴を見直した上で、下記の流れで授業を進行した。

【データ量の話】
1.コンピュータ上において情報の最小単位はビット(bit)である。
2.8bit=1byteで、以降は1024倍ごとにKB,MB,GB,TB…と続いていく。(国際単位系・SI)

【画像のデータ量】
前々回(第1回)で学習したとおり、画像はピクセルの集合体である。
仮に下記のような5px*5pxの「モノクロ」画像があったとしよう。(実際にはホワイトボードにマス目を投射して板書した)

データ量

1.このとき、画像の「マス目」は5*5の25マスになる。
2.各マス目は、「白の時は0,黒の時は1」としてコンピュータ内で処理されている。
3.つまり、「各マス目の情報量は0か1の1bit」となる。

計算式は下記の通り。
5×5×1=25(bit)
25÷8=3.125 (bit→byte)
ファイルサイズ:約3byte


ここまで説明して、下記の流れへ進んだ。

【例題】
200px*100pxのモノクロ画像 の データ量はいくつか?

1. 200(px)*100(px)*1(bit)=20000(bit)
2. 20000÷8= 2500(byte)
3. 2500byteは約2.5KB

※2.4KBとすべきなのかどうかで悩んでしまった。どちらで指導するのが正解なのか・・・。
※便宜上1000で割るか、1024で割るかはケースバイケースで、試験問題なんかだと単位計算についての指示が書かれていることがほとんどである、とは伝えてある。


ここまでで終わってしまった。(時間切れ)

次回は【実際に作ってみよう】 の回。
mspaint(Windows標準搭載のペイントソフト)で100*200のモノクロビットマップを作成させ、ファイルサイズを確認させたい。また、「カラー画像(24bit)の場合はデータ量はどうなるのか」を考えさせた上で、再度作らせ反応を見てみたい。
※この時、各マスの情報量がRGBの8bit*8bit*8bitで24bitとなることを上手く伝えていきたい。

なお、フライング気味ではあるが、私が実際に作ってみた場合は下記のとおりである。

モノクロビットマップ
200px*100px
size:2.79KB (2862byte)

24bit.bmp
200px*100px
size:58.6KB (60054byte)

どんな色を設定しようが、ファイルサイズは変わらない。
興味のある人は是非試してみてほしい。

情報テクノロジー第5回 analogWriteで点滅させよ (PWM)

情報テクノロジー第5回目です。
今回でOUTPUTに関する一通りを終えて、次回からはセンサー類を使用して、INPUT系に馴染ませたいと思います。

例によって今回の課題(原文まま)


analogWrite(PWM)を使って、LEDの明るさを制御しよう。

PWMとは、パルス幅変調ともいう、0か1かのディジタル信号ではなく、0~255までの数値を刻んだ疑似アナログ信号のことである。0はLOW、255がHIGHに相当し、その間に信号の強さとして細かく段階分けする事が出来る。
aruduino uno では、PWMに対応したピンとして、3・5・6・9・10・11の6箇所が用意されている。

練習:下記のサンプルプログラムを読み解いて、回路を作成し、結果を映像で記録・提出せよ。
【LED_PMW】

#define LED_PIN 9
void setup(){
 pinMode(LED_PIN, OUTPUT);
}

void loop() {
 int i;
 for (i=0; i<256; i++){
  analogWrite(LED_PIN, i);
  delay(20);
 }
}

課題1:下記の条件を満たす動作を映像で記録・提出せよ。
練習問題は「LEDはゆっくり点灯し、すぐに消える」 という物であった。
課題1では、
「LEDはゆっくり点灯し、ゆっくり消灯する」を繰り返す挙動を実現せよ。

課題2(上級編):下記の条件を満たす動作を映像で記録・提出せよ。
課題1の挙動を、2つのLEDで実現せよ。

ただし、LED1とLED2は点灯、消灯を互いに逆の状態で行う物とする。
※LED1が点灯していく時間で、LED2は消灯する。


生徒たちは2年生でJavaScriptを使ったプログラミングに関して学んでいるが、
「i++」などの記載については一切の指導をしていない。
自分たちで意味を調べながら作成していた。
ただ、50分という時間では流石に短かったようで、(それでも課題1は出来ていた!)
上級編を時間内で完成させる事は出来ていなかった。

しかし、休み時間に突入しても全ての班(!)が粘り強く挑戦し、
1つの班では実装に成功していた。
※第6回の最初に紹介したいと思う。

例によって今回提出された動画を掲載しておきます。
※今回は個人情報保護のため、音声を削除しています。

情報の科学 第2回

前回まではディジタル形式のなかでも、ベクタ画像とラスタ画像の違い、
アウトラインフォントとビットマップフォントの違い、などについて解説した。

※大まかなノートの再現を掲載しておく。

note_科学1


「情報の科学」なので(社会と情報との違いが現れる部分として)
今回はファイルサイズについて触れ・・・る予定であったが、
前提条件の2進法や10進法、16進法への相互変換(基数変換)の習熟度に不足が見られたため、急遽、相互変換についての学習を行った。

内容としては下の画像のようなプリントを配布し、解かせるという物であったが、予想以上に難航していた。

基数変換

基数変換については1年次に「社会と情報」での既習事項であるため、対応表などを用いて軽く説明するにとどめた。

binhex対応表の例
手抜き加工sry!!

その後は演習問題をだし、4人ごとでのグループ学習として定着を図る。
この時点で授業の残りが10分少々となってしまったので、これだけでは悔しいと
2進法:Binary 「BIN」
10進法:Decimal 「DEC」
16進法:Hexadecimal 「HEX」
だという説明をした上でExcelを起動させ、
2進法→16進法のことを、Binary To Hexadecimal だということで
=BIN2HEX()
=HEX2DEC()

などと説明し、対応する関数について学習した。
(上図の問題をEXCEL上で再現し、関数によって完成させた)


・・・次回こそファイルサイズ問題を終わらせるんだ。。。

授業の実践報告を行いました。

所属している情報部会に授業実践の紹介をしました。
「社会と情報」の授業の中でも、
「著作権」と「情報のディジタル化」に関係する話です。

PDF投稿テストをかねてこちらにも原稿をUP.

※プレビューは大変読みにくいので消しました。原本参照のこと。
もうちょっとマシな方法はないのかしら・・・。

原本はこちら

情報テクノロジー第4回 信号機を作れ(pingテスト)

急遽、授業変更で行われた4回目。
私が学校に居ないタイミングで発生しましたので、
生徒にはGoogleのclassroom内で課題を用意して完全に自習状態。
が、割と出来てました。大変うれしく思います。

課題:信号機を作れ

【指示した内容】※原文そのままです

複数のLEDを光らすことは前回習得している。
今回は、LED3個(できればRGB三色)を使用して信号機を再現せよ。

※提出方法については前回同様のこと。
※クラスルームのテクノロジーに参加していない者は、余裕があれば参加しておくこと。


ここまで。
なんだかんだ、第3回ではそれぞれの制御についてなどで口を出してしまいましたが、今回は完全に投げっぱなし。
提出された物をまた2つ程ご紹介します。

※今回の音声には生徒名などがありませんので、試しに加工無しでUP


2つめは面白いミスをしています。意図的なのか、プログラム班と回路班の意思疎通に齟齬が発生してしまったのか。
当日は学校におりませんでしたので、次に会うのが楽しみです。


※(本稿はping機能のテスト投稿です。内容はhttp://asami.chiba.jp/2018/04/24/情報テクノロジー第4回-信号機を作れ/ と同一の物です。)

ベースラック

レビューも何も、自作のラックだ!
でも家で色々工作したい、
ケーブル多過ぎ、
GEEKな生活大好きって人はあるとおすすめ。

ウォールバーでもいいんですが、やっぱり移動型が便利なんですよね。
違う部屋で作業するときとか。
ベースを引き連れて作業できるのは効率的。

下に工具やメディア、プリンターやPC本体など重たい物を入れといて、上は実際にいじる物、直す物、適当な資料なんかを置いておく。
側面にケーブルやコントローラー、その他諸々かけてく感じ。

ベースラック

使った物:ジョイフル本田 オリジナルスチールラック
https://joyfulhonda.jp/feature/detail/579/

※アイリスオーヤマでも良いんですが、徒歩圏内にジョイフルあるんで・・・。

MyROOM

どうもオタクです。
情報教育に関係する冊子に寄稿せよとの事で、必死に執筆活動を「しようとしている」まま、二日間を無駄にしました。
ヤバイ。※家のキーボードが壊れ始めていて、やる気が出ない!

この趣味カテでは使ってみた製品やらなんやらを定期的にレビューしていこうと思います。
ざっと机の周りをupしておきます。大きく変わる前に一通りレビューしていけたらいいなあ。

通常時


作業風景

趣味。

更新癖をつけるためにレビューとか、趣味的な内容を。
教育的ではない内容をまれに書こうかと。

BLOGカテと完全に切り分けたりはできないんだろうか。