概要:
プログラミング基礎,プログラミングⅠを通じてC言語による基本的なプログラミングについて学んだ。本授業では,これらの授業で得た知見を発展させ,特定の言語に依存しないソフトウェアシステム開発の方法論について学ぶ。まず,標準的かつ実践的なプログラミング書法を理解し,その書法に従ってプログラムを記述することを目指す。
さらに,オブジェクト指向に基づいたデータ構造やアルゴリズムの設計を行うことを目指す。最後に,ソフトウェアシステムのモデリングを行うためにUMLについて学ぶ。
授業の進め方・方法:
授業は講義と演習によって行う。
講義では,講義ノートを配布し,スライドを用いて説明する。講義はホームルームで行う。
講義で学習した内容に関連する問題について演習を行う。演習は情報処理センターで行う。
注意点:
初めから,すべてのことを教えてもらうつもりでは,問題を解決する能力の向上および定着は望めない。
他の学生と議論・相談することは構わないが,各自が主体的に取り組むことが必要である。
試験の成績70 %,平素の学習状況等(課題,授業に取り組む姿勢など)を30 %の割合で総合的に評価する。課題の提出については,締め切りを必ず守ること。
評価は中間と期末の各期間の評価の平均とする。
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
ガイダンス・ソフトウェア工学とは |
授業の進め方,評価法などについて理解する。ソフトウェア工学の概要について理解する。
|
2週 |
プログラミング書法(1) |
標準的かつ実践的なプログラミング書法を理解する。
|
3週 |
プログラミング書法(2) |
標準的かつ実践的なプログラミング書法を理解する。
|
4週 |
プログラミング書法(3) |
標準的かつ実践的なプログラミング書法に従い,プログラムを記述する。
|
5週 |
プログラム開発方法論の基礎 |
ウォータフォール型,プロトタイピング手法,アジャイル型開発方法について理解する。
|
6週 |
オブジェクト指向技術の概要(1) |
オブジェクト指向の基本的な概念(オブジェクト,クラス,情報隠蔽,継承,ポリモーフィズムなど)について理解する。
|
7週 |
オブジェクト指向技術の概要(2) |
オブジェクト指向の基本的な概念(オブジェクト,クラス,情報隠蔽,継承,ポリモーフィズムなど)について理解する。
|
8週 |
中間試験 |
|
4thQ |
9週 |
オブジェクト指向技術の概要(3) |
オブジェクト指向の基本的な概念(オブジェクト,クラス,情報隠蔽,継承,ポリモーフィズムなど)について理解する。
|
10週 |
オブジェクト指向技術の概要(4) |
オブジェクト指向の基本的な概念(オブジェクト,クラス,情報隠蔽,継承,ポリモーフィズムなど)について理解する。
|
11週 |
オブジェクト指向技術の概要(5) |
オブジェクト指向に基づいたデータ構造やアルゴリズムを設計する。
|
12週 |
UML(1) |
UMLの概要について理解する。
|
13週 |
UML(2) |
ソフトウェアシステムの設計,実装,配置を行う場合の,UMLの利用法について理解する。
|
14週 |
UML(3) |
ソフトウェアシステムの設計,実装,配置を行う場合の,UMLの利用法について理解する。
|
15週 |
UML(4) |
UMLを用いて,ソフトウェアシステムをモデリングする。
|
16週 |
期末試験 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | |
コンピュータシステム | ネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。 | 4 | |
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。 | 4 | |
集中処理システムについて、それぞれの特徴と代表的な例を説明できる。 | 4 | |
分散処理システムについて、特徴と代表的な例を説明できる。 | 4 | |
システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを説明できる。 | 3 | |
ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。 | 3 | |
プロジェクト管理の必要性について説明できる。 | 3 | |
WBSやPERT図など、プロジェクト管理手法の少なくとも一つについて説明できる。 | 3 | |
ER図やDFD、待ち行列モデルなど、ビジネスフロー分析手法の少なくとも一つについて説明できる。 | 3 | |