OSSモデルカリキュラムV2(2011年5月公開)

 下の表は、OSSモデルカリキュラムV1拡充として、2009年度事業、2010年度事業で新たに作成されたシラバス・学習ガイダンスをまとめ、OSSモデルカリキュラムV2としました。
 OSSモデルカリキュラムV1との対比については「OSSモデルカリキュラムの位置づけと拡充」をご確認下さい。

 OSSモデルカリキュラムV1拡充調査報告書
  2009年度(概要版PDF[1,182KB] 詳細版PDF[1,609KB] )
  2010年度(概要版PDF[853KB] 詳細版PDF[1,466KB] )

分野 No. シラバス 学習ガイダンス 概要
1 基礎 1-1

OSSの概要に関する知識(基本レベル)

PDF[251KB]

OSSの概要に関する知識(基本レベル)

PDF[908KB]

ソフトウェアの新たな開発手法となりソフトウェア業界で大きな影響力を持つようになったオープンソースについて学習する。本カリキュラムでは、オープンソースの登場から現在に至る発展の経緯や代表的なソフトウェアの特徴を理解する。講義の後半では実際にソフトウェアをPCにインストールしながら演習を行う。
1-2

法務分野に関する知識(基本レベル)

PDF[176KB]

法務分野に関する知識(基本レベル)

PDF[817KB]

オープンソースにまつわる知財や法務に関する基礎知識について解説する。本講義では、オープンソースの代表的なライセンスや関連する法務分野の基礎知識を解説する。

法務分野に関する知識(応用レベル)

PDF[179KB]

法務分野に関する知識(応用レベル)

PDF[1,048KB]

1-3

コンピュータシステムに関する知識(基礎レベル)

PDF[189KB]

コンピュータシステムに関する知識(基礎レベル)

PDF[549KB]

OSSが動作する基盤となるコンピュータシステムやアーキテクチャについて、ハードウェア、ソフトウェア、ミドルウェア等それぞれに関するアーキテクチャの種類、基本的な構成、特徴、役割について解説し、Webシステムや、OSSを活用したシステム基盤設計の手順や事例を紹介し、さらに将来におけるコンピュータシステムの発展についても説明する。

コンピュータシステムに関する知識(応用レベル)

PDF[195KB]

コンピュータシステムに関する知識(応用レベル)

PDF[1,009KB]

1-4

システムアーキテクチャに関する知識(基礎レベル)

PDF[233KB]

システムアーキテクチャに関する知識(基礎レベル)

PDF[587KB]

情報システムが複雑化するなかで、システムのアーキテクチャは分散化に向かっている。分散システムの構成、特徴について説明し、分散システムの重要な要素である負荷分散と冗長化等の技術を解説する。

システムアーキテクチャに関する知識(応用レベル)

PDF[216KB]

システムアーキテクチャに関する知識(応用レベル)

PDF[858KB]

2 システム 2-1

Linuxの概念や基本操作に関する知識(基礎レベル)

PDF[191KB]

Linuxの概念や基本操作に関する知識(基礎レベル)

PDF[675KB]

Linuxを利用するにあたり必要となるUNIXの知識や、Linux発展の歴史、開発モデル、ディストリビューションの特性といった話題を紹介する。さらにシェルを介したOSの操作、マルチタスク・マルチユーザの概念、システム管理方法などについて解説する。

Linuxの概念や基本操作に関する知識(応用レベル)

PDF[192KB]

Linuxの概念や基本操作に関する知識(応用レベル)

PDF[639KB]

2-2

Linuxのカーネルに関する知識(応用レベル)

PDF[207KB]

Linuxのカーネルに関する知識(応用レベル)

PDF[616KB]

Linuxオペレーティングシステムの中核をなすカーネルの動作について、メモリ管理、プロセス管理、といった基本動作の詳細と、カーネルによるファイルシステムやネットワークの取り扱いについて、具体的な動作原理を説明する。
2-3

Linuxのシステム管理に関する知識(基礎レベル)

PDF[186KB]

Linuxのシステム管理に関する知識(基礎レベル)

PDF[831KB]

Linuxのシステム管理に関する手順のうち、やや高度なサービスの設定に関する手順を解説する。サーバとして利用する際の基本的な設定と、DHCP、FTP、ファイル共有など様々なサービスについて具体的な設定方法を示し、運用のノウハウを紹介する。

Linuxのシステム管理に関する知識(応用レベル)

PDF[189KB]

Linuxのシステム管理に関する知識(応用レベル)

