2013年10月21日月曜日

Webアプリケーション: 第3回

実施日時: 2013年10月21日(月) 3限
講義内容: URI

Webを構成する主要技術の1つ目、URI(Uniform Resource Identifier)についてお話ししました。以下、今日の講義の概要を箇条書きでまとめてみます。

  • URI(Uniform Resource Identifier)
    • リソースの統一的な識別子=リソースの「名前」
    • 現在のWeb技術の観点からは、URIは「自動的に決まるもの」ではなく「設計するもの」←これは重要
  • URIの例
    • http://example.jp/2013/10/21.html
    • ftp://ftp.example.jp/sample.txt
    • file:c:/sample.txt
    • tel:09099999999
    • これらの例から分かる通り、URIはWeb(HTTP通信)だけでなく様々な通信プロトコルにも使えるし、ローカルコンピュータ上のファイル、他のアプリケーションの起動指定などにも使われている
  • URI = URL + URN
    • URL(Uniform Resource Locator): 上に挙げた例はすべてURL
    • URN(Uniform Resource Name):ホスト名やプロトコルに依存しないリソースの「名前」
      • 例: urn:isbn:9784774142043 … ISBN番号9784774142043の書籍を表すURN
      • ほとんど使われていないため、事実上、URI ≒ URL
  • URIの構成
    • http://example.jp/2013/10/21.html
      • http … URIスキーム(リソースを取得するためのプロトコルなど)
      • example.jp … ホスト名(リソースを取得するために通信するべき相手)
      • /2013/10/21.html … パス(通信相手上でのリソースの識別子)
    • 複雑な例
      • http://kunishi:pass@example.jp:8000/search?q=data&debug=true#n10
        • kunishi … ユーザ名
        • pass … パスワード
        • 8000 … TCP/IPのポート番号
        • q=data&debug=true … クエリパラメータ(GETパラメータ)。この例では、q(値data)とdebug(値true)という2つのパラメータを指定している。
        • #n10 … URIフラグメント(リソース中のある部分を指す)
  • URIの役割
    • Web上(インターネット上)でリソースを一意に識別するための識別子(名前)
    • リソースを取得するための手順の記述
      • 手順がコンピュータ処理可能で記述されているため、URIでリソースを指定すると、自動的にリソースを取得することが可能になる
  • いいURIとは
    • 変更されないURI(変更されるとリンク切れが発生する=ユーザがリソースにたどり着けなくなる)
    • Webサイトを公開したり、Webアプリケーションを実装する場合、なるべく将来にわたってURIを変更する必要がないように、URIを設計する必要がある
    • URIが変更される要因
      • パスの構成の変更(静的Webサイトでのディレクトリ構成の変更など)
      • Webアプリケーションのプログラムの変更
      • Webアプリケーションのプログラミング言語の変更
      • Webサーバの設定変更
      • Webサーバのリプレース
      • etc.
    • どのようにすれば変更されにくくなるか
      • 最初から熟慮してURIを設計(適切な階層構造にする)
      • 実装に依存しないURI(プログラミング言語を表す拡張子をつけない、cgi-binなど特定の実装方法に依存する文字列をURIに含めない、など)
      • Webサーバに用いるコンピュータ名とURIのホスト名とを独立させる(独自ドメインなど)
      • どうしても変更しなければならない場合は→HTTPリダイレクト

2013年10月18日金曜日

情報システム論: 第4回

実施日時: 2013年10月18日(金) 2限
講義内容: IPアドレス、IP

講義メモを公開しています。参考にしてください。

2013年10月15日火曜日

情報通信工学実験IB: B班第3週

実験日時: 2013年10月15日(火) 3限〜5限
実験内容: Rubyプログラミング(3): 配列、ハッシュ、イテレータ

配布資料「第3週」に相当します。

2013年10月11日金曜日

情報システム論: 第3回

実施日時: 2013年10月11日(金) 2限
講義内容: TCP

講義メモを公開しています。参考にしてください。

2013年10月8日火曜日

情報通信工学実験IB: B班第2週

実施日時: 2013年10月8日(火) 3限〜5限
実験内容: Rubyプログラミング(2): 文字列と正規表現

配布資料のうち「第2週」に相当します。

