ソフトウェアデザイン演習Ⅱ

科目基礎情報

学校 苫小牧工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 ソフトウェアデザイン演習Ⅱ
科目番号 0041 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 1
開設学科 創造工学科(情報科学・工学系共通科目) 対象学年 4
開設期 前期 週時間数 2
教科書/教材 教科書:竹政 昭利 他「かんたん UML入門 [改訂2版] (プログラミングの教科書)」技術評論社/参考書:J.L.アントナコス他 「C/C++アルゴリズム入門」 ピアソンエデュケーション, R.L.クルーズ「C++データ構造とプログラム設計」ピアソンエデュケーション, 浅野他「計算とアルゴリズム」 オーム社, 石畑「岩波講座ソフトウェア科学3 アルゴリズムとデータ構造」岩波書店, 疋田「Cで書くアルゴリズム」サイエンス社, 野崎「アルゴリズムと計算量」共立出版, 河西「Javaによるはじめてのアルゴリズム入門」技術評論社, 他多数.
担当教員 原田 恵雨

到達目標

1) 与えられたプログラムの読解,要求仕様を満たすプログラムの作成ができる.
2) リスト構造、木構造などの基本的なデータ構造の概念と操作を説明できる。
3) オブジェクト指向の考え方,様々な概念を説明できる。
4) UMLを理解し,ソフトウェアデザインを実際に進めることができる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1与えられたプログラムの読解,要求仕様を満たすプログラムの作成ができる。与えられたプログラムの読解,要求仕様を満たすプログラムの基本的な作成ができる。与えられたプログラムの読解,要求仕様を満たすプログラムの作成ができない。
評価項目2リスト構造、木構造などの基本的なデータ構造の概念と操作を説明できる。リスト構造、木構造などの基本的なデータ構造の概念と操作の基本的な事項が説明できる。リスト構造、木構造などの基本的なデータ構造の概念と操作を説明できない。
評価項目3オブジェクト指向の考え方,様々な概念を説明できる。オブジェクト指向の考え方,一つ以上の概念を説明できる。オブジェクト指向の考え方,概念を説明できない。
評価項目4UMLを理解し,ソフトウェアデザインを実際に進めることができる。UMLを理解し,ソフトウェアデザインを理解できる。UMLを理解せず,ソフトウェアデザインに活かすことができない。

学科の到達目標項目との関係

教育方法等

