BoK: Body of Knowledge

情報工学科は、情報処理学会コンピュータ科学教育委員会により策定されたコンピュータ科学知識体系 CS-BOK-J(グローバル標準とされる米国 IEEE / ACM の CC2001 / CC2005 に相当する日本版 J07 の一環)をいったん諸要素に分解し、海外の高度教育機関と内容面の互換性を確保しつつ、グローバルに活動している現役の研究者による独自の視点を付加することにより、活用環境を想定した知識体系として新たに BoK01~15 へ組み換えたうえで専門教育科目等を系統的に設計しています。

BoK01 数学

本格的な AI や VR やゲームは、数式を起こし、プログラムを書き、コンピューターに高速大容量で計算させるため、数学が必須です。

DS1 関数、関係、集合

集合: ベン図、補集合、デカルト積、べき集合 / 関数: 全射、単射、逆関数、合成、濃度と可算性 / 関係 (主に二項関係): 反射律、対称律、推移律、同値関係、同値類

DS2 論理

命題論理: 論理記号、真理値表、標準形 (和積標準形と積和標準形)、恒真性 / 述語論理: 全称記法、存在記法 / 証明法: 三段論法、対偶

DS3 グラフ

グラフ: 無向グラフ、有向グラフ / 二項関係とグラフ: 推移閉包 / 木: 全域木、巡回戦略

DS4 証明技法

含意、逆、否定、対偶、矛盾 / 推論規則、公理、定理 / 形式的証明の構造 / 証明技法: 反例による証明、対偶による証明、背理法 / 数学的帰納法: 帰納法の原理、帰納法の使い方、再帰的定義

DS5 数え上げと離散確率の基礎

数え上げ論法: 和と積の法則、包除原理、算術数列と幾何数列、鳩の巣原理 / 順列と組合せ: 基本定義、パスカルの三角形、二項定理 / 漸化式の解法: 典型例、分類定理 / 離散確率の基礎: 条件付き確率、独立性、ベイズの定理、期待値、分散

その他

X1: 行列と行列式、正則行列と逆行列 / X2: 行列式、逆行列、行列の階数、行列の基本変形、連立一次方程式の解法 / X3: ベクトル空間 (線形空間) と部分空間、基底と次元、内積 / X4: 線形写像と表現行列 / X5: 固有値と固有ベクトル、行列の対角化 / X6: 行列の三角化、ジョルダンの標準形と基底ベクトル、ケーリーハミルトンの定理と最小多項式

その他

Y1: 複素数と複素平面 / Y2: 初等関数、正則関数、複素積分 / Y3: テイラー展開、ローラン展開 / Y4: 留数、留数定理とその応用 / Y5: 解析接続、等角写像、境界値問題 / Y6: フーリエ級数、複素フーリエ級数、収束と性質 / Y7: フーリエ級数の適用例 / Y8: 一般化フーリエ級数 / Y9: 離散フーリエ変換 / Y10: ラプラス変換、逆変換、ラプラス変換の有用な性質 / Y11: ラプラス変換の適用例

その他

Z1: 集合と整数の分割 (集合と自然数の分割、カタラン数) / Z2: 母関数 (数列や組合せ個数と母関数) / Z3: 漸化式または差分方程式 / Z4: 代数系 (群、環、体、束 [モジュラー束、分配束、ブール束]) / Z5: 離散確率 (確率的方法、ランダム化戦略) / Z6: ラテン方陣とブロックデザイン

BoK02 プログラミング

AR2 データのマシンレベルでの表現

ビット、バイト、ワード / 数値表現と基数 (base) / 固定小数点表現と浮動小数点表現 / 符号付き絶対値表現と 2 の補数表現 / 非数値データの表現: 文字コード、グラフィックデータ / レコードと配列の表現

MR2 文字コード

文字の字形と符号化および文字コード / フォントとの関連付け / 文字コードの国際規格

PF1 プログラミングの基本的構成要素

高水準言語の基本構文と意味論 / 変数、型、式、代入 / 単純な入出力 / 条件判定と繰返しの制御構造 / 関数と引数受渡し / 構造的分解

PF5 イベント駆動プログラミング

イベント処理手法 / イベント伝播 / 例外処理

PL1 プログラミング言語の概要

プログラミング言語の歴史 / プログラミングパラダイムの簡単なまとめ: 手続き型言語、オブジェクト指向言語、関数型言語、論理型言語、宣言的で非アルゴリズム的な言語、スクリプト言語 / プログラミング方法論への規模の影響

PL3 言語翻訳入門

インタプリタとコンパイラの比較 / 言語翻訳の各フェーズ: 字句解析、構文解析、コード生成、最適化 / 言語翻訳における機械依存な部分と機械独立な部分