2013年10月7日月曜日

Webアプリケーション: 第2回

実施日時: 2013-10-07(月) 3限
講義内容: Webのシステムアーキテクチャ

今日の講義では、Webのシステムアーキテクチャについてお話しました。ポイントを以下にまとめてみます。

  • アーキテクチャ(architecture)=「構造」
    • どのような部品から構成されているか?
    • それぞれの部品はどのような役割か?
    • 部品は互いにどのようにやりとりを行うか?
  • 分散システムアーキテクチャの例
    • クライアント・サーバシステム(→Wikipedia
    • ピア・ツー・ピアシステム(→Wikipedia
    • いずれも、古くから様々なシステムで利用されているアーキテクチャであり、利点・欠点もかなり明らかになっている。いわば「先人の知恵」
  • Webとは
    • インターネット上に実現された分散ハイパーメディアシステム
  • ハイパーメディア(hypermedia)
    • 様々な「情報」をリンクで互いに結びつけたメディア(情報の集まり)
    • Webでは
      • 「情報」=リソース(resource)
        • インターネット上に分散して置かれており
        • 様々な種類のものがあり(テキスト、画像、etc.)
        • 同じ情報でも複数の表現(representation)を持つ場合があり
        • 互いに区別できる仕組みを持つ
          • URI(Uniform Resource Identifier)
  • Webのアーキテクチャ
    • クライアント・サーバシステム
      • リソースを供給するWebサーバ、Webサーバとユーザとの橋渡しをするWebクライアント(Webブラウザなど)
    • ステートレスサーバ
      • Webクライアントの状態をWebサーバでは管理しない
    • キャッシュ
      • Webクライアントが一度取得したリソースを使いまわす
    • 統一インタフェース
      • すべてのリソースに対する操作が統一されている
    • 階層化
      • システムをいくつかの階層に分離する
      • 目的:Webサーバの負荷分散など
    • コードオンデマンド
      • プログラムをサーバからダウンロードし、それをクライアント上で実行する
  • Webのアーキテクチャ=REST(Representation State Transfer)

2013年10月4日金曜日

情報システム論: 第2回

実施日時: 2013-10-04(金) 2限
講義内容: 通信、ネットワーク、インターネット

本講義の元になったメモを公開しています。

2013年10月1日火曜日

情報通信工学実験IB: B班第1週

実施日時: 2013-10-01(火) 3〜5限
実験内容: Rubyの基本的な構文(配布資料第1週)

説明資料や配布資料は、実験サポートページで公開しています。

今回の実験課題は、配布資料のうち「第1週」末尾にある課題です。1つの課題につき複数プログラムを書く場合もあります。次回実験開始時にレポートを回収しますので、持参してください。

2013年9月30日月曜日

Webアプリケーション: 第1回

実施日時: 2013-09-30(月) 3限
講義内容: 講義の概要、予備知識

本年度から新たに開講される講義になります。カリキュラム上は、平成24年度以前入学生向けの講義「プログラミング言語III」と対応することになっています。ただし、内容はかなり異なるものになる予定です。

今回の講義のメモを公開しています。講義中で話していない内容もかなり含まれていますが、その部分はいずれ講義中でお話するかもしれません。

講義の内容をどうするか思案した結果、「ウェブ工学入門」という立場で講義を進めることにしました。1年次に「計算機工学入門」という講義があったかと思いますが、それを、ウェブ工学を対象に行おうということです。

ウェブは現代の情報通信技術の中で随所に使われており、情報通信技術者が(そして本学科を卒業修了する学生諸氏が)常識として知っているべき技術であると考えています。しかし一方で、ウェブはこれまで情報分野で培われてきた様々な技術を取り込んで今日も成長しており、基本的な内容ですら独学で一通り学ぶのは、かなりの労力を要します。これが本講義を企画した最大の理由です。座学ではありますが、ウェブを構成する技術を基礎素養として学んでいただきたいと考えています。

先に述べた通り、ウェブで現在使われている技術は、これまでの情報通信技術の基に成り立っているものが多いです。そのため、ここまで本学科で開講されてきた講義の多くと関連があります。情報系の各種講義のほか、通信系の「情報ネットワーク」「符号理論」とも関連します。随時、これら関連科目の教科書や講義ノートなどを参照し、関連を確かめながら受講していただくことを期待します。

2013年9月27日金曜日

情報システム論: 第1回

実施日時: 2013-09-27(金) 2限
講義内容: 講義の概要、情報システムとは

本日の講義のために用意したメモはこちらになります。参考までに公開しておきます。

このメモの最後にある「本講義の間にやっておいてほしいこと」は、講義中でも話した通り、皆さんが今後インターネットと関わっていく上でやっていくべき、「自分でアンテナを張り、情報収集をする」ということの訓練のつもりです。期末のレポートもこの内容にそって課す予定ですので、講義期間中こころがけていただけると幸いです。

それでは半期の間ですが、よろしくお願いします。

2013年9月24日火曜日

情報通信工学実験IB:第1回

実施日時: 2013-09-24(火) 3限
内容: 実験概要の説明

実験サポートページを公開しています。本日の説明会で配布した資料、昨年度の実験資料など、このページから参照できます。今後も、Webで公開して差し支えない資料は極力このページから辿れるようにしておく予定です。


2013年7月25日木曜日

データ工学(システム・スポーツ): 第14回

実施日時: 2013-07-25(木) 4限
講義内容: 関数従属性と正規形
講義メモ: 表の設計、正規形(前回と同じ)

昨年度の定期試験問題を公開するのを忘れていました。すいません。上記の講義後、公開しました。

2013年7月23日火曜日

形式言語理論: 第13回

実施日時: 2013-07-23(火) 2限
講義内容: プッシュダウンオートマトン(構成要素の定義、受理の定義)
教科書6.1〜6.2節に相当。

今年度の「形式言語理論」はこれで終了とします。成績評価を希望する者は、下記の通りレポートを提出してください。

課題: 教科書の下記の練習問題を解いてください。

  • 問2.3.2(73ページ)
  • 問3.2.4c)(117ページ)
  • 問4.4.2(189ページ)
  • 問5.1.2c)(204ページ)
