緊急連絡システムの利用分析
丹南地区で利用してもらっている、緊急連絡システムも、 LOGを見るともう運用が5年。成果としてまとめる意味もかねて、 利用状況を分析中。
利用推移
まずは利用状況として、学校からの発信件数と、その記事が送られた利用者数をかけた発信者数が、この5年間にどのように推移したかをグラフ化してみた。 これから、利用開始年秋の不審者と豪雨、および昨年秋の新型インフルエンザ+熊の時期に 大量のメールが送られていることが分かる。

内容別分析
次に、どういった内容の記事が利用者に送られているのか確認してみた。 記事の中に状況が分かるようなキーワードを決めて分類を行った。 この結果、記事の36%が不審者に関連する情報であった。 また近年の山村付近での熊などの害獣への注意を呼びかけるものが14%をしめた。
利用グラフ中の訃報やその他については、学校運営上の連絡や学校行事の連絡での 利用であり、23%ほどを占める。 実際、時系列のグラフでも、5月や9月には学校行事に伴い発信件数が他の月に比べて増えている。
発信件数別で最も多いテストとは、実際の保護者にメールが届くのか、操作方法に間違いがないのか確認のための利用である。

通報の即時性分析
プログラム応用テスト返却&グラフィックス解説
プログラム応用のテストの返却を行う。
構造体やポインタ・配列が絡む出題だったので、式の意味を正確に把握できていない人も多い。 解説の際には、式の部分がどういった型なのかを説明しながら、 優先順位を交えて説明を行う。
今回は、出題で解りにくい出題や出題ミスもちょっとあったので、配点には苦慮。
グラフィックス追加説明
テスト解説では、時間が微妙に余るので、補足説明を行った。 CMYKの解説問題で関連する式色系として、 色相Hue・彩度Satulation・明度ValueによるHSV系などを追加説明する。
また、グラフィックスの課題において、様々な開発環境があることを紹介。
- C,C++
- Microsoft Visual C++(Visual Studio)
- Borland C++
- GrWinグラフィックスライブラリ
- Java
情報構造論テスト返却&チェイン法
情報構造論のテストを返却。 25点満点5問出題で4問選択だから、普通に勉強していれば80点 (平均79点)といった状態。 テストとレポートを返却して、解説を行う。 時間が少し余ったので、テスト前の続きということでハッシュ法(チェイン法)を説明する。
チェイン法
チェイン法の最初に説明した方法は、オープンアドレス法で、 ハッシュ衝突が発生したデータは、本来の場所をはずれて次の場所に保管… といった方法をとっていた。しかしながら、単純なオープンアドレス法では、 ハッシュ表サイズ以上のデータを覚えられない。
チェイン法では、同じハッシュ値になったデータをリストに連結して保存する方式。

// 電話番号をハッシュ法で保存する。 struct List { int phone ; struct List* next ; } ; struct List* hash[ SIZE ] ; // NULLで初期化 void entry( int ph ) { int idx = hash_func( ph ) ; // 授業ではリストの説明の際の補助関数で説明 // hash[ idx ] = cons( ph , hash[ idx ] ) ; struct List* p ; p = (struct List*)malloc( sizeof( struct List ) ) ; if ( p != NULL ) { p->phone = ph ; p->next = hash[ idx ] ; hash[ idx ] = p ; } } // hash表に登録されているか? int find( int ph ) { int idx = hash_func( ph ) ; struct List* p ; for( p = hash[ idx ] ; p != NULL ; p = p->next ) { if ( p->phone == ph ) return 1 ; } return 0 ; }
チェイン法の処理速度を考えると、データ件数がハッシュ表より小さい間は、 ほぼリストの先には1件のデータしか入っていない。 このため検索時間は、ほぼハッシュ値計算の一定時間であり、 となる。
しかし、データ件数Nが、ハッシュ表のサイズを超えると、 リストの先に平均「データ件数/ハッシュ表サイズ」件の要素が連なる。 よって、検索時間はデータ件数に比例し、 となる。

うーむ、説明用にいい図はないかと、「チェイン法、オーダー」で画像検索したら、 オーダーメードの装飾品ばっかり…