システムプログラム

  [ GB31401 ]
System Program
対象:3・4学年 開設学期:春AB 曜日・時限:水1・2 単位数:2単位
担当教員:新城靖, 大山恵弘

概要

Unixのシステムコールとライブラリを主な題材としてシステムプログラミング、ネットワーク・プログラミング、および、Webプログラミングについて講義する。計算機を用いた実習を課す。

学習・教育目標

  1. API (システムコールとライブラリ)を使ったプログラム作成法を学ぶ。
  2. マニュアルの読み方を身につける。
  3. 文字列、ファイル、時刻などの基本的なオブジェクトを扱えるようになる。
  4. プロセス生成やシグナルを題材として並行プログラミングの基礎を学ぶ。
  5. TCP/IPを用いたネットワーク通信を行うプログラムを作成できるようになる。
  6. World Wide Web の CGI の仕組みを理解する。
  7. スクリプト言語を用いたプログラムを作成できるようになる。

キーワード

システムコール、ライブラリ、シグナル、TCP/IP、CGI

Keywords

System calls, Libraries, Signals, TCP/IP, CGI

時間割

講義内容/理解すべき項目
第1回オリエンテーション,ソフトウェアの構成とシステムプログラム,プログラムの実行環境と開発環境,プログラミングとデバッグ,ポインタ(1)
第2回文字,文字列のデータ表現,標準入出力,文字操作,文字列操作ライブラリ,ポインタ(2)
第3回ファイルアクセス,ファイルアクセスの応用,ポインタ(3)
第4回プロセスの概念と機能,プロセスの操作: プロセス生成,プログラム実行,プロセス終了, リダイレクション,パイプ,他のプロセス操作のためのシステムコール,ライブラリ関数
第5回シグナル
第6〜8回ネットワーク・プログラミング
TCP/IPの概念、ソケットAPI、プロトコルスタック
TCP/IPのクライアントとサーバ
第9回Web プログラミング
CGIの仕組み、フォーム、QUERY_STRING、ログ、Cookie
第10回スクリプト言語
スクリプト言語によるプログラミングの手法、Webセキュリティ
Ruby、Python、Perl、または sh等によるプログラミング、クロスサイトスクリプティング攻撃

教材

プリントを配布する。Web で教材を提示する。

参考書籍

「詳解UNIXプログラミング[第3版]」(W. Richard Stevens, Stephen A.Rago 著, 大木敦雄 監訳、翔泳社) 
「ふつうのLinuxプログラミング 第2版」(青木 峰郎、SBクリエイティブ社) 
「The Unix Super Text第2版」(山口和紀・古瀬一隆・中村敦司・新城 靖・西山博泰・林 謙一・金谷英信・鈴木孝幸・端山貴也、技術評論社)

予備知識・前提条件

データ構造とアルゴリズムに関する知識があることを前提とする。また、システムプログラミング序論の内容を理解していることが望ましい。

成績評価

レポートにより評価を行う。基準を満たさなかったレポートは、再提出を求めることがある。

教員メールアドレス

新城:yasの後に(AT)cs.tsukuba.ac.jp
大山:oyamaの後に(AT)cs.tsukuba.ac.jp

講義のWebページ

https://www.coins.tsukuba.ac.jp/~syspro/2018/

オフィスアワー

木6 3E302(新城)
月3 学術情報メディアセンターA416(大山)