Syllabus list

OSS Course Navi とは

OSS Course Navi は、IPA OSS カリキュラムを基に、OSSについて学ぶ上で参考となる関連項目をひもづけて Web 化したものです。シラバス、学習ガイダンスの内容は、IPA OSS カリキュラムと同一です。

また、カリキュラムの科目に関連する教育機関や、技術検定、参考になるサイトなども、各科目の解説、学習ガイダンスからリンクされていますので、学習の促進にお役立てください。

シラバス 概要 学習ガイダンス
1. OSSの概要に関する知識

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

2. 法務分野に関する知識

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

3. コンピュータシステムやアーキテクチャに関する知識

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

4. 分散アーキテクチャに関する知識

分散情報システムを構築する際によく用いられる要素技術とその基礎となる考え方を理解するとともに、実際のミドルウェアやアプリケーションの事例に即した形で、分散アプリケーション構築に必要なスキルを身につける。

4. 分散アーキテクチャに関する知識
5. Linuxの概念や基本操作に関する知識

フリーのOSであるLinuxを学習・使用するにあたって必要となる(UNIXとしての、Linuxとしての)知識・技術を学び、より高度・実務的な作業への基礎とする。

他のカリキュラムを受講する上での前提とする。

6. Linuxカーネルに関する知識

OSSの代表的な存在であり、またプラットフォームとしても数多くの実績をもつオペレーティングシステムであるLinuxについて、その機能と内部構造について学ぶ。また、併せて、それらの機能を実現するための基礎となっている理論についても学ぶ。

7. Linuxのシステム管理に関する知識

オープンソースオペレーティングシステムとしてもっとも利用が期待されるLinuxのシステム管理に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、Linuxをサーバとして運用するために必要なノウハウを実務レベルとして学ぶ。

8. Linuxのシステムプログラミングに関する知識

Linuxをインストールしたマシン上で、多くの動作するプログラム例をコンパイル、実行して、システムプログラムを作成する。最終的には、DBM、割り込み処理、子プロセスを作成して親プロセスとプロセス間通信、ネットワークプログラミング等、システムプログラム全般の技術について学習する。

9. ネットワークサーバ管理に関する知識

OSSが動作する基盤となるネットワークサーバについて、その種類と特徴、動向を理解し、ネットワークサーバを用いて開発するために必要な一連の基礎知識と管理技術概要を学ぶ。

10. クラスタシステム構築に関する知識

High Availability ClusterとHigh Performance Computing Clusterの構築にかかわる技術の習得およびシステム構築の演習を通してクラスタ構築に関する基礎技術の習得を目指す。HPC Clusterの講義では、並列プログラミングに関する講義も行う。

11. ネットワークアーキテクチャに関する知識

オープンソースネットワークの中心技術となるTCP/IPプロトコル及びネットワーキング技術を集中的に学ぶ。特にTCP/IPプロトコルスタック、ソケット通信の仕組み、TCPコネクション管理のメカニズムを理解し、TCP/IPを用いた通信プログラム開発技術を学ぶ。

12. ネットワーク管理に関する知識

ネットワーク管理に関して、実際の作業に必要な管理知識・手法の種類と特徴、内容を理解し、オープンソース基盤ネットワークを運用するために必要なノウハウを実務レベルとして学ぶ。

13. Javaに関する知識

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

14. C、C++に関する知識

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

15. Light Weight Languageに関する知識

コードの作成や修正が容易とされる軽量プログラミング言語(Light Weight Language)を学習し、アプリケーション開発の手法を習得する。本カリキュラムでは、まずLight Weight Languageに位置づけされるPerl、PHP、Python、Rubyといったプログラミング言語の特徴について解説し、動作環境の構築や基本的な構文について習得する。

次に、前述した言語のうち、Rubyの焦点をあて、Rubyによるオブジェクト指向開発やフレームワークによるWebアプリケーション開発について学習する。最後に、オープンソースとして公開されているWebアプリケーションをカスタマイズし、機能を追加する方法について学習する。

16. 開発フレームワークに関する知識

現在普及が期待されている開発フレームワークの実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、必要なノウハウを実務レベルとして学ぶ。

17. 開発ツールに関する知識

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

18. 統合開発環境に関する知識

OSSの開発で用いられている統合開発環境について、その種類や特徴、使い方、活用方法等を理解することを通じて、OSSをソースコードレベルで活用したり、開発プロジェクトに参加したりするための基礎知識やノウハウを学ぶ。

19. 暗号化に関する知識

OSSアプリケーションのセキュリティ保持に必須の暗号化技術について、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解する。暗号化基盤として、実際にインターネット上で暗号化を担当する暗号化基盤の仕組みを理解する。

20. ネットワークセキュリティに関する知識

OSS動作環境におけるセキュリティリスク、それに対応するセキュリティ要件とその機能、構成に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、Linuxサーバを例として、セキュリティ実装の手順を実務レベルとして学ぶ。

21. OSセキュリティに関する知識

OSのセキュリティ機能として必要な機能と、オープンソースOSとしてもっとも利用が期待されるLinuxのセキュリティ管理に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を学ぶ。

22. RDBに関する知識

OSのセキュリティ機能として必要な機能と、オープンソースOSとしてもっとも利用が期待されるLinuxのセキュリティ管理に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を学ぶ。

23. RDBシステム管理に関する知識

OSSのデータストアとしてのデータベースの運用管理機能とその方法に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、データベースを運用するために必要なノウハウを実務レベルとして学ぶ。

24. 組み込みシステムに関する知識

OSSのデータストアとしてのデータベースの運用管理機能とその方法に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、データベースを運用するために必要なノウハウを実務レベルとして学ぶ。

25. 組み込み開発環境に関する知識

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

26. 組み込みアプリケーション開発に関する知識

組み込みアプリケーションの制御パターンやアーキテクチャを、実際の実装事例の研究を交えながら、留意点や特徴を学ぶ。

27. 組み込みシステム最適化に関する知識

組み込みシステムの性能最適化のためのソフトウェア、ハードウェア、構成、設計などの必要な機能と、その手順、方法に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を学ぶ。

記事配信

コンテンツ配信

ユーザログイン