あのテーマをもう一度:

成績について

第14回までの課題の採点が終わりました。http://bean.bio.chiba-u.jp/jugyo/joho2007.htmlから自分の点数を確認してください。課題を提出したけれど点数がついていない(あるいは0になっている)という人は、メール等で連絡してください。現在の得点分布は下のようになっています。すでに全員、合格点に達しています。でも、今日(第15回)の課題は6点満点ですので、さらに上のレベル(秀・優・良)をぜひ目指して下さい。

90	1
89	1
88	2
86	1
85	2
84	2
83	2
82	3
80	3
79	2
78	5
75	2
74	2
73	1
72	1
71	1
69	1
67	1
66	1
65	1
61	1

最低限分かって欲しかったこと: テキストファイルの扱い+正規表現

授業/H19/情報処理/04

最低限の目標は達成できた!!
前回課題を提出してくれた多くの人が、正規表現検索置換をテキストエディタで行って、集計していた。

HTMLの課題

よくできていたもの:→ http://bean.bio.chiba-u.jp/example/

07s4005.html
another.html

コンピュータのセキュリティについて

時間がとれなかった。http://www.microsoft.com/japan/athome/security/default.mspx などを参照して自習して欲しい。

今日の授業について

今日の授業は復習シリーズということで、特に専用のウェブページは準備していません。このページに書き込んだ質問への答えや、これまでの授業のページを参照しながら解説を行います。Rの説明なども、マニュアルやウェブ検索で情報を引き出しながら、いくつかの使い方を解説します。なので、今回は、

今何を説明しているのか途中で分からなくなると、このページを見ても、迷ったところまで戻れない

かもしれません。そういうときは

手を上げて、質問してください。

私の方からも、皆さんに質問しながら(さらには、答えて貰いながら)、授業を進めます。あるいは、少し早めに終了して、皆さんからの質問を受け付けます。

プレゼンテーションについてのコメント

いずれの班も初めてのプレゼンを、工夫しながら作ってくれていました。それぞれになかなか面白い点がありましたが、プレゼンの構成をちょっと帰るだけでもっと面白くなるのになという感想も持ちました。多くの班に共通して言えることを1点だけ挙げておきます。

メッセージの重要性

プレゼンテーションで聴衆に何を伝えたいか(これを「メッセージ」と呼びます)が最重要ポイントです。しかも、与えられた9分という時間の中で、発表者のメッセージの意味や面白さまでを伝え切らなくてはなりません。卒研発表や学会発表では、「どんな研究をして、どんな発見をしたか」がメッセージになるので、プレゼンテーションは「背景・目的・方法・結果・考察」のように定式化されています。今回の2班の発表はこれに近いので、メッセージが伝わりやすかったと思います。それに対して他の班は、自分たちが行ったプロジェクトで分かったことを淡々と発表している印象が拭えませんでした。もう少しプレゼンの構成を変えるだけで、メッセージはもっと伝わりやすくなると思います。

  • P1:「千葉動物公園にいる動物たち」
    • そこにいる動物を単に並べて説明するだけでは、「魅力」というメッセージが伝わりにくい。順位をつけるなどして、その動物が身近で見られることが、どれほど素晴らしいことなのかをアピールする等の方法がある。園の紹介なので、園内マップを見せて、モデルコースを提示するとか、お勧めポイントをアピールするなどでも良い。
  • P2:「人間の行動について」
    • 実験とその結果の発表という点で、メッセージ性のあるプレゼンに仕上がっていた。
  • P3:「ベイツ型擬態における種間関係」
  • P4:「蝶の翅の模様とそれに関る生態等」
  • P6:「マングローブについて」
    • ある生物学的現象について深く調べたという点が、3つのプロジェクトに共通している。プロジェクトの成果として新しく得た沢山の知識の中から、「何」を聴衆に伝えることで、「どういう感動」を与えたいかを考えると、メッセージ性のあるプレゼンになると思う。聴衆に「へぇー」と言わせるために、予備知識の提示と、意外な事実を示すのも良い。
  • P5:「理学部生物学科先生紹介」
    • 紹介すると羅列的になってしまうのは仕方が無いが、いっそのこと研究以外の「魅力」にポイントを絞ってプレゼンテーションを作れば良かったと思う。1人に1枚のスライドだけではなくて、アピールしたい点を「こんな素敵な先生です」という1枚のスライドに大きな文字で書いて、2枚目のスライドで簡単に示すだけも、聴衆に次のスライドへの期待感を持たせることができる。
  • P7:「★平均顔★」
    • せっかく平均顔という難しいものを作ったのだから、どういう点が面白いのかをアピールすると良かったかもしれない。「子供が両親の顔の特徴を平均的に受け継ぐと仮定すると、こういう顔の子供ができると予想されます(※実名は出さない)」とか、「このソフトウェアを使うだけで、簡単に平均顔ができてしまいます」とか、聴衆が聴きたがるようなメッセージを考えたいところ。