PL4 宣言と型

値の集合と操作の集合で規定される型の概念 / 宣言モデル、結合、可視性、有効範囲、生存期間 / 型チェックの概要 / ごみ集め

PL5 抽象化メカニズム

抽象化メカニズムとしての手続き、関数、反復子 / 引数のメカニズム (値渡しと参照渡し) / 起動レコードと記憶管理 / 型パラメータおよびパラメータ化された型 / プログラミング言語におけるモジュール

PL6 オブジェクト指向言語

オブジェクト指向設計 / カプセル化と情報隠蔽 / 動作とその実装の分離 / クラスとサブクラス / 継承 (オーバライド、動的ディスパッチ) / 多相性 (サブタイプ多相性と継承) / クラス階層 / コレクションクラスと反復プロトコル / オブジェクトとメソッドテーブルの内部表現

PL7 関数型言語

関数型言語の概要と目標 / リスト、自然数、木を初めとする再帰的に定義されたデータ上の再帰 / 実際の使用法 (分割統治法によるデバッグ、データ構造の持続性) / 関数データ構造に関するならし効率 / 閉包、データとしての関数の使用 (無限集合、ストリーム)

PL8 論理型言語

論理型言語の概要と目標 / 論理型言語の計算メカニズム、ユニフィケーション、バックトラック / 否定の表現法、カット / 差分リスト、DCG

PL9 スクリプト言語

スクリプト言語の記述と役割 / 基本システムコマンド、スクリプトの作成、スクリプトの実行 / 引数受渡し、連想配列 / スクリプティングのプログラミングに与える影響

PL10 言語翻訳システム

字句解析における正規表現の適用 / 構文解析 (具象構文、抽象構文、抽象構文木) / 文脈自由文法へのテーブル駆動および再帰下降型構文解析の適用 / 記号表の管理 / 木の巡回によるコード生成 / アーキテクチャに特化した操作: 命令選択、レジスタ割当て / 最適化技法 / 翻訳プロセスを支援するツールの使用およびその利点 / プログラムライブラリと分離コンパイル / 構文主導型ツールの構築

BoK03 概論

IM1 情報モデルとシステム

情報の役割と機能 / 情報システムの歴史および動機づけ / 情報格納と情報検索 / 情報管理の応用 / 情報の獲得と表現 / 分析と索引付け / 探索、検索、関連付け、ナビゲーション / 情報機密性、整合性、安全性、保持 / 拡張性、効率、有効性

MR1 情報のディジタル表現

アナログ表現およびディジタル表現 / ディジタルデータ、S/N 比 / 意味内容の記号化と解釈 / 符号化と復号 / 情報量および情報量の単位 / 標本化、量子化、圧縮

PL2 仮想計算機

仮想計算機の概念 / 仮想計算機の階層 / 中間言語 / 他人の計算機でコードを実行することから生じるセキュリティ問題

SP1 コンピュータの歴史

先史 (パスカル、ライプニッツ、バベッジなど) / コンピュータのハードウェア、ソフトウェア、ネットワーク化の歴史 / コンピュータ科学のパイオニア達

BoK04 倫理

SP2 社会におけるコンピュータ

コンピュータの社会的意味 / ネットワーク・コミュニケーションの社会的意味 / インターネットの成長と制御可能性 / インターネットへのアクセス権 / ジェンダー (性差) に関連する問題 / 情報格差

SP3 倫理・価値判断の方法

倫理的な論証の実践と評価 / 倫理的な選択肢の探索 / 設計判断が与える社会的影響の理解 / 判断の前提と価値観の明確化 / 情報関連法

SP4 専門家としての倫理的責任

生活の場における価値観と法との関係 / 様々な形態の専門家の資格認定、その利点と欠点 / 公共政策における専門家の役割 / 結果に対しての責任感の持続 / 倫理上の反対意見と内部告発 / 倫理綱領と実践 (学会、専門職業者団体など) / ハラスメントと差別への対応 / 職場のコンピュータ環境における「許容される利用」規定

SP6 知的財産権

知的財産権の基礎 / 著作権、特許権、企業秘密 / ソフトウェア著作権侵害 / ソフトウェア特許 / 知的財産権に関する国際問題

SP7 プライバシーと市民的自由

プライバシー保護のための倫理的法律的根拠 / 大規模データベースシステムにおけるプライバシーの意味 / プライバシー保護のための技術戦略 / サイバースペースにおける表現の自由

SP8 コンピュータ犯罪

