ソフトウエア科学概論

科目基礎情報

学校 佐世保工業高等専門学校 開講年度 平成28年度 (2016年度)
授業科目 ソフトウエア科学概論
科目番号 0027 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 複合工学専攻 対象学年 専1
開設期 後期 週時間数 2
教科書/教材 配布資料
担当教員 手島 裕詞

到達目標

1.コンピュータを活用し、プログラミングや演習データの評価を行い、報告書を作成できる(A2)
2.ソフトウェアの開発プロセスをモデルごとに分析し、説明できる。(A3)
3.主要な計算モデルを説明できる。(A3)
4.コンパイラの仕組みや役割について理解し、コンパイラ開発に必要な技術を説明できる。(A3)
5.プログラムの計算量やメモリ効率を評価し、整列や統計処理をプログラミングすることができる。(A3)
6.オブジェクト指向の基礎を理解し、複素数やベクトルなどを扱う基本的なクラスを定義することができる。(A3)

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1 (到達目標1)コンピュータを活用した情報収集やプログラミング、および演習データの評価を行い、わかりやすい報告書を作成できる。コンピュータを活用した情報収集やプログラミング、および演習データの評価を行い報告書を作成できる。コンピュータを活用した情報収集やプログラミングができない。また、コンピュータを用いて報告書を作成できない。
評価項目2 (到達目標2、3)ソフトウェアの開発プロセスに関するモデル・技術(ウォータフォール、プロトタイピング、スパイラル、アジャイル)について、それぞれの特徴を分析し、説明できる。手続型、関数型、論理型、オブジェクト指向型の計算モデルについてそれぞれ説明できる。ソフトウェアの開発プロセスに関するモデル・技術(ウォータフォール、プロトタイピング、スパイラル、アジャイル等)について、いくつかの特徴を理解し、ある程度説明できる。手続型、関数型、論理型、オブジェクト指向型の計算モデルについてそれぞれ説明できる。ソフトウェアの開発プロセスに関するモデル・技術(ウォータフォール、プロトタイピング、スパイラル、アジャイル等)について、説明できない。手続型、関数型、論理型、オブジェクト指向型の計算モデルについてそれぞれ説明できない。
評価項目3 (到達目標4、5)コンパイラの仕組みや役割について理解し、コンパイラ開発に必要な技術を説明できる。プログラムの計算量やメモリ効率を評価でき、整列や統計処理のプログラムを作成できる。コンパイラの仕組みや役割について理解し、コンパイラ開発に必要な技術をある程度説明できる。プログラムの計算量やメモリ効率を考えながら、整列や統計処理のプログラムをある程度作成できる。コンパイラの仕組みや役割について説明できない。プログラムの計算量やメモリ効率を考えながら、整列や統計処理のプログラムを作成できない。
評価項目4 (到達目標6)オブジェクト指向の基礎を理解し、複素数やベクトル等を扱う基本的なクラスを適切に定義し、要求された処理を実現することができる。オブジェクト指向の基礎を理解し、複素数やベクトル等を扱う基本的なクラスを定義し、要求された処理のほとんどを実現することができる。複素数やベクトル等を扱う基本的なクラスをほとんど定義できない。

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

教育方法等

概要:
ソフトウェアを開発するにあたって重要な計算モデル、システム開発のプロセス、コンパイラについて学習し、また、プログラムの計算量についてC言語を用いた実習を通じて理解を深める。さらに、複数のクラスを定義し、利用することでオブジェクト指向の基本を理解する。
授業の進め方・方法:
予備知識 : コーディングから実行ファイル生成までの流れと、これまで学習した情報通信技術の復習が必要である。特に、C言語の復習は重要である。
講義室 : ICT
授業形式 : 講義・演習 (前半の授業の一部でC言語プログラミングを行い、後半のオブジェクト指向への連結を円滑にする。)
学生が用意するもの : 特になし
注意点:
評価方法 : 中間評価(筆記試験70%、課題30%)と期末評価(筆記試験70%、課題30%)の平均点で評価し、60点以上を合格とする。ただし、課題は60%以上の点数をとることが合格の条件である。
自己学習の指針 : 予習、復習時間は2時間以上が望ましい。また、試験の前までに授業内容の重点を整理しておくこと。
オフィスアワー : 水曜日、金曜日の16:00~17:00
※到達目標の( )内の記号はJABEE学習・教育到達目標

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ソフトウェア開発プロセス システム開発のプロセスを理解できる。
2週 計算モデル(1) 手続型、関数型の計算モデルを理解できる。
3週 計算モデル(2) 論理型、オブジェクト指向型計算モデルを理解できる。
4週 プログラム解析(1) ソースプログラムの処理効率を評価できる。
5週 プログラム解析(2) 複数のプログラムの実行効率を計算量から比較できる。
6週 コンパイラ(1) 形式言語とオートマトンについて説明できる。
7週 コンパイラ(2) コンパイラの役割と仕組みを説明できる。
8週 中間試験
4thQ
9週 C++言語、変数、入出力 開発ツールを用いてC++でプログラミングできる。
10週 関数 参照渡しと値渡しの違いを説明できる。また、C言語とC++言語での参照渡しの記述の違いを理解し、関数を定義できる。
11週 構造体(1) 構造体と配列の違いを理解し、プログラミングできる。
12週 構造体(2) 構造体を用いて名簿処理や整列処理を実現できる。
13週 オブジェクト指向言語の概要 オブジェクト指向の概要を理解し、簡単なクラスを定義できる。
14週 クラスの定義(1) クラスを定義し、要求された処理を実現できる。
15週 クラスの定義(2) データ隠ぺいを考慮してクラスを定義することができる。
16週 定期試験

評価割合

試験課題合計
総合評価割合7030100
基礎的能力000
専門的能力7030100
分野横断的能力000