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

科目基礎情報

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

到達目標

1) 要求仕様を満たすプログラムの作成・実行・デバッグを遂行できる.
2) クラス,オブジェクト(インスタンス),スレッド(プロセス)間の関係について,実装を通して理解できる.
3) オブジェクト指向プログラミング(OOP)により,確率や状態遷移に関する問題を解決できる.
4) オブジェクト指向プログラミング(OOP)により,木の概念に基づく問題を解決できる.

ルーブリック

理想的な到達レベルの目安(優)標準的な到達レベルの目安(良)未到達レベルの目安(不可)
評価項目1要求仕様を満たすプログラムの作成・実行・デバッグを自力で正しく遂行できる.要求仕様を満たすプログラムの作成・実行・デバッグを標準的なレベルで遂行できる.要求仕様を満たすプログラムの作成・実行・デバッグを正しく遂行できない.
評価項目2クラス,オブジェクト,スレッド間の関係について,自力で正しく実装し理解できる.クラス,オブジェクト,スレッド間の関係について,標準的なレベルで実装し理解できる.クラス,オブジェクト,スレッド間の関係について,実装・理解できない.
評価項目3オブジェクト指向プログラミング(OOP)により,確率や状態遷移に関する問題を自力で正しく実装し解決できる.オブジェクト指向プログラミング(OOP)により,確率や状態遷移に関する問題を標準的なレベルで実装し理解できる.オブジェクト指向プログラミング(OOP)により,確率や状態遷移に関する問題を実装・理解できない.
評価項目4オブジェクト指向プログラミング(OOP)により,木の概念に基づく問題を自力で正しく解くことができる.オブジェクト指向プログラミング(OOP)により,木の概念に基づく問題を標準的なレベルで解くことができる.オブジェクト指向プログラミング(OOP)により,木の概念に基づく問題を正しく解くことができない.

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

 Ⅰ 人間性  1 Ⅰ 人間性
 Ⅱ 実践性  2 Ⅱ 実践性
 Ⅲ 国際性  3 Ⅲ 国際性
 CP2 各系の工学的専門基盤知識,および実験・実習および演習・実技を通してその知識を社会実装に応用・実践できる力  5 CP2 各系の工学的専門基盤知識,および実験・実習および演習・実技を通してその知識を社会実装に応用・実践できる力
 CP4 他者を理解・尊重し,協働できるコミュニケーション能力と人間力  7 CP4 他者を理解・尊重し,協働できるコミュニケーション能力と人間力

教育方法等

概要:
「ソフトウェアデザイン演習Ⅲ」では,「プログラミングⅠ・Ⅱ」および「ソフトウェアデザイン演習Ⅰ・Ⅱ」を通じて修得したプログラミングスキルを活用し,オブジェクト指向プログラミング(OOP)によるシンプルかつ具体的な問題解決を図る.
また,情報科学・工学分野で必要な情報理論の基本となる概念・理論を題材とした演習を取り入れ,これらを効率的に理解することも本科目の副次的効果として見込んでいる.
授業の進め方・方法:
授業はH棟(情報棟)内の実習室において演習形式で実施し,資料等はすべてBlackboardから参照可能とする.
授業項目に対する達成目標に関する問題を授業中に出題し,提出を要する課題については提出方法・期限をその都度指示する.
演習科目であるため評価時の重み付けは課題等100%であり,合格点は60点以上である.
再試験による評価の変更ができないので,すべての課題にしっかりと取り組み,要求された内容の成果物を期限内に提出しなければ合格は望めない.
注意点:
授業もしくは授業項目毎に学習項目の演習問題を提示する.
これらを活用して自学自習に取り組み,提出の指示があった場合にはそれに従うこと.
情報処理実習室(H301)および情報システム実習室(H302)は,予習・復習・レポートの作成等のために,昼休み・放課後に開放している.
利用規則を遵守したうえで,自主的・積極的に利用し授業内容を理解するよう心がけること.

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 オブジェクト指向プログラミング(OOP)の基礎と実践 クラス,オブジェクト,スレッドの概念を理解し,プログラミングに反映させることができる.
2週 オブジェクト指向プログラミング(OOP)の基礎と実践 クラス,オブジェクト,スレッドの概念を理解し,プログラミングに反映させることができる.
3週 オブジェクト指向プログラミング(OOP)の基礎と実践 クラス,オブジェクト,スレッドの概念を理解し,プログラミングに反映させることができる.
4週 OOPによる情報源の実装(1) 指定された無記憶情報源を実現し,情報源記号の生起確率について考察できる.
5週 OOPによる情報源の実装(1) 指定された無記憶情報源を実現し,情報源記号の生起確率について考察できる.
6週 OOPによる情報源の実装(2) 指定されたマルコフ情報源を実現し,情報源記号の生起確率について考察できる.
7週 OOPによる情報源の実装(2) 指定されたマルコフ情報源を実現し,情報源記号の生起確率について考察できる.
8週 問題演習(1) 修得したスキルを活用し,要求された問題を解決できる.
4thQ
9週 OOPによる符号木の実装 ノードをオブジェクトと捉えて符号木を構成し,符号化および復号を実現できる.
10週 OOPによる符号木の実装 ノードをオブジェクトと捉えて符号木を構成し,符号化および復号を実現できる.
11週 OOPによる符号木の実装 ノードをオブジェクトと捉えて符号木を構成し,符号化および復号を実現できる.
12週 問題演習(2) 修得したスキルを活用し,要求された問題を解決できる.
13週 OOPによる符号木の実装 ノードをオブジェクトと捉えて符号木を構成し,符号化および復号を実現できる.
14週 OOPによる符号木の実装 ノードをオブジェクトと捉えて符号木を構成し,符号化および復号を実現できる.
15週 OOPによる符号木の実装 ノードをオブジェクトと捉えて符号木を構成し,符号化および復号を実現できる.
16週 問題演習(3) 修得したスキルを活用し,要求された問題を解決できる.

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

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

評価割合

課題合計
総合評価割合100100
基礎的能力00
専門的能力100100
分野横断的能力00