コンピュータ犯罪の歴史および事例 / クラッキング (ハッキング) とその影響 / ウイルス、ワーム、トロイの木馬 / サービス不能化攻撃 / 犯罪防止戦略

SP10 哲学的枠組み

哲学的枠組み、特に功利主義と義務論 / 倫理的相対主義の問題 / 歴史的視野で見た科学倫理 / 科学的アプローチと哲学的アプローチの差異

BoK05 アーキテクチャ

AR1 論理回路と論理システム

計算機アーキテクチャの概要と歴史: 基本的構成要素、論理ゲート、フリップフロップ、カウンタ、レジスタ、PLA / 論理式、最小化、積和形 / レジスタ転送表現 / 物理的特性: ゲートの遅延、ファンイン、ファンアウト

AR3 アセンブリレベルのマシン構成

フォンノイマン計算機の基本構成 / 制御ユニット / 命令フェッチ、デコード、実行 / 命令セットと命令の種類: データ操作命令、制御命令、入出力命令 / アセンブリプログラミング、機械語プログラミング / 命令フォーマット / アドレッシングモード / サブルーチンのコールとリターンのメカニズム / 入出力と割込み

AR6 機能的構成

簡単なデータパスの構成 / 制御ユニット: ワイヤードロジックによる実現、マイクロプログラムによる実現 / 命令のパイプライン化 / 命令レベル並列性 (ILP) の概説

AR7 並列処理と様々なアーキテクチャ

SIMD、MIMD、VLIW、EPICの紹介 / シストリックアーキテクチャ / マルチコア / 相互結合ネットワーク: ハイパーキューブ、シャッフル、メッシュ、クロスバ / 共有メモリシステム / キャッシュコヒーレンス / メモリモデルと一貫性

BoK06 データ構造とアルゴリズム

AL1 アルゴリズムの解析の基礎

計算量の解析: 時間計算量、領域計算量、最良、平均、最悪時の振る舞いの違いの区別、計算量の漸近的解析、大きなO記法 / 性能の実験的な測定 / 漸化式を用いた再帰的アルゴリズムの解析

AL2 アルゴリズム設計手法

二分探索法 / 再帰を用いたアルゴリズム設計法 / 分割統治法 / 動的計画法 / 一般探索法: 深さ優先探索、幅優先探索、バックトラック法、貪欲法、ヒューリスティックス

AL3 基本アルゴリズム

