本事業は、平成23年6月末のオープンソフトウェア・センター廃止に伴い、IT人材育成本部 産学連携推進センターに引き継がれました。最新情報は産学連携推進センターよりご確認ください。
OSS基本知識の学習オリエンテーション調査報告書
(概要版
[1,722KB] 詳細版
[3,088KB] )
OSS応用知識の学習オリエンテーション
(概要版
[2,339KB] 詳細版
[2,410KB] 付録1
[1,027KB] 付録2
[847KB] )
| シラバス | 学習ガイダンス | 概要 | ||
|---|---|---|---|---|
| 基礎 | 1 |
|
|
ソフトウェアの新たな開発手法となりソフトウェア業界で大きな影響力を持つようになったオープンソースについて解説する。本講義では、オープンソースの登場から現在に至る発展の経緯や代表的なソフトウェアの特徴を解説する。講義の後半では実際にソフトウェアをPCにインストールしながら演習を行う。 |
|
|
||||
| 2 |
|
|
オープンソースにまつわる知財や法務に関する基礎知識について解説する。本講義では、オープンソースの代表的なライセンスや関連する法務分野の基礎知識を解説する。 | |
|
|
||||
| 3 |
|
コンピューターシステムやアーキテクチャに関する知識(基本レベル)
|
OSSが動作する基盤となるコンピュータシステム、ハードウェア、アーキテクチャについて、その種類と特徴、発展の動向を理解し、OSSを用いて開発するためのハードウェアやITシステム基盤に必要な一連の基礎知識と活用技術の概要を学ぶ。 | |
コンピューターシステムやアーキテクチャに関する知識(応用レベル)
|
||||
| 4 |
|
|
分散情報システムを構築する際によく用いられる要素技術とその基礎となる考え方を理解するとともに、実際のミドルウェアやアプリケーションの事例に即した形で、分散アプリケーション構築に必要なスキルを身につける。 | |
| システム | 1 |
|
|
フリーのOSであるLinuxを学習・使用するにあたって必要となる(UNIXとしての、Linuxとしての)知識・技術を学び、より高度・実務的な作業への基礎とする。他のカリキュラムを受講する上での前提とする。 |
|
|
||||
| 2 |
|
|
OSSの代表的な存在であり、またプラットフォームとしても数多くの実績をもつオペレーティングシステムであるLinuxについて、その機能と内部構造について学ぶ。また、併せて、それらの機能を実現するための基礎となっている理論についても学ぶ。 | |
|
|
||||
| 3 |
|
|
オープンソースオペレーティングシステムとしてもっとも利用が期待されるLinuxのシステム管理に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、Linuxをサーバとして運用するために必要なノウハウを実務レベルとして学ぶ。 | |
|
|
||||
| 4 |
|
Linuxのシステムプログラミングに関する知識(基本レベル)
|
Linuxをインストールしたマシン上で、多くの動作するプログラム例をコンパイル、実行して、システムプログラムを作成する。最終的には、DBM、割り込み処理、子プロセスを作成して親プロセスとプロセス間通信、ネットワークプログラミング等、システムプログラム全般の技術について学習する。 | |
Linuxのシステムプログラミングに関する知識(応用レベル)
|
||||
| 5 |
|
|
OSSが動作する基盤となるネットワークサーバについて、その種類と特徴、動向を理解し、ネットワークサーバを用いて開発するために必要な一連の基礎知識と管理技術概要を学ぶ。 | |
|
|
||||
| 6 |
|
|
High Availability ClusterとHigh Performance Computing Clusterの構築にかかわる技術の習得およびシステム構築の演習を通してクラスタ構築に関する基礎技術の習得を目指す。HPC Clusterの講義では、並列プログラミングに関する講義も行う。 | |
|
|
||||
| ネットワーク |
|
|
オープンソースネットワークの中心技術となるTCP/IPプロトコル及びネットワーキング技術を集中的に学ぶ。特にTCP/IPプロトコルスタック、ソケット通信の仕組み、TCPコネクション管理のメカニズムを理解し、TCP/IPを用いた通信プログラム開発技術を学ぶ。 | |
|
|
||||
| 2 |
|
|
ネットワーク管理に関して、実際の作業に必要な管理知識・手法の種類と特徴、内容を理解し、オープンソース基盤ネットワークを運用するために必要なノウハウを実務レベルとして学ぶ。 | |
|
|
||||
| プログラミング | 1 |
|
|
もっとも普及しているオープンソース言語Javaの仕組み、基本的なプログラミング文法、オブジェクト指向によるプログラム設計と作成方法を学ぶ。さらにWebアプリケーションの基本構成、データベース接続と利用の方法について学ぶ。 |
|
|
||||
| 2 |
|
|
オープンソースシステムのソースを解読する上で、CやC++の知識は必須であるといえる。本カリキュラムでは、まずCの基礎的な構造やポインタ、メモリ管理について理解を深める。次にオブジェクト指向に関する理解を深めるために、C++について学習する。最後に、オープンソースとして公開されているライブラリを利用して、GUIアプリケーションなどの開発技法について学習する。 | |
|
|
||||
| 3 |
|
Light Weight Languageに関する知識(基本レベル)
|
コードの作成や修正が容易とされる軽量プログラミング言語(Light Weight Language)を学習し、アプリケーション開発の手法を習得する。 本カリキュラムでは、まずLight Weight Languageに位置づけされるPerl、PHP、Python、Rubyといったプログラミング言語の特徴について解説し、動作環境の構築や基本的な構文について習得する。次に、前述した言語のうち、Rubyに焦点をあて、Rubyによるオブジェクト指向開発やフレームワークによるWebアプリケーション開発について学習する。最後に、オープンソースとして公開されているWebアプリケーションをカスタマイズし、機能を追加する方法について学習する。 |
|
Light Weight Languageに関する知識(応用レベル)
|
||||
| 開発体系 | 1 |
|
|
現在普及が期待されている開発フレームワークの実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、必要なノウハウを実務レベルとして学ぶ。 |
|
|
||||
| 2 |
|
|
バージョン管理システム、デバッガ、バグ追跡システム、システムプロファイラ、カーネルデバッガなどのソフトウェア開発ツールについて、その種類と特徴、動向の理解に必要な一連の基礎知識と活用技術の概要を学ぶ。 | |
|
|
||||
| 3 |
|
|
OSSの開発で用いられている統合開発環境について、その種類や特徴、使い方、活用方法等を理解することを通じて、OSSをソースコードレベルで活用したり、開発プロジェクトに参加したりするための基礎知識やノウハウを学ぶ。 | |
|
|
||||
| セキュリティ | 1 |
|
|
OSSアプリケーションのセキュリティ保持に必須の暗号化技術について、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解する。暗号化基盤として、実際にインターネット上で暗号化を担当する暗号化基盤の仕組みを理解する。 |
|
|
||||
| 2 |
|
|
OSS動作環境におけるセキュリティリスク、それに対応するセキュリティ要件とその機能、構成に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、Linuxサーバを例として、セキュリティ実装の手順を実務レベルとして学ぶ。 | |
|
|
||||
| 3 |
|
|
OSのセキュリティ機能として必要な機能と、オープンソースOSとしてもっとも利用が期待されるLinuxのセキュリティ管理に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を学ぶ。 | |
|
|
||||
| RDB | 1 |
|
|
OSSのデータストアとしてのデータベースの機能と役割に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、データベースを設計・活用するために必要なノウハウを実務レベルとして学ぶ。 |
|
|
||||
| 2 |
|
|
OSSのデータストアとしてのデータベースの運用管理機能とその方法に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を理解し、データベースを運用するために必要なノウハウを実務レベルとして学ぶ。 | |
|
|
||||
| 組み込みソフトウェア | 1 |
|
|
開発方法論、組み込みシステム設計・開発に必要な知識、方法論を概要として学ぶ。オープンソースとのかかわり、取り組み状況を理解する。 |
|
|
||||
| 2 |
|
|
GUIプログラミング(GTK+、QT、Qtopia)などのソフトウェアが動作する基盤となるコンピュータシステム、ハードウェア、アーキテクチャについて、その種類と特徴、動向を理解し、OSSを用いて開発するためのハードウェアや基盤に必要な一連の基礎知識と活用技術の概要について学ぶ。 | |
|
|
||||
| 3 |
|
|
組み込みアプリケーションの制御パターンやアーキテクチャを、実際の実装事例の研究を交えながら、留意点や特徴を学ぶ。 | |
|
|
||||
| 4 |
|
) |
組み込みシステムの性能最適化のためのソフトウェア、ハードウェア、構成、設計などの必要な機能と、その手順、方法に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を学ぶ。 | |
|
|