Q: データベースって何かよく分からない。表(テーブル)って一体何?

A:資料を使って説明

Q: SQLiteって、どんな場面で役に立つのですか?

A: 2つ以上の大きな表を比較しなければならないとき、役に立ちます。

授業では名簿と成績表という2つの表を結びつける操作で、データベースの使用例を学びました。この例では、

沢山のデータが入った、2つの大きなデータの集まり(表)がある
2つを比較したいのだけど、一つ一つを目で見て比較するのは面倒

という場合です。実際のケースとしては、次のような場合があるでしょう。

  • ケース1:参加者が600人ぐらいの学会の会計をやることになりました。参加者はウェブから参加登録をするのですが、会費は郵便振替です。参加費未納者には、振り込みの督促状を送らなければなりません。また、一般会員か学生会員かに従って、振り込むべき金額と実際の振り込み金額が一致しているかどうかをチェックする必要があります。最終的には、ウェブからの参加登録データと、郵便振替の入金リストの2つを比較して、参加費未納者や、振り込み金額間違いのリストを作ります。また、登録データから、メールアドレスを抜き出して、督促状を送ります。

    このケースでは、2つの表があります。

    ウェブ登録で得られた参加者のデータ 氏名、連絡先、振り込み金額、メールアドレスなどが入っている(後にmeiboと呼ぶ表)
    郵便局から得られた振り込みリスト:振り替え伝票から氏名、日付、振り込み金額をリストにしたもの(後にfurikomiと呼ぶ表)

    手作業で解決するならば、それぞれの表をエクセルで作成し、氏名で並び替え、上から順に、会費未納の人はいないか(まれに、2回振り込んでしまっている人もいます)、振り込み金額が間違っている人がいないかどうかをチェックします。でも、未納者だけなら目でみて探しても、そんなに時間はかかりませんが、振り込み金額の間違えまでもチェックしていると、かなり大変な作業になります。

    こういう場合、SQLiteを使ってmeiboとfurikomiとでもいう2つのテーブルを使えば、目でみてチェックする作業をコンピュータにやらせることができるのです。例えば、次のようなSQLを1行かけば、処理は済んでしまいます。

    > select meibo.namae, e-mail, kingaku, furikomi.kingaku from meibo 
       left outer join furikomi on meibo.namae = furikomi.namae where meibo.kingaku != furikomi.kingaku
       order by furikomi.kingaku desc;
  • ケース2:植物の野外実習で、野外で採集した植物に全てラベル(採集者や採集日、採集場所、種名などのデータが書かれたもの)をつけて提出することになりました。幸い、日本の植物について和名と学名の対応表は電子データで持っているのですが、採集した100種の植物について、一件ずつ名前を調べて、コピーペーストするのは面倒です。

    このケースでも2つの表があります。

    野生植物に関する和名、学名、科名などの対応表(後にyaseiと呼ぶ表)
    自分が野外で採集した100種の植物の和名リスト(後にcollectionと呼ぶ表)

    この場合もSQLiteを使って、yaseiとcollectionとでもいう2つのテーブルを作れば、何度も検索やコピペを繰り返さなくても、和名と学名の対応表が出来てしまいます。

    > select collection.wamei, gakumei from collection
      left outer join yasei on collection.wamei = yasei.wamei order by collection.wamei;
  • ケース3:SQLiteはウェブページと連携して使うことで、データの抽出、並び換え、表示などいろんなサービスを提供できます。例えば、皆さんの個人成績の返却ページは、SQLiteと似たソフトウェアであるPostgreSQLを用いて作成しています。このサーバでサービスを行っているYListをいう和名・学名の検索サイトも、PostgreSQLを使っています。こういうネットワークデータベースを作成しようと思うと、もうちょっと修行が必要になりますけどね。
    • SQLと同様のデータベースを利用しているウェブサイトの例:
      • YList
      • 日本植物学会
      • 成績返却ページ