期限: 2013年8月19日(月)17:00
提出場所: 2610室(部屋の前に提出用の箱を置いておきます)

試験通知: データ工学(システム・スポーツ)

日時: 2013-07-29(月) 4限
教室: 8201室(通常と異なるので注意)
範囲: 全範囲
備考: ノート、講義メモ持込可

8月5日(月)は、講義・試験とも行いません。

データ工学(システム・スポーツ): 第13回

実施日時: 2013-07-22(月) 4限
講義内容: 表(スキーマ)の設計(実体と関連、更新不整合)
講義メモ: 実体関連モデル正規形(一部)

データ工学(システム・スポーツ): 第12回

実施日時: 2013-07-17(水) 4限
講義内容: プログラミング言語からRDBMSを使う(概要、フェッチ、埋め込みSQL、RDBMSのAPI)
講義メモ: RDBMSを使う

2013年7月19日金曜日

試験通知: データ工学(通信)

試験実施日時: 2013-07-30(火) 2限
場所: 8102室
試験範囲: 全範囲
ノート持込可(Webで公開している講義メモのプリントアウトも可)

教務から「補講」として上記の日程が掲示されていますが、この時間に定期試験を実施します。定期試験期間中の8月2日(金)4限は何も行いません。

上記日程が他の講義と重なるという学生は、対応を考えますので、至急申し出てください(国島:2610室)。

データ工学(通信): 第13回

実施日時: 2013-07-19(金) 4限
講義内容: スキーマの設計(実体と関連、関連の種類(1対1、1対多、多対多)、更新不整合)
講義メモ: 実体関連モデル正規形(一部)

2013年7月16日火曜日

形式言語理論: 第12回

実施日時: 2013-07-16(火) 2限
講義内容: 導出と構文木の等価性、文脈自由文法の曖昧性、プッシュダウンオートマトンの概要
教科書5.2.5項、5.4節、6.1.1項に相当

都合により、次週の講義にて、今年度の「形式言語理論」は終了とします。次週の講義中にレポート課題を通知する予定です。

補講通知: データ工学(通信)

下記の日程で補講を行います。なお、前回の講義中にも述べた通り、定期試験をこの時間枠で行う可能性もあります。現在、日程について検討中ですので、今後の掲示等に注意しておいてください。