基本データ処理アルゴリズム: 整列アルゴリズム (クイックソート、マージソート)、探索アルゴリズム (ヒープ、二分探索木)、ハッシュ / 文字列・テキスト処理アルゴリズム (線形時間パターンマッチングアルゴリズム) / グラフ処理アルゴリズム (グラフ探索、最短経路、全域木計算

AL4 アルゴリズムの高度な解析

小さなo記法、Ω記法、θ記法、標準的な計算量クラス / ならし解析 (amortized analysis) / アルゴリズムにおける時間と領域のトレードオフ

AL5 高度なアルゴリズムの設計

各種探索アルゴリズム: 分枝限定法、A* アルゴリズム / 各種近似アルゴリズム / 乱択アルゴリズム (randomized algorithm) / オンラインアルゴリズム

AL6 計算量クラスPとNP

クラス P と NP の定義 / 還元の技法 / 代表的な NP 完全問題: NP 完全性 (クック・レヴィンの定理)、NP 完全問題の計算量

AL8 幾何アルゴリズム

凸包 / ボロノイ図 / 線分どうし、面と線分、面どうしの位置関係の判定

AL10 並列・分散アルゴリズム

並列アルゴリズム: 並列計算のモデル、排他制御 / 分散アルゴリズム: 合意形成とリーダー選出、安定性

IS2 探索および制約充足

問題空間 / 力ずく探索 / 幅優先探索 / 深さ優先探索 / 反復深化による深さ優先探索 / 最良優先探索 / 一般的な最良優先探索と発見的評価関数 / ダイクストラのアルゴリズム: A* アルゴリズム、A* アルゴリズムの最適性保証 / 2 プレーヤゲーム: ミニマックス法、α-β枝刈り / 制約充足 (バックトラック法および局所探索法)

PF2 アルゴリズムと問題解決

問題解決戦略 / 問題解決過程におけるアルゴリズムの役割 / アルゴリズムの実現戦略 / デバッグ戦略 / アルゴリズムの概念と特性

PF3 基本データ構造

基本型 / 配列 / レコード / 文字列と文字列処理 / メモリ内でのデータの表現 / 静的割当て、スタック割当て、ヒープ割当て / 実行時記憶管理 / ポインタと参照 / 連結構造 / スタック、キューおよびハッシュ表の実現戦略 / グラフと木の実現戦略 / 適切なデータ構造を選択するための戦略

PF4 再帰

再帰の概念 / 再帰的数学関数 / 簡単な再帰的手続き / 分割統治法 / 再帰的バックトラック法 / 再帰の実現

BoK07 数値計算

CN1 数値解析

浮動小数点演算 / 誤差、安定性、収束 / テイラー級数 / 求解のための逐次的解法 (ニュートン法) / 曲線の当てはめ、関数近似 / 数値微分と数値積分 (シンプソン則) / 微分方程式 / 線形代数、行列計算、連立方程式の解法 / 差分法 / 高速フーリエ変換 (FFT)

CN3 モデリングとシミュレーション

乱数: 擬似乱数生成とテスト、モンテカルロ法、分布関数初歩 / シミュレーションモデリング / 離散イベントシミュレーション / 連続シミュレーション / シミュレーションモデルの検証と妥当性実証 / 待ち行列モデル / 応用例

CN4 ハイパフォーマンス・コンピューティング

ハイパフォーマンス・コンピューティング初歩 / 計算科学の歴史と重要性 / 応用分野の概観 / 必要な技法のレビュー / ハイパフォーマンス・コンピューティング: プロセッサ・アーキテクチャ、高性能化のためのメモリシステム、入出力装置、パイプライン処理、並列言語と並列アーキテクチャ / 科学的可視化: 結果のプレゼンテーション、データ形式、可視化ツールとパッケージ / 問題例

BoK08 データベース演習

IM2 データベースシステム

データベースシステムの歴史およびその動機づけ / データベースシステムの構成要素と機能 / データベースアーキテクチャとデータ独立 / データベース問合わせ言語の利用

IM3 データモデリング

データモデリング: 概念モデル、物理モデル、外部モデル / 概念モデル: 実体関連モデル、UML (統一モデリング言語) / オブジェクト指向モデル: オブジェクト、クラス、型、オブジェクト同一性、型構成子、カプセル化、継承、多相性、バージョン管理 / 関係データモデル: 関係と関係スキーマ、属性と領域、キーと外部キー、整合性制約

IM4 関係データベース

概念スキーマの関係スキーマへの変換 / 実体整合性制約、参照整合性制約、キー制約、外部キー制約 / 関係代数: 集合論に基づく操作 (和、積、差、直積)、関係代数特有の操作 (選択、射影、結合、商) / 関係論理

IM5 データベース問合わせ言語

データベース問合わせ言語の概要 / SQL (データ定義、問合わせ記述、更新言語、制約、整合性) / 非手続き的問合わせの手続き型言語への埋込み

IM6 関係データベース設計とデータ操作

データベース設計 / 関数従属性 / 正規形: 第 1 正規形、第 2 正規形、第 3 正規形、ボイスコッド正規形 / 正規化と逆正規化 / 多値従属性 / 第 4 正規形 / 結合従属性 / 射影結合正規形、第 5 正規形 / 表現理論 / 問合わせ処理の最適化 / テンプレート型言語 / オブジェクト問合わせ言語

IM7 トランザクション処理

トランザクション / トランザクション開始 / (明示的、暗黙的) コミット / チェックポイント / ロールバック / 障害と回復: ログ、前向き回復、後向き回復 / 同時実行制御: ACID特性、直列化可能性、スケジューラ

IM8 分散データベース

分散データ格納: 断片化、(部分、完全) 複製、割当て / 分散問合わせ処理 / 分散トランザクションモデル: 2 相コミットプロトコル / 同時実行制御: 複製方式、投票方式 / 同種解および異種解 / クライアントサーバ

IM9 データベースの物理設計

記憶域、レコード型、ファイル構造 / 索引ファイル: 1 次索引と 2 次索引、クラスタ索引 / ハッシュファイル: 内部ハッシュと外部ハッシュ、動的ハッシュ / シグニチャファイル / B 木 / 稠密索引ファイル / 可変長レコードのファイル / データベースの効率とチューニング

IM11 情報格納と情報検索

文字、文字列、符号化、テキスト / 文書、電子出版、マーク付け、マーク付け言語 / トライ、転置ファイル、PAT 木、シグニチャファイル、索引付け / 形態素解析、語幹抽出、句、停止語リスト / 用語度数分布、不確実性、曖昧さ、重み付け / ベクトル空間、確率モデル、論理モデル、高度なモデル / 情報ニーズ、適合性、評価、有効性 / 類義語 (シソーラス)、オントロジ、分類と類別化、メタデータ / 書誌情報、書誌メトリックス、引用 / ルーティングおよび (コミュニティ) フィルタリング / 探索および探索戦略、情報追跡行動、ユーザモデリング、フィードバック / 情報要約と可視化 / 引用、キーワード、分類手法、およびその他の用語の統合 / プロトコルおよびシステム / Z39.50、OPAC、WWWエンジン

IM12 ハイパーテキストとハイパーメディア

ハイパーテキストモデル: 初期の歴史、ウェブ、XML / 半構造データ: ノード、複合、アンカー、リンク機能、提示、変形、同期 / ブラウジング、ナビゲーション、ビュー、ズーミング / XPath、XQuery / ハイパーテキストシステム / 検索エンジン、 (分散) ハイパーテキストアーキテクチャ / オーサリング、読込み、アノテーション / プロトコルおよびシステム / WEB、HTTP

IM13 マルチメディアデータベース

電子図書館: ディジタル化、格納、交換、ディジタルオブジェクト、複合物、パッケージ、メタデータ、カタログ化、著者送信、名前付け、保管庫、アーカイブ / 空間情報: 概念情報、地図情報、2 次元 / 3 次元、VR (仮想現実) / システムアーキテクチャ、相互運用性: エージェント、バス、ラッパー/メディエイタ / サービス: 検索、連結、ブラウジング / 知的財産権の管理、機密性、保護 (透かし挿入): 集積化と保持、整合性 / マルチメディアデータベース: ストリーム/構造、内容分析、索引付け、音声・画像・ビデオの検索、メディア同期化 / マルチモーダル統合/インタフェース

BoK09 コンピュータグラフィックス

GV1 グラフィックスにおける基礎技術

グラフィックス・ソフトウェアの階層 / グラフィックス・ライブラリ (API) の仕様 / 単純なカラーモデル / 座標系、同次座標と座標変換 / アフィン変換 / 投影法と投影変換 / ビューとクリッピング

GV2 グラフィック・システム

ラスタおよびベクトル表現と各画像フォーマット / グラフィックス用のデバイス / 3 次元モデル記述フォーマット / リアルタイム 3 次元 CG システム / グラフィックス用のハードウェア、ソフトウェアの進化と対応

GV3 2次元画像の生成と加工

ラスタ画像の生成と描画: ラスタライズにおける描画アルゴリズム、アンチ・エイリアシングと擬似階調表示 / 画素ごとの濃淡変換と色変換 / 空間フィルタリング / 画像の幾何学的変換

GV4 モデリング

3 次元物体の表現方法 / 曲線や曲面の表現形式 / フォントのモデリング / 空間の細分割技術とボクセル / 手続きモデル: フラクタル、メタボール、パーティクル / 変形可能モデル / デフォーム / ポリゴン曲面の表現とその変形 / 陰関数表現、メッシュ表現 / 再構成

GV5 レンダリング

画像メモリ / ワイヤフレームと隠線消去 / 隠面消去の手法 / フォトリアリスティック・レンダリング / ポリゴン面のシェーディングとシャドウイング / マッピング: テキスチャマッピング、ソリッドマッピング、環境マッピング、バンプマッピング / ノン・フォトリアリスティック・レンダリング / レイ・トレーシング / 大域照明モデル / 複雑な自然現象のレンダリング / 画像を基準としたレンダリングおよびライティング (実写画像との合成)

GV6 コンピュータ・アニメーション

キーフレーム・アニメーション / モーション・キャプチャ / カメラに特徴的な効果によるアニメーション / スクリプティング・システム / 手続き的なアニメーション / キャラクタのアニメーション / 特殊効果 / リアルタイム・アニメーション

GV7 視覚化

視覚化のための基本ビューおよび質問関数 / データフローとマッピング / 3 次元スカラー空間の視覚化 / 直接ボリュームレンダリング / ベクトル場やテンソルおよび流れの視覚化 / 情報の可視化 / インフォメーション・グラフィックス

GV8 仮想現実(VR)

3 次元ディスプレイ / ビューワ追跡と視界の計算 / 力のフィードバックのシミュレーションと触覚入出力機器 / 衝突感知 / リアルタイム・レンダリングと複数の詳細化レベル (LOD) / 画像に基づく VR / 対話的モデリング / ユーザインタフェースの問題と協同作業 / 医療、シミュレーション、トレーニングなどへの応用

GV9 コンピュータ・ビジョン

画像獲得 / ディジタル画像とその特性 / 画像の前処理 / スレシュホルディング、エッジベース、領域ベースなどのセグメンテーション / 形状表現と物体認識 / モーションの解析と物体追跡

HC2 簡単なグラフィカル・ユーザインタフェースの構築

グラフィカル・ユーザインタフェース (GUI) の原理 / GUI ツールキット

MR4 マルチメディア機器

入出力機器 / 容量計画と性能に関する問題 / 記録メディア / 記録、編集、交換、配信用のフォーマット / マルチメディアサーバおよびファイルシステム / マルチメディア開発をサポートするツール

MR5 オーサリング

情報の提示方法の分類と論理構造 / オーサリングにおける人間行動のモデル化 / 表音文字 (音素文字、音節文字)、表意文字、表語文字 / 言語の文字表記と表記の揺れ / 内容分析と検索手法: 索引付けと音声、画像、ビデオの検索 / メディアの提示方法に対応したメディアの加工と品質 / マルチメディアシステムでのユーザインタフェース / 情報提示における心理や知覚を考慮したデザイン / 文化や理解を考慮した設計 / 多様なメディアの選択と統合化 / グラフィックス的な操作に対するユーザへのフィードバック / リアルタイム制御におけるメディア対応

BoK10 ネットワーク

AR5 インタフェースと通信

入出力の基礎: ハンドシェイク、バッファリング、プログラム入出力、割込みを用いた入出力 / 割込みの構造: 割込みベクトル、優先順位、割込みに対する応答 / 外部記憶、物理的構成、ドライブ / バス: バスプロトコル、排他制御、ダイレクトメモリアクセス (DMA) / ネットワークの入門的説明 / マルチメディアのサポート / RAID アーキテクチャ

AR7 暗号アルゴリズム

暗号の歴史の概観 / 秘密鍵暗号と鍵交換問題 / 公開鍵暗号 / ディジタル署名 / 整数論的アルゴリズム / 情報セキュリティプロトコル

AR8 性能の向上

スーパースカラーアーキテクチャ / 分岐予測 / プリフェッチ / 投機的実行 / マルチスレッディング / スケーラビリティ

AR9 ネットワークと分散システムのためのアーキテクチャ

LAN と WAN の紹介 / 階層的プロトコル設計、ISO/OSI、IEEE802 / 分散アルゴリズムにおけるアーキテクチャ的要素の影響 / ネットワークコンピューティング / 分散マルチメディア

NC1 ネットワークコンピューティング入門

ネットワーク化とインターネットの背景と歴史 / ネットワークアーキテクチャ / ネットワークコンピューティング分野の個別テーマの概要: ネットワークとプロトコル、ネットワーク化されたマルチメディアシステム、分散コンピューティング、モバイルおよびワイヤレスコンピューティング

NC2 通信とネットワーク接続

ネットワーク標準および標準化団体 / ISO7 層参照モデルの一般論および TCP/IP におけるその具体例 / 回線交換とパケット交換 / ストリームとデータグラム / 物理層ネットワーク接続の概念: 理論的な基礎、伝送メディア、様々な標準 / データリンク層の概念: フレーミング、エラー制御、フロー制御、様々なプロトコル / ネットワーク間接続とルーティング: ルーティングアルゴリズム、ネットワーク間接続、輻輳制御 / トランスポート層サービス: 接続確立、性能の問題

NC3 ネットワークセキュリティ

暗号の基礎 / 秘密鍵アルゴリズム / 公開鍵アルゴリズム / 認証プロトコル / ディジタル署名

NC4 クライアントサーバコンピューティングの例としてのウェブ

クライアントサーバ関係の特徴 / ウェブ技術: HTML と URI、ウェブプロトコル、サーバ側のプログラム、コモンゲートウェイインタフェース (CGI) プログラム、クライアントサイドスクリプト、サーバとクライアントの協調、アプレットの概念 / ウェブサーバの特性: アクセス権限の扱い、ファイル管理、一般的なサーバアーキテクチャの能力 / ウェブサイト作成およびウェブ管理のためのサポートツール / インターネット情報サーバの開発例 / 情報やアプリケーションの公開例

NC5 分散アプリケーションの構築

ウェブアプリケーションのためのアプリケーション層プロトコル / ウェブアプリケーション開発技法の基本 / データベース駆動のウェブサイト / 遠隔手続き呼出し (RPC) / 分散オブジェクト / 分散アプリケーションでの同期と合意 / 分散トランザクション / 障害耐性 / ミドルウェアの役割 / 支援ツール / 分散アプリケーションにおけるセキュリティの問題 / 企業内ウェブベースアプリケーション

NC6 ネットワーク管理

ネットワーク管理上の課題の概要 / ドメインネームとネームサービス / パスワードおよびアクセス制御機構の使用 / セキュリティとファイアウォール / インターネットサービスプロバイダ (ISP) に関わる管理上の課題 / サービス品質の問題 / 性能、障害回復

NC7 ワイヤレスおよびモバイルコンピューティング

ワイヤレス標準の歴史、発展、互換性についての概観 / ワイヤレスおよびモバイルコンピューティングに固有な問題 / ワイヤレスローカルエリアネットワークと衛星ネットワーク / ワイヤレスローカルループ / モバイルインターネットプロトコル / 移動を意識することによる影響 / モバイルに適応するためのクライアントサーバモデルの拡張 / モバイルデータアクセス: サーバデータの配布およびクライアントキャッシュの管理 / モバイルワイヤレスコンピューティングを支援するソフトウェアパッケージ / ミドルウェアおよび支援ツールの役割 / 性能の問題

SP5 情報システムのリスクと脆弱性

ソフトウェア・リスクの歴史的な例 (Therac-25 のケースなど) / ソフトウェアの複雑さの影響 / リスクの評価と管理

BoK11 オペレーティングシステム

OS1 オペレーティングシステムの概要

コンピュータのソフトウェア階層とオペレーティングシステムの位置づけ / オペレーティングシステムの機能: 仮想化、抽象化、資源管理 / オペレーティングシステムの設計上の問題: 効率性、信頼性、セキュリティ、適応性、拡張性、可搬性、互換性 / オペレーティングシステムの歴史 / コンピュータの処理形態とオペレーティングシステム: バッチ処理、タイムシェアリングシステム、パーソナルコンピューティング、リアルタイムシステム、並列・分散処理

OS2 利用者から見たオペレーティングシステム

コマンドラインインタフェースとグラフィカルユーザインタフェース / アプリケーションプログラムインタフェース (API) の概念: システムコール、ライブラリ / プログラムの実行管理: 言語翻訳システム、リンカ、ローダ

OS3 オペレーティン グシステムの原理

割込みの処理 / ユーザモードとカーネルモードの概念 / システムコールの実現機構 / 基本的な入出力 / オペレーティングシステムの基本構成: 階層的な抽象層、典型的な機能モジュール

OS4 プロセスの構造とスケジューリング

プロセスの概念 / ディスパッチとコンテキストスイッチ / プロセスの状態と状態遷移 / プロセスの構造: 実行可能リスト、プロセス制御ブロック / スレッドの概念と機構 / プリエンプティブおよびノンプリエンプティブスケジューリング / スケジューラとスケジューリングポリシー: 到着順、処理時間順、ラウンドロビン、固定優先度、可変優先度

OS5 並行性

相互排除と条件同期 / 同期基本命令: 割込み禁止、ロック、セマフォ、モニタ、条件変数 / プロセス間通信: 共有メモリに基づく方法、メッセージパッシング / 典型的な同期問題 生産者消費者問題、リーダーライター問題 デッドロックの要因、条件、回避

OS6 メモリ管理

コンピュータのメモリ階層 / 物理メモリの管理 / オーバレイ、スワッピング / 仮想メモリの機構 / ページングとセグメンテーション / ページフェッチとページ配置のポリシー / プリページング、デマンドページング / ページ置換えのポリシー: FIFO、LRU およびその近似方式 / スラッシング / ワーキングセットに基づくページ置換え

OS7 入出力デバイス管理と入出力

入出力デバイスの特性 / 入出力方式: DMA とプログラム入出力、メモリマップト入出力と分離入出力 / バッファリング方式 / デバイスドライバとその機能: 入出力デバイスの仮想化、周辺機器の自動接続、障害からの回復

OS8 ファイルシステム

ディスク装置の特性、ディスクスケジューリング / データのキャッシング / ファイルの構造、アクセス法 / ディレクトリの構造、ネーミングと探索法 / ファイルシステムとディスク領域の管理 / ディスク装置以外の 2 次記憶 (補助メモリ) の特性とファイルシステムの設計 / ファイルシステムの実例

OS10 セキュリティと高信頼化

セキュアオペレーティングシステムとその機能: 強制アクセス制御、最小特権 / 暗号化とその応用 / オペレーティングシステムの回復管理 / 高信頼化ファイルシステム / ジャーナリング、バックアップ

OS12 並列・分散処理のためのオペレーティングシステムの機能

マルチプロセッサの基本構成とオペレーティングシステム: オペレーティングシステム、ネットワークオペレーティングシステムと分散オペレーティングシステム / マルチプロセッサのためのスケジューリング / マルチプロセッサのための同期機構 / マルチプロセッサのためのメモリ管理 / ファイルアクセスおよび入出力の並列化 / マルチプロセッサのためのカーネル構成法 / ネットワーク通信と遠隔手続き呼出し / 分散ファイルシステム / オペレーティングシステムの分散処理機能

BoK12 ソフトウェア工学

SE1 ソフトウェア設計

基本的な設計概念および原理 / 構造化設計 / オブジェクト指向分析および設計 / ソフトウェアアーキテクチャ / 設計パターン / コンポーネントレベルの設計 / リファクタリングおよび再利用のための設計

SE4 ソフトウェアプロセス

ソフトウェアライフサイクルおよびプロセスモデル: ウォータフォールモデル、インクリメンタルモデル、統一プロセスモデル、アジャイル開発 / プロセス評価モデル: プロセス成熟度モデル / ソフトウェアプロセス計量尺度

SE5 ソフトウェア要求および仕様

ステークホルダ分析と要求獲得 / 要求分析モデリング技法 / 機能要求と非機能要求 / プロトタイピング / 形式仕様技法の基礎的な概念

SE6 ソフトウェア妥当性検査

妥当性検査と検証 / 妥当性検査 / テスト計画立案とテストケース生成を含むテスト基本事項 / ブラックボックステスト、ホワイトボックステスト / 単体テスト、統合テスト、システムテスト / オブジェクト指向テスト / インスペクション

SE7 ソフトウェアの進化

ソフトウェアの保守 / 保全性のあるソフトウェアの特徴 / リエンジニアリング: 回帰テスト、リリース管理 / レガシーシステム / リバースエンジニアリング / ソフトウェアの再利用

SE8 ソフトウェアプロジェクト管理

コーディング規約 / チーム管理: チームプロセス、チーム編成と意思決定、ソフトウェアチームにおける役割と責任、役割の識別と割当て、プロジェクト追跡、チーム問題の解決 / プロジェクト計画 / ソフトウェア計測および見積り技術 / リスクの分析 / ソフトウェア品質保証 / ソフトウェア構成管理 / プロジェクト管理ツール

BoK13 知能

HC4 人間中心のソフトウェア開発

アプローチ、特性、およびプロセス / 機能性とユーザビリティ: タスク分析、インタビュー、アンケート調査 / 対話と表現の仕様記述 / プロトタイピング技法とツール: 紙を使ったストーリーボード、継承および動的ディスパッチ、プロトタイピング言語および GUI ビルダ

IS3 知識表現および推論

命題論理および述語論理の復習 / 導出原理と定理証明 / 非単調推論 / 確率的推論 / ベイズの定理

IS7 自然言語処理

決定的文法と確率的文法 / 構文解析アルゴリズム / コーパスに基づく手法 / 情報検索 / 言語翻訳 / 音声認識

BoK14 画像の暗号と復号

AL7 暗号アルゴリズム

暗号の歴史の概観 / 秘密鍵暗号と鍵交換問題 / 公開鍵暗号: ディジタル署名 / 整数論的アルゴリズム / 情報セキュリティプロトコル

NC3 ネットワークセキュリティ

暗号の基礎 / 秘密鍵アルゴリズム / 公開鍵アルゴリズム / 認証プロトコル / ディジタル署名

MR3 標本化、量子化、圧縮の原理とアルゴリズム

シャノンの情報理論 / 標本化定理 / 画像、音声、映像の標本化と量子化 / 符号化と復号のアルゴリズム / 可逆圧縮と不可逆 (劣化) 圧縮 / データ圧縮のアルゴリズム / コーデック (codec) とプロファイル / コーデックで用いられる圧縮アルゴリズム / 標本化、量子化、圧縮による人間の認識およびメディアの品質

BoK15 政策数学

AL9 データ分析アルゴリズム

学習アルゴリズム: 極限における同定、確率近似学習 (PAC 学習)、質問学習、オンライン学習 / 主成分分析 / さまざまな統計量の計算法とその利用法

CN2 オペレーションズリサーチ

線形計画法: 整数計画法、シンプレックス法 / 確率的モデリング / 待ち行列理論 / 最適化 / ネットワーク解析 / 予測と推定 / 動的計画法 / 応用例 / ソフトウェアツール

IM10 データマイニング

データマイニングの有用性 / 同時パターンおよび順次パターン / データクラスタリング / マーケットバスケット分析と APRIORI / データクリーニング: 雑音、冗長性、例外値 / データ可視化 / データマイニングシステム

MR3 標本化、量子化、圧縮の原理とアルゴリズム

シャノンの情報理論 / 標本化定理 / 画像、音声、映像の標本化と量子化 / 符号化と復号のアルゴリズム / 可逆圧縮と不可逆 (劣化) 圧縮 / データ圧縮のアルゴリズム / コーデック (codec) とプロファイル / コーデックで用いられる圧縮アルゴリズム / 標本化、量子化、圧縮による人間の認識およびメディアの品質