見出し画像

文科省の情報Ⅰ教員研修用教材第4章を検討する(3)さまざまな形式のデータ

学習21は,「さまざまな形式のデータとその表現形式」

画像2

 5番目の「社会的な問題を発見する授業」の,「社会的な問題」とは何かが不明確だが。そのあとを読むと,「社会的な問題」という言葉のイメージとは異なるようだが,他にいい表現はないだろうか。
 ともかく,見ていく。

(1)リレーショナルデータベース
データの蓄積や検索が容易にできるよう,一定の形式でデータを整理してデータベースが用いられている。デー タベースのうち,特にリレーショナルデータベース(関係データベース)が広く用いられている。

 データベースについては,現行の教科書でも扱っている。ただし,「社会と情報」では発展扱いだ。リレーショナルデータベースの説明もある。情報Ⅰでどのような扱いになるかはわからないが(実教出版のWebページにあるダイジェストには載っていない)データベースについてはちゃんと学んでおくほうがよさそうだ。表計算ソフトで扱うべきデータと,データベースソフトで扱うべきデータの違いはちゃんと理解しておくほうがよい。Excelにはデータベースの機能もあるが,やめたほうがいい。筆者はExcelでデータベースを扱ったことはない。データ入力のためにExcelを使うことはあったが(他の人に,他のパソコンで入力してもらうため),データ処理は FileMaker で行った。
 なぜかといえば,データベースで扱うデータ形式:レコードの概念:なら,「コピーするときにずれた」などということは起こらないからだ。大事なデータを扱う省庁でデータベースをExcelでやっている(その結果事故を起こしている)などというバカなことは一刻も早くやめてもらいたいものだ。

 とはいえ,データベースを扱うのに,どんなソフトを使うかが問題。

リレーショナルデータベース には,有料のものの他に MySQL,PostgreSQL などの無料で使えるものがある。リレーショナルデータベースを 操作するには,SQL(Structured Query Language) という言語が用いられる。

となると,高校生にはかなり高いハードルになりそうだ。
 具体的に言うと,MS-Office の Access は難しい。学校のパソコンに MS-Office  が入っていても Access はないかもしれない。前述のように,筆者は FileMaker を使っていた。その前はだ。桐からFileMaker に変えたのは,Windows から Mac に変えたから。Mac 版の桐は今でもない。
 FileMaker は簡単に使えた。しかし有料なので授業用に導入は難しいだろう。やるなら LibreOffice だ。とはいえ,筆者は使っていないのでこれ以上の言及はできない。

 研修用教材には,簡単な蔵書目録を作る演習がある。蔵書データは学校の図書室から CSV でもらってくればよいだろう。筆者は実際そのようにして,FileMaker の簡易版 Bento で蔵書目録を作っていた。(いまは Bento はなくなった)

(2)データのさまざまな表現形式
 つながりを表すデータなど,表形式以外の方法でデータを表現した方が扱いやすい場合がある。そのようなデータを表現する方法を理解する必要がある。

ここでは,離散グラフと隣接行列を紹介している。

画像2

隣接行列は2次元のリストで表せばよい。離散グラフをデータ化するのに,「キーバリュー形式」を示している。

そこで,接続している頂点のリストを頂点ごとにデータとして,次のような隣接リストとして表現する方法が 考えられる。頂点 a には頂点 b と c が接続していることを示し,頂点 b 以下も同様である。
{a : [ b,c,d ] , b : [ a , d ] , c : [ a , d ] , d : [ a , b , c , e ] , e : [ d , f ] , f : [ e ] }
隣接リストでは,注目している頂点という項目と,接続している頂点のリストという値との組として表現されている。 このように,項目(キー)と値(バリュー)との組により表現されるデータの形式をキー・バリュー形式という。

Pythonなら辞書型。JavaScript なら JSONだ。
続く演習課題では,JSON形式のデータをネットからダウンロードして使うものが示されている。

しかし!

(3)Web API によるデータの取得
 ここでは例として,YAHOO!JAPAN デベロッパーネットワークに登録し,気象情報 API を使って,JSON 形式 と XML 形式のデータを取得する。
YAHOO!JAPAN のユーザ登録をし,ログインしてクライアント ID の申請を行う。API を使えるようにするため, 「新しいアプリケーションを開発」の登録を https://e.developer.yahoo.co.jp/register にアクセスして行う。

これを授業でやるのは無理というものだろう。生徒全員にYahoo! JAPAN IDを取得させ,さらにアプリケーションIDを取得させるのか。ちょっとした演習を行うためだけに?
 もちろん,教員だけがIDを取得してデータをダウンロードし,それを授業で使うならよいだろう。
 しかし,筆者はそれもやりたくない(すでに舞台からおりているのでどうせやらないが)。JSON形式のデータをネットから持ってくるなら,前回調べた,市町村のオープンデータにあるからだ。

(4)キー・バリュー形式のデータの処理・蓄積
キー・バリュー形式のデータを扱うことができるプログラミング言語もある。プログラミング言語によっては, 連想配列・ハッシュ・辞書などと呼ばれている。ここでは,Python の辞書というデータ構造を用いて連絡先のリ ストを作ることを題材として,データを追加し,表示するプログラムを扱う。

 Pythonだ。この第4章のJavaScript版は用意されていない。JavaScript なら,JSONになるだろう。
 例は簡単なものだから,Pythonなら無理なく実習できる。

(5)キー・バリュー形式のデータを用いた問題発見
ここで,キー・バリュー形式で取得できたデータを用いて,問題発見に役立てる。SNS の開発者登録が必要で はあるが,SNS でつながりがあるユーザーのデータを Web API を利用して取得することができる。ここでは, Web API を利用して,JSON 形式のデータを取得できたものとして演習を行う。

無理だろうね。生徒全員に開発者登録をさせるわけにはいかないだろう。前項と違い,教員だけが登録してというのもやるまでもない。
 研修用教材には解答例が用意してあって,サンプルデータとしてJSON形式の簡単なものがある。それを扱う「解答」がPythonで書かれている。JSONを扱うためのライブラリをインポートする必要があるが,たいしたことをやっているわけではない。そもそも,高校の情報で JSON を扱う必要があるのかという疑問もある。高校生の力を過信しているか,実態がわかっていないのではないだろうか。