日時: 2013-07-30(火) 2限
場所: 8102講義室

データ工学(通信): 第12回

実施日時: 2013-07-12(金) 4限
講義内容: RDBMSをプログラミング言語から使う(フェッチ、埋め込みSQL、RDBMS APIなど)
講義メモ: RDBMSを使う

データ工学(システム・スポーツ): 第11回

実施日時: 2013-07-08(月) 4限
講義内容: SQLの練習問題の解説

講義では一部の問題についてのみ解説を行いました。解説しなかった問題も含め、解答例をこちらのページで公開しておきます。

2013年7月5日金曜日

休講通知: 形式言語理論(2013-07-09)

2013年7月9日(火)の形式言語理論は、出張のため、休講とします。

データ工学(通信): 第11回

実施日時: 2013-07-05(金) 4限
講義内容: SQL練習問題の解説、プログラミング言語からRDBMSを使う(概要)

SQL練習問題の解答例はこちらで公開しています。

2013年7月2日火曜日

形式言語理論: 第11回

実施日時: 2013-07-02(火) 2限
講義内容: 文脈自由文法の意味(再帰的推論、導出)
教科書5.1.3項〜5.1.5項に相当。

データ工学(システム・スポーツ): 第10回

実施日時: 2013-07-01(月) 4限
講義内容: SQL(SELECT文: ORDER BY, GROUP BY, HAVING, 集計関数, 自己結合)
講義メモ: SQL

SELECT文の内容確認のために、上記講義メモの最後に練習問題を付けておきました。次回の講義の冒頭に、いくつかの問題について解説する予定ですので、各自で考えてみてください。なお、6番はやや難しいと思います。Webで調査をするなどして、トライしてみてください。

2013年6月28日金曜日

データ工学(通信): 第10回

実施日時: 2013-06-28(金) 4限
講義内容: SQL(SELECT文: 自己結合、ORDER BY、GROUP BY、HAVING、集計関数)
講義メモ: SQL

講義メモの最後に練習問題を付けておきました(関係代数と同じ練習問題です)。次回の講義の冒頭で、いくつか選んで解答例を示しますので、確認のつもりで考えてみてください。1〜5は比較的易しいですが、6は難しいと思われます。インターネット等で調べつつ、考えてみてください。

2013年6月25日火曜日

形式言語理論: 第10回

実施日時: 2013-06-25(火) 2限
講義内容: 文脈自由文法とプッシュダウンオートマトンの概要、文脈自由文法の定義
教科書5.1.1項、5.1.2項に対応。

2013年6月24日月曜日

2013年6月21日金曜日

データ工学(通信): 第9回

実施日時: 2013-06-21(金) 4限
講義内容: SQL(WHERE句、JOIN句、入れ子問合せ)
講義メモ: SQL(途中まで)

形式言語理論: 第9回

実施日時: 2013-06-18(火) 2限
講義内容: 有限オートマトンの等価性判定、状態数最小化
教科書4.4節に相当。

データ工学(システム・スポーツ): 第8回

実施日時: 2013-06-17(月) 4限
講義内容: SQL(SELECT文の基本)
講義メモ: SQL(途中まで)

2013年6月14日金曜日

データ工学(通信): 第8回

実施日時: 2013-06-14(金) 4限
講義内容: SQL(表の作成・削除、組の追加・削除・更新、SELECT文の基本形)

講義メモ: SQL(途中まで)

2013年6月11日火曜日

形式言語理論: 第8回

実施日時: 2013-06-11(火) 2限
講義内容: 正則言語の性質(反復補題、閉包性)
教科書4.1節、4.2節に相当。

2013年6月10日月曜日

データ工学(システム・スポーツ): 第7回

実施日時: 2013-06-10(月) 4限
講義内容: 練習問題の解答例の解説、関係代数(商)、RDBMSの概要

講義時に配布した練習問題の解答例を公開しておきます。なお、配布した解答例には一部冗長な表現が含まれていました。間違いではないのですが、より簡単な表現のほうが適切と考え、Web公開版では訂正を行っています。指摘してくださった学生諸氏に感謝します。

2013年6月7日金曜日

データ工学(通信): 第7回