PDF[600KB]

2-4

Linuxのシステムプログラミングに関する知識(基礎レベル)

PDF[207KB]

Linuxのシステムプログラミングに関する知識(基礎レベル)

PDF[540KB]

Linuxにおいてシステムが提供するリソースを活用してプログラムを実行するシステムプログラミング解説し、スレッドプログラミングやプロセス間通信、デバイスファイルの利用、セマフォや共有メモリ、メッセージキューの利用など、比較的高度な話題についても解説する。

Linuxのシステムプログラミングに関する知識(応用レベル)

PDF[211KB]

Linuxのシステムプログラミングに関する知識(応用レベル)

PDF[977KB]

2-5

ネットワークサーバ管理に関する知識(基礎レベル)

PDF[182KB]

ネットワークサーバ管理に関する知識(基礎レベル)

PDF[573KB]

OSSが動作するネットワークサーバについて、その基本的な役割と構成、種類、特徴を解説する。さらに代表的なネットワークサーバを紹介し、各サーバの仕組みや実装について説明する。

ネットワークサーバ管理に関する知識(応用レベル)

PDF[190KB]

ネットワークサーバ管理に関する知識(応用レベル)

PDF[704KB]

2-6

クラスタシステム構築に関する知識(応用レベル)

PDF[222KB]

クラスタシステム構築に関する知識(応用レベル)

PDF[704KB]

HPC (High Performance Computing)クラスタにおけるプログラミングに利用できる、HPF、OpenMP、MPIといった技術について解説する。さらにPCクラスタの構築方法やPCクラスタを管理するためのSCore、その他のユーテリティも紹介する。
3 ネットワーク

3-1

ネットワークアーキテクチャに関する知識(基礎レベル)

PDF[196KB]

ネットワークアーキテクチャに関する知識(基礎レベル)

PDF[756KB]

TCP/IPプロトコルの全体像について解説し、TCP/IPを用いた通信で構成されているインターネットやLAN (Local Area Network)の仕組みと特徴を説明する。またOSIの7層モデルと対比しつつ、現代におけるコンピュータネットワークの階層構造について説明する。

ネットワークアーキテクチャに関する知識(応用レベル)

PDF[193KB]

ネットワークアーキテクチャに関する知識(応用レベル)

PDF[1,429KB]

3-2

ネットワーク管理に関する知識(基礎レベル)

PDF[203KB]

ネットワーク管理に関する知識(基礎レベル)

PDF[667KB]

ネットワークの運用管理に関して、実際の作業に必要な知識を説明する。各種管理の作業内容、ネットワーク管理コマンドの利用方法など実際の作業手順、ネットワーク障害の発生原因やトラブルシューティングに関する知識など、実務的なノウハウを解説する。

ネットワーク管理に関する知識(応用レベル)

PDF[207KB]

ネットワーク管理に関する知識(応用レベル)

PDF[1,010KB]

4 プログラミング 4-1

Javaに関する知識(基本レベル)

PDF[247KB]

Javaに関する知識(基本レベル)

PDF[680KB]

もっとも普及しているオープンソース言語Javaの仕組み、基本的なプログラミング文法、オブジェクト指向によるプログラム設計と作成方法を学ぶ。さらにWebアプリケーションの基本構成、データベース接続と利用の方法について学ぶ。

Javaに関する知識(応用レベル)

PDF[243KB]

Javaに関する知識(応用レベル)

PDF[1,012KB]

4-2

Cに関する知識(基本レベル)

PDF[251KB]

Cに関する知識(基本レベル)

PDF[713KB]

オープンソースシステムのソースを解読する上で、Cの知識は必須であるといえる。本カリキュラムでは、Cの基本的な構成や制御構文、データの扱い方について理解を深め、ポインタとメモリ管理について学習し、アルゴリズムとデータ構造の実装方法を学習する。CでのOSS開発において、セキュリティを強化し、機能性や信頼性を向上するために必要となる様々な知識や、並列処理による効率を考慮した技術、様々なライブラリを通じて可搬性や使用性を向上させる技術などを学習する。

Cに関する知識(応用レベル)

PDF[251KB]

Cに関する知識(応用レベル)

PDF[806KB]

4-3

C++に関する知識(基礎レベル)

PDF[256KB]

C++に関する知識(基本レベル)

PDF[730KB]