概要:
この授業では,2,3年で学んできたプログラミングの基礎知識を要する.
「ソフトウェアデザイン演習Ⅰ」では,データ構造とアルゴリズムに焦点を充てていたが,「ソフトウェアデザイン演習Ⅱ」では,それらに加え,オブジェクト指向プログラミングの観点も学ぶ。
具体的には,データ構造として連結リスト,木構造の実装および利用法を学ぶ。また,オブジェクト指向プログラミングとしてUMLとJavaを用いた演習を行う。
授業の進め方・方法:
授業は各単元において,教科書と配布資料に基づき口頭説明した上,各自プログラムを実装する.適宜参考コードを示し,各自が書いたプログラムと比較し,理解を深める。関連文書は実習室のPCで閲覧可とする.不定期に提出が必要な課題を課すが,授業時間内に完成しない場合は自習時間を使って完成させること.
授業内容としては,データ構造として連結リスト,木構造の実装および利用法を学ぶ。また,オブジェクト指向プログラミングとしてUMLとJavaを用いた演習を行う。
また,授業態度を測る指標のひとつとして,ノート(予習・授業・復習)を確認する.
注意点:
プログラミング技術向上のためには,日頃の努力が必要である.したがって,不定期に出題される課題については,提出の要・不要を問わず,必ずすべて完成させるよう努力すること.
原則,実習室で授業を行うものとする.
基本的にプログラムは一人で組むが,相当考えても問題が解決しない場合は周囲の学生や教員と相談することが望ましい.当たり前のことだが,そこで教わったことは理解してかつ他の問題にも適用できるようにする努力が必要である.
提出が必要な課題において,不正コピーが見つかった場合は当該課題点を0にするなどのペナルティを与える.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 Java演習 オブジェクト指向言語であるJavaを用いて開発できる。
2週 Java演習 オブジェクト指向言語であるJavaを用いて開発できる。
3週 Java演習 オブジェクト指向言語であるJavaを用いて開発できる。
4週 Java演習 オブジェクト指向言語であるJavaを用いて開発できる。
5週 Java演習 オブジェクト指向言語であるJavaを用いて開発できる。
6週 連結リスト リスト構造という基本的なデータ構造の概念と操作を説明できる。
7週 連結リスト リスト構造という基本的なデータ構造の概念と操作を説明できる。
8週 連結リスト リスト構造という基本的なデータ構造の概念と操作を説明できる。
2ndQ
9週 連結リスト リスト構造という基本的なデータ構造の概念と操作を説明できる。
10週 連結リスト リスト構造という基本的なデータ構造の概念と操作を説明できる。
11週 連結リスト リスト構造という基本的なデータ構造の概念と操作を説明できる。
12週 木構造 木構造という基本的なデータ構造の概念と操作を説明できる。
13週 木構造 木構造という基本的なデータ構造の概念と操作を説明できる。
14週 木構造 木構造という基本的なデータ構造の概念と操作を説明できる。
15週 木構造 木構造という基本的なデータ構造の概念と操作を説明できる。
16週 オブジェクト指向プログラミングとUMLを用いた開発 UMLとオブジェクト指向プログラミングを組み合わせて開発できる。

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
変数の概念を説明できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
データ型の概念を説明できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
制御構造の概念を理解し、条件分岐を記述できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
制御構造の概念を理解し、反復処理を記述できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
主要な言語処理プロセッサの種類と特徴を説明できる。2前6,前7,前8,前9
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。2前6,前7,前8,前9
プログラミング言語は計算モデルによって分類されることを説明できる。2前6,前7,前8,前9
主要な計算モデルを説明できる。2前6,前7,前8,前9
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3前11,前12,前13,前14,前15,前16
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。3前11,前12,前13,前14,前15,前16
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。3前11,前12,前13,前14,前15,前16
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。3前11,前12,前13,前14,前15,前16
ソフトウェアアルゴリズムの概念を説明できる。4前6,前7,前8,前9,前10
与えられたアルゴリズムが問題を解決していく過程を説明できる。4前6,前7,前8,前9,前10
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4前6,前7,前8,前9,前10
整列、探索など、基本的なアルゴリズムについて説明できる。4前6,前7,前8,前9,前10
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4前6,前7,前8,前9,前10
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4前6,前7,前8,前9,前10
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3前6,前7,前8,前9,前10
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3前6,前7,前8,前9,前10
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。3前6,前7,前8,前9,前10
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。3前6,前7,前8,前9,前10
ソフトウェアを中心としたシステム開発のプロセスを説明できる。1前11,前12,前13,前14,前15,前16
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3前1,前2,前3,前4,前5,前6
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3前1,前2,前3,前4,前5,前6
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。3前1,前2,前3,前4,前5,前6
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。3前1,前2,前3,前4,前5,前6
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。3前1,前2,前3,前4,前5,前6
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。3前1,前2,前3,前4,前5,前6
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。3前1,前2,前3,前4,前5,前6
標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。3前11,前12,前13,前14,前15,前16
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。3前11,前12,前13,前14,前15,前16
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。3前1,前2,前3,前4,前5,前6
分野横断的能力汎用的技能汎用的技能汎用的技能日本語と特定の外国語の文章を読み、その内容を把握できる。2前10,前11,前12,前13,前14,前15,前16
他者とコミュニケーションをとるために日本語や特定の外国語で正しい文章を記述できる。2前10,前11,前12,前13,前14,前15,前16

評価割合

課題の体裁・内容および取り組み方授業態度合計
総合評価割合7030100
基礎的能力351045
専門的能力351045
分野横断的能力01010