実施日時: 2013-06-07(金) 4限
講義内容: 関係代数の練習問題解説、RDBMSの概要

前回の講義時に出した練習問題の解答例を公開しておきます。講義時に配布した資料と同じものです。

2013-06-10追記: 講義時に配布した解答例に、一部冗長な部分がありました。間違いではないのですが、より簡単な表現のほうが適切と考え、訂正をしておきました。上のリンク先のページは訂正版になっています。

2013年6月4日火曜日

形式言語理論: 第7回

実施日時: 2013-06-04(火) 2限
講義内容: 有限オートマトンと正則表現の等価性

教科書3.2節に相当。

2013年6月3日月曜日

データ工学(システム・スポーツ): 第6回

実施日時: 2013-06-03(月) 4限
講義内容: 関係代数(集合演算、直積、結合、自然結合)
講義メモ: 関係代数(前回のものと同じ)

関係代数のうち、商は次回にまわします。ここまでの関係代数の復習として、上記講義メモの練習問題2について、次回までに考えてみてください。次回講義の冒頭に、解答例を示します。

2013年5月28日火曜日

形式言語理論: 第6回

実施日時: 2013-05-28(火) 2限
講義内容: 正則表現
教科書3.1節、3.4節に相当

データ工学(システム・スポーツ): 第5回

実施日時: 2013-05-27(月) 4限
講義内容: 関係代数(選択、射影)
講義メモ: 関係代数(前半のみ)

2013年5月24日金曜日

データ工学(通信): 第6回

実施日時: 2013-05-24(金) 4限
講義内容: 関係代数(2)(集合演算、直積、結合、自然結合、商)
講義ノート: 関係代数(前回と同じもの、後半を使用)

関係代数に慣れてもらうことを目的として、講義ノートの最後に練習問題をつけています。このうち2について、次回の講義冒頭で解説を行います。復習のつもりで、次回までに各自で解いてみてください。

一点、講義で話すのを忘れていた点について。結合演算で指定する条件(結合条件といいます)は、ほぼ選択条件と同じものが書けます。

2013年5月21日火曜日

形式言語理論: 第5回

実施日時: 2013-05-21(火) 2限
講義内容:
  1. サブセット構成法で状態数が指数爆発する場合について(教科書2.3.6項)
  2. ε動作付き非決定性有限オートマトン(ε-NFA)、DFAとε-NFAの等価性(教科書2.5節)

2013年5月20日月曜日

2013年5月17日金曜日

データ工学(通信): 第5回

実施日時: 2013-05-17(金) 4限
講義内容: 関係代数(1) (概要、選択、射影)
講義メモ: 関係代数(前半のみ)

2013年5月14日火曜日

形式言語理論: 第4回

実施日時: 2013-05-14(火) 2限
講義内容: NFAの定義、受理する言語、DFAとNFAの等価性、テキスト検索への応用

今日の講義は、教科書2.3.1〜2.3.5項、2.4節に相当しています。

2013年5月13日月曜日

2013年5月10日金曜日

データ工学(通信): 第4回

実施日時: 2013-05-10(金) 4限
講義内容: 関係の補足(空値)、キー、外部キー
講義メモ: キー

前回の講義で述べた関係について、空値の説明をするのを忘れていましたので、今回の講義の冒頭で補足を行いました。空値については、前回の講義メモの末尾に加筆しておきました。

2013年5月7日火曜日

形式言語理論: 第3回

実施日時: 2013-05-07(火) 2限
講義内容: DFAの定義、DFAの受理する言語、NFAの概要

教科書2.2節、2.3.1項の一部に相当。慣れないとイメージしにくくて分かりにくいかもしれませんが、NFA以降はDFAと同じような議論が続きますので、今日のDFAの議論(割と丁寧に話したつもりです)が分かれば、ついてきやすくなると思います。

次回はNFAの定義と受理する言語、できればDFAとNFAの等価性についてお話する予定です。

2013年4月26日金曜日

データ工学(通信): 第3回

実施日時: 2013-04-26(金) 4限
講義内容: 関係
講義メモ: 集合、組、関係(第2回と同じもの。この日の講義では、関係のところを話しました)

2013年4月23日火曜日

形式言語理論: 第2回