いずれの場合も、すでに存在している既存のデータ(テーブル:和名−学名リスト、氏名−学籍番号リスト)と新しく入手したデータ(ある地域の植物リスト、1回1回のレポートの成績)を組み合わせています。個人ベースでSQLiteを利用する場合は、このような「既存データの再利用」(新にいちいち入力しなくてもいいということ)が主な利点になるでしょう。

たぶん、データベースシステムは、大量のデータを相手にするとき以外は必要ではありません。単純で少量のデータなら、エクセルで済んでしまいます。でも、おそらく皆さんは、これから先、大量のデータを扱うことになります。そんなとき、

データ数が多すぎて比較が面倒すぎる → エクセルでは無理 → あきらめ

ではなく、

データ数が多すぎて比較が面倒すぎる → データベースを利用する → 解決

という方向があることを覚えておいてください。

Q: SQLiteの課題が分からなかった

A:答え一覧

  • sqlite> select namae, kamoku, score from meibo, score where meibo.gakuseki=score.gakuseki order by yomi limit 10;
    namae   kamoku  score
    秋葉剛男        shakai  88
    秋葉剛男        eigo    44
    秋葉剛男        sugaku  74
    秋葉剛男        kokugo  75
    荒木俊博        shakai  71
    荒木俊博        rika    44
    荒木俊博        eigo    80
    荒木俊博        sugaku  98
    荒木俊博        kokugo  51
    安藤俊英        shakai  61
  • sqlite> select meibo.gakuseki, namae, kamoku, score from meibo, score where meibo.gakuseki=score.gakuseki order by yomi limit 10;
    gakuseki        namae   kamoku  score
    06S4083 秋葉剛男        shakai  88
    06S4083 秋葉剛男        eigo    44
    06S4083 秋葉剛男        sugaku  74
    06S4083 秋葉剛男        kokugo  75
    06S4047 荒木俊博        shakai  71
    06S4047 荒木俊博        rika    44
    06S4047 荒木俊博        eigo    80
    06S4047 荒木俊博        sugaku  98
    06S4047 荒木俊博        kokugo  51
    06S4001 安藤俊英        shakai  61
  • sqlite> select meibo.gakuseki, namae, kamoku, score from meibo, score where meibo.gakuseki=score.gakuseki and score.gakuseki='06S4053' order by score;
    gakuseki        namae   kamoku  score
    06S4053 黒田瑞大        shakai  48
    06S4053 黒田瑞大        sugaku  51
    06S4053 黒田瑞大        kokugo  57
    06S4053 黒田瑞大        rika    61
    06S4053 黒田瑞大        eigo    99
  • sqlite> select meibo.gakuseki, namae, sum(score) from meibo, score where meibo.gakuseki=score.gakuseki group by meibo.gakuseki order by sum(score) desc limit 10; gakuseki namae sum(score)
    06S4051 高杉優弘        440
    06S4078 山野内勘二      422
    06S4082 篠田研次        421
    06S4019 岡田眞樹        413
    06S4012 遠藤善久        404
    06S4056 佐渡島志郎      397
    06S4062 斎江知  396
    06S4022 河原仁  395
    06S4027 丸山市郎        394