オブジェクト指向に関する理解を深めるために、C++について学習する。最後に、オープンソースとして公開されているライブラリを利用して、GUIアプリケーションなどの開発技法について学習する。オープンソースシステムのソースを解読する上で、C++の知識は必須であるといえる。本カリキュラムでは、まずオブジェクト指向に関する理解を深め、クラスの扱い方について学習し、STLを使用してアルゴリズムとデータ構造を実装する方法を学習する。

C++に関する知識(応用レベル)

PDF[251KB]

C++に関する知識(応用レベル)

PDF[847KB]

4-4

スクリプト言語に関する知識(基本レベル)

PDF[257KB]

スクリプト言語に関する知識(基本レベル)

PDF[854KB]

コードの作成や修正が容易とされるスクリプト言語を学習し、アプリケーション開発の手法を習得する。本カリキュラムでは、まずスクリプト言語に位置づけされるPerl、PHP、Python、JavaScript、Rubyといったプログラミング言語の特徴について解説し、動作環境の構築や基本的な構文について習得する。次に前述した言語のうちRubyに焦点をあて、オブジェクト指向や正規表現、連想配列といった技術について学習する。
コードの作成や修正が容易とされるスクリプト言語のうち、特にRubyについて学習し、応用的なアプリケーション開発の手法を習得する。フレームワークによるWebアプリケーション開発やデータベース操作について学習する。

スクリプト言語に関する知識(応用レベル)

PDF[235KB]

スクリプト言語に関する知識(応用レベル)

PDF[1,197KB]

4-5

Webアプリケーションに関する知識(基礎レベル)

PDF[209KB]

Webアプリケーションに関する知識(基礎レベル)

PDF[823KB]

スクリプト言語やJava言語を利用して、Ruby on Railsやその他Webフレームワークを活用して、マークアップ言語およびスクリプト言語を用いたWebサービスを提供するアプリケーションを開発する際に必要とされるスキルを学習する。基本編ではWebに関する基礎的な事項を中心に学ぶ。

Webアプリケーションに関する知識(応用レベル)

PDF[185KB]

Webアプリケーションに関する知識(応用レベル)

PDF[742KB]

5 開発体系 5-1

開発フレームワークに関する知識(基本レベル)

PDF[233KB]

開発フレームワークに関する知識(基本レベル)

PDF[908KB]

現在普及が期待されている開発フレームワークの実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、必要なノウハウを実務レベルとして学ぶ。
開発フレームワークを利用したWebアプリケーションの実装方法を理解する。MVCやORマッピング、DIxAOPといった技術を理解する。

開発フレームワークに関する知識(応用レベル)

PDF[223KB]

開発フレームワークに関する知識(応用レベル)

PDF[1,072KB]

5-2

開発ツールに関する知識(基本レベル)

PDF[283KB]

開発ツールに関する知識(基本レベル)

PDF[1,580KB]

バージョン管理システム、デバッガ、バグ追跡システム、システムプロファイラなどのソフトウェア開発ツールについて、その種類と特徴、動向の理解に必要な一連の基礎知識と活用技術の概要を学ぶ。バージョン管理システム、バグ追跡システム、などのソフトウェア開発ツールをそれぞれ連携させることにより、活用技術を学ぶ。

開発ツールに関する知識(応用レベル)

PDF[235KB]

開発ツールに関する知識(応用レベル)

PDF[1,196KB]

5-3

統合開発環境に関する知識(基本レベル)

PDF[231KB]

統合開発環境に関する知識(基本レベル)

PDF[1,642KB]

OSSの開発で用いられている統合開発環境について、その種類や特徴、使い方、活用方法等を理解することを通じて、OSSをソースコードレベルで活用したり、開発プロジェクトに参加したりするための基礎知識やノウハウを学ぶ。
統合開発環境と、バグ管理ツール、ビルドツールなど様々な開発ツールとの連携や、MVCフレームワークなどのJavaフレームワークとの連携、C言語やスクリプト言語などJava以外の言語での利用方法について学ぶ。

統合開発環境に関する知識(応用レベル)

PDF[241KB]

統合開発環境に関する知識(応用レベル)

PDF[1,944KB]

5-4

OSS開発プロセスに関する知識(応用レベル)

PDF[196KB]

OSS開発プロセスに関する知識(応用レベル)

PDF[1,691KB]

オープンソースプロジェクトに開発者として参加するために、事前に知っておくべきオープンソースコミュニティの組織や開発方法を説明する。
5-5

OSSコミュニティマネジメントに関する知識(応用レベル)

PDF[202KB]