実施日時: 2013-04-23(火) 2限
講義内容: 予備知識(アルファベット,文字列,言語),DFAの例
教科書1.5.1〜1.5.3項,2.2.2項・2.2.3項の例2.1・2.2に相当


  • 教科書の購入申し込みは今日の12:00までとしています.申し込みされる方は忘れずにフォームから入力してください(フォームのURLは第1回の記事を参照).
  • 次週(2013年4月30日)は休講です.

2013年4月22日月曜日

データ工学(システム・スポーツ): 第2回

実施日時: 2013-04-22(月) 4限
講義内容: 予備知識(集合,組)
講義メモ: 集合,組,関係(関係については次回説明します)

2013年4月19日金曜日

データ工学(通信): 第2回

実施日時: 2013-04-19(金) 4限
講義内容: 予備知識(集合、組)
講義メモ: 集合、組、関係

講義メモの中の「関係」以降は、来週以降お話しします。

なお、本日の講義で板書のミスがありました。講義の一番最後、「方法2. 値の意味も明記する」のところで挙げた例が
(x: 2, y: 1) = (y: 2, x: 1)
となっていましたが、正しくは
(x: 1, y: 2) = (y: 2, x: 1)
です。

2013年4月16日火曜日

形式言語理論: 第1回

実施日時: 2013-04-16(火) 2限
講義内容: 講義の概要,諸連絡

本講義を受講する予定である学生諸氏へ

  • 教科書として「オートマトン 言語理論 計算論I [第2版]」(サイエンス社,2800円)を使用します.大学院は教科書の集中販売がないので,私が注文を取りまとめ,書店に発注を行います.
  • 連絡先の把握,教科書の注文のために,受講フォームを用意しています.本講義を受講する学生の皆さんは,このフォームから必要事項を記入して下さい.締切りは4月23日(火)12:00とします.



2013年4月15日月曜日

データ工学(システム・スポーツ): 第1回


実施日時: 2013-04-15(月) 4限
講義内容: 導入,講義の概要
講義メモ: はじめに

本講義のシラバスは以下の場所にあります: システムスポーツ

今年度から通信,システム,スポーツの3学科とも,「データ工学」は国島が担当することになりました.ただし,講義日程等の原因により,進度が若干異なることもありますので,本ブログを見るときは注意してください.

2013年4月12日金曜日

データ工学(通信): 第1回

開講日時: 2013-04-12(水) 4限
講義内容: 導入,本講義の概要
講義メモ: はじめに

本講義のシラバスはここにあります.

今年度から,通信・システム・スポーツの3学科で同一内容の講義を開講することになります.内容は同じですが,進度が異なる可能性があるので,本ブログを見るときも注意してください.

2013年1月28日月曜日

情報システム論: 第12回


  • 実施日時: 2013-01-28(月) 2限
  • 講義内容: インターネットの広告
講義メモはありません。

2013年1月23日水曜日

試験通知: プログラミング言語III


  • 日時: 2013年2月6日(水) 3限(12:40〜14:10)
  • 場所: 8105室
  • 試験範囲: 全範囲
  • 持ち込み可能な資料: ノート、(Webで公開している)資料、Rubyに関する参考書1冊まで

プログラミング言語III: 第14回


今期の講義はこれで終了です。定期試験の日程等は別の投稿で書きます。

情報システム論: 第11回


  • 実施日時: 2013-01-21(月) 2限
  • 講義内容: 電子商取引
今回は講義メモはありません。講義中に述べた主なキーワードを以下に挙げておきます。

BtoB(Business to Business)、BtoC(Business to Consumer)、CtoC(Consumer to Consumer)、データマイニング、データウェアハウス、ロングテール現象、情報推薦(レコメンデーション)、協調フィルタリング

2013年1月9日水曜日

プログラミング言語III: 第13回

  • 実施日時: 2012-01-10(水) 3限
  • 講義内容: TCP通信プログラム、WEBrickによるHTTPサーバ(概要)
  • 実験テキスト第6回、補足資料(TCP通信プログラム)
参考となるWebページを幾つか挙げておきます。

情報システム論: 第10回


  • 実施日時: 2012-01-07(月) 3限
  • 講義内容: セキュリティ(3):盗聴、SSL
今回は講義メモはありません。