GB31401 システムプログラム

2.0 単位, 3・4 年次, 春ABC 水1,2
新城 靖, 大山 恵弘

授業概要

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

備考

土曜日は開講せず(シラバス参照のこと)

授業形態

講義

学位プログラム・コンピテンスとの関係

・汎用コンピテンス
2. 批判的・創造的思考力
4. 広い視野と国際性
・専門コンピテンス
3. 情報システム分野の専門能力
6. 実践的技術力と問題解決能力
7. 情報専門技術者としての倫理

授業の到達目標(学修成果)

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

キーワード

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

授業計画

第1回ガイダンス、実行環境、コンパイル、デバッグ   
第2回文字と文字列、標準入出力   
第3回ファイルアクセス   
第4回プロセス、リダイレクション、パイプ   
第5回シグナル   
第6回ネットワーク・プログラミング(クライアント側)、TCP/IP、ソケット   
第7回ネットワーク・プログラミング(サーバ側(1))   
第8回ネットワーク・プログラミング(サーバ側(2))   
第9回Web CGIプログラミング   
第10回スクリプト言語、Ruby、クロスサイトスクリプティング攻撃   

履修条件

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

成績評価方法

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

学修時間の割り当て及び授業外における学修方法

授業毎に示す課題についてレポートを作成し、締切までに提出すること。

教材・参考文献・配付資料等

教材
Web で教材を提示する。

講義のWebページ
https://www.coins.tsukuba.ac.jp/~syspro/2020/

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

オフィスアワー等(連絡先含む)

新城 靖 金曜6限
3E303 1001626 http://www.cs.tsukuba.ac.jp/~yas/
大山 恵弘 木曜3限
学術情報メディアセンターA416 100001375 https://www.cs.tsukuba.ac.jp/~oyama/

ティーチングフェロー(TF)・ティーチングアシスタント(TA)

TA 配置有り(2名)