SQLiteについてさらに使い方を練習するなら、

SQLiteの補足説明

第15回授業の課題

  • 提出期限:8月1日水曜正午(期限厳守)
  • http://bean.bio.chiba-u.jp/joho19/ に、「自分のID」/15 という新しいページを作成し、下の囲みの中にあるアンケートをコピー・ペーストして、「回答:」の後に答えを書き込むこと。

課題1: 意見調査

 下の囲みの中にあるアンケートをコピー・ペーストして、「回答:」の後に答えを書き込むこと。()内の選択肢以外の意見も大歓迎。来年以降の授業をもっと分かりやすいものにしたいので、皆様の忌憚のない(「ぶっちゃけて言った」と同義)ご意見を期待してます。

*この講義全体に関する意見調査
**氏名:<記入してください>
***講義全体に関して:
-講義の進行速度や説明の方法について、「こうだったら良かったのにという」意見があったら、具体的に書いてください。
--回答:
-講義で選んだテーマの難易度について、「こうだったら良かったのにという」意見があったら、具体的に書いてください。
--回答:
-講義での説明をもっとよく理解するために、「こうして欲しかった」という意見があったら書いてください。
--回答:
-この講義でこんなことを取り上げて欲しかったというテーマがあれば書いてください。
--回答:
-この講義学んだことの中で、これからの役に立つと思うことを挙げて下さい(複数回答可)。
--回答:
***この講義におけるテーマ別の時間配分に関する意見調査
テーマ別にかける時間や説明を、このままで良いを3にして、長く・詳しくする方が良いか、
短く・簡単にする方が良いか 5段階の数値で答えてください。
                   短く・簡単に<-1-----2-----3-----4-----5->長く・詳しく
-コンピュータの基礎     回答:
-電子メールの使い方     回答:
-MS Word              回答:
-MS Excel          回答:
-Power Point         回答:
-テキストエディタ・ファイル 回答:
-正規表現          回答:
-R:統計解析        回答:
-R:プログラミング     回答:
-DNAデータベース利用     回答:
-SQL: データベース      回答:
-HTML、ウェブページ     回答:
-Pukiwikiの使い方      回答:
-ブラウザの使い方      回答:
-コンピュータセキュリティー 回答:
-図書館情報システムの使い方 回答:
***その他、講義に関する感想や意見、教員、TAに関する意見、何でも大歓迎
--回答:

課題2:この授業での意見調査結果の集計:

 授業/H19/情報処理/課題結果には、第1回から第13回までの、進行速度、難易度、理解度の集計結果があります。

  • 課題2-1: 3項目のデータを集計して分かりやすいグラフを作成し(形式の選択は任せます)、課題提出ページに画像を貼り付けなさい。
  • 課題2-2: 集計結果とグラフから読み取れる内容を考察しなさい。
    • 評価ポイント:
      • 6点'満点で評価します
      • データを集計して、分かりやすいグラフを作成できているかどうか
      • 集計結果を正しく解釈できているかどうか
      • 全部はできなくても、できたところまで提出してください。部分点をつけます。
    • 注:それぞれの項目に対する答えは、4つに分けられていたり(難易度:丁度よい, 簡単 2, 難しい 7, 丁度良い 28)、3つに分けられていたり(難易度: 難しい 9, 丁度いい 28, 簡単 0)する場合があります。集計時にはデータ区分の数を3つに揃えてください(「よく分かった・分かった・少し分かった」→「分かった」にするとか)

Last-modified: 2015-05-13 (水) 16:41:33 (3481d)