OSSコミュニティマネジメントに関する知識(応用レベル)

PDF[1,167KB]

オープンソースプロジェクトにおける、企業内プロジェクトでいうマネージャの役割となるコミュニティマネージャを育成する上で必要な、コミュニティ組織、開発体制、コミュニケーション手段などを学習する。
6 セキュリティ 6-1

暗号化に関する知識(基礎レベル)

PDF[205KB]

暗号化に関する知識(基礎レベル)

PDF[724KB]

OSS アプリケーションのセキュリティを確保するために必須の技術である暗号化について、公開鍵・秘密鍵暗号、認証などの各手法とその実装方法、および実用的な無線LANの暗号化やセキュアシェル(SSH)などの技術を解説する。

暗号化に関する知識(応用レベル)

PDF[213KB]

暗号化に関する知識(応用レベル)

PDF[955KB]

6-2

ネットワークセキュリティに関する知識(基礎レベル)

PDF[209KB]

ネットワークセキュリティに関する知識(基礎レベル)

PDF[804KB]

ネットワークにおけるセキュリティのリスクと、各種リスクに対する対策手法の概要、機能、実装などについて述べる。具体的なセキュリティ要件を説明し、サーバ運用やネットワーク設計におけるセキュリティ実装について実務的な知識を解説する。

ネットワークセキュリティに関する知識(応用レベル)

PDF[203KB]

ネットワークセキュリティに関する知識(応用レベル)

PDF[1,131KB]

6-3

OSセキュリティに関する知識(基礎レベル)

PDF[214KB]

OSセキュリティに関する知識(基礎レベル)

PDF[1,307KB]

OSのセキュリティを確保するために必要な機能を、Linuxを題材として解説する。ローカルで利用する際のセキュリティ対策を示し、さらにネットワーク経由で利用する際のセキュリティ対策のうち、とくにOSのセキュリティ管理に必要な部分に焦点を当てて説明する。

OSセキュリティに関する知識(応用レベル)

PDF[199KB]

OSセキュリティに関する知識(応用レベル)

PDF[842KB]

7 RDB 7-1

RDBに関する知識(基礎レベル)

PDF[216KB]

RDBに関する知識(基礎レベル)

PDF[773KB]

現在におけるデータベースの主流である関係データベース(RDB)に関して、その基本的な構成、機能と役割、特徴を解説する。また実際の開発や運用に必要な設計手法や正規化手法、分析手法について説明を加える。

RDBに関する知識(応用レベル)

PDF[197KB]

RDBに関する知識(応用レベル)

PDF[773KB]

7-2

RDBシステム管理に関する知識(基礎レベル)

PDF[210KB]

RDBシステム管理に関する知識(基礎レベル)

PDF[604KB]

関係データベースの運用管理機能とその管理方法について、具体的な内容と管理のための知識を解説する。バックアップとリカバリ、セキュリティに対する配慮、データベース運用時の動作監視といった基本的な項目について説明する。

RDBシステム管理に関する知識(応用レベル)

PDF[217KB]

RDBシステム管理に関する知識(応用レベル)

PDF[758KB]

8 組み込みソフトウェア 8-1

組み込みシステム開発に関する知識(基本レベル)

PDF[273KB]

組み込みシステム開発に関する知識(基本レベル)

PDF[1,006KB]

開発方法論、組み込みシステム設計・開発に必要な知識、方法論を概要として学ぶ。オープンソースとのかかわり、取り組み状況を理解する。

組み込みシステム開発に関する知識(応用レベル)

PDF[242KB]

組み込みシステム開発に関する知識(応用レベル)

PDF[986KB]

8-2

組み込み開発環境に関する知識(基本レベル)

PDF[196KB]

組み込み開発環境に関する知識(基本レベル)

PDF[1,707KB]

ソフトウェアが動作する基盤となるコンピュータシステム、ハードウェア、アーキテクチャについて、その種類と特徴、動向を理解し、OSSを用いて開発するためのハードウェアや基盤に必要な一連の基礎知識と活用技術の概要について学ぶ。

組み込み開発環境に関する知識(応用レベル)

PDF[229KB]

組み込み開発環境に関する知識(応用レベル)

PDF[1,282KB]

8-3

デバイスドライバ開発に関する知識(応用レベル)

PDF[205KB]

デバイスドライバ開発に関する知識(応用レベル)

PDF[1,035KB]

デバイスドライバの役割や開発方法を通してLinuxOSの動作やカーネルレベルでの動作を学ぶ。