科目コード | HI511 | ||||
科目名 | システムプログラミング(System Programming) | 単位数 | 2単位 | ||
対象学科 | 人間情報システム工学科 | 対象学年 | 5年 | 開講期間 | 通年 |
科目区分 | 専門応用科目 | 必修・選択 | 選択 | 履修/学修 | 学修 |
授業形式 | 講義 | 規定授業時数(単位時間) | 60 |   | |
教員名(所属) | 藤井慶(人間情報システム工学科) | 教員室 | 3号棟2階 | ||
使用教科書 | 渡辺知恵美 「システムプログラミング入門―UNIXシステムコール、演習による理解」、サイエンス社 | ||||
参考書 | Robert Love 「Linuxシステムプログラミング」、オライリージャパン | ||||
科目の位置付けと 関連科目 | 4年「オペレーティングシステム」との関連が深い。 | ||||
科目の概要 | オペレーティングシステムが提供する各種システムコールの仕組みや使い方について、プログラムを作りながら学ぶ。主開発環境はLinuxとC言語である。 | ||||
授業方針 | 授業項目毎に簡単な講義を行い、その後プログラミング演習で理解を深める。 |
授業項目 | 時数 | 達成目標(習得すべき内容) |
UNIXシステムプログラミングの基礎 | LinuxとC言語を用いてシステムプログラミングを行う際にmakeコマンドを用いたコンパイルおよびその開発環境を整備できる。 | |
高水準・高水準ファイル入出力 | 高水準I/O、低水準I/Oそれぞれの命令を用いて、テキストファイルおよびバイナリファイルの読み書きを行える。またバッファリングの役割について理解できる。 | |
ディレクトリ制御 | ディレクトリおよびファイルの情報を取得・変更できる。 | |
仮想アドレス空間 | 仮想アドレス空間において関数や変数がどのように配置されるか説明できる。 | |
メモリ管理 | 動的なメモリ確保およびそれを利用したプログラムを作成できる。スタックオーバーフロー、メモリリークについて説明できる。 | |
割り込み制御 | 割り込みの仕組みを理解し、各割り込みに反応するプログラムを実装できる。 | |
プロセス管理 | fork()を用いプロセスの生成、終了、親子プロセス間の同期を制御できる。 | |
共有メモリとセマフォ | 共有メモリを用いたプロセス間通信を行える。セマフォによる排他制御について理解できる。 | |
パイプ | パイプを用い親子プロセス間で通信できる。 | |
ソケット通信 | ソケットを用いコンピュータ間通信するプログラムを実装できる。 | |
マルチスレッド | マルチスレッド、排他制御を用いたプログラムを実装できる。 |
ルーブリック | |||
評価項目 | 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
上記授業項目のそれぞれについて | 各授業項目およびその達成目標に掲げた項目の内容について十分理解し、その仕組みを利用したプログラムを実装できる。さらにその項目の長所・短所を適切に理解できる。 | 各授業項目およびその達成目標に掲げた項目の内容について理解し、その仕組みを利用した簡単なプログラムを実装できる。 | 各授業項目およびその達成目標に掲げた項目の内容について理解できず、その仕組みを利用した簡単なプログラムを実装できない。 |
評価方法及び 総合評価 | レポートにより評価する。小テストを実施した場合は小テスト一回分を一通のレポートとみなして評価する。最終評価は各レポート評点の平均で求め、60%以上の得点率で合格とみなす。各レポートの提出期限には2種類あり、提出日が最初の期日を超えた場合提出遅れとして減点の上受理するが、後の期日を超えた場合はそのレポートを受理しない。 |
学習方法 | 各課題の実装が授業時間内に終わらなかった場合、自学学習の時間で終わらせること。 |
学生への メッセージ | システムプログラミングは一般のアプリケーション開発に比べると一見地味で細かい話が多い。しかしより本格的なプログラムを設計・開発する場合に必須の知識であるため、興味を持って取り組んで欲しい。 |
学修単位への対応 | 90分の授業に対して放課後・家庭で90分程度の自学自習が求められます。 |
本校教育目標との対応 | JABEE学習教育目標との対応 |