到達目標
1) 与えられたプログラムの読解,要求仕様を満たすプログラムの作成ができる.
2) 再帰的アルゴリズムについて,実装を通して理解できる.
3) 代表的な探索アルゴリズムについて,実装を通して理解できる.
4) ソートアルゴリズム,データ構造について,計算量,安定性等の面から性能を評価できる.
5) スタックとキューについて,実装を通して理解できる.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 与えられたプログラムの読解,要求仕様を満たすプログラムの作成ができる. | 与えられたプログラムの読解,要求仕様を満たすプログラムの基本的な作成ができる. | 与えられたプログラムの読解,要求仕様を満たすプログラムの作成ができない. |
評価項目2 | 再帰的アルゴリズムについて,実装を通して理解できる. | 再帰的アルゴリズムについて,実装を通して基本的な理解できる. | 再帰的アルゴリズムについて,実装を通して理解できない. |
評価項目3 | 探索アルゴリズムについて,実装を通して理解できる. | 探索アルゴリズムについて,実装を通して基本的な理解できる. | 探索アルゴリズムについて,実装を通して理解できない. |
評価項目4 | ソートアルゴリズムについて,実装を通して理解できる. | ソートアルゴリズムについて,実装を通して基本的な理解できる. | ソートアルゴリズムについて,実装を通して理解できない. |
評価項目5 | 計算量について,理解と計算ができる. | 計算量について,基本的な理解と基本的な計算ができる. | 計算量について,理解と計算ができない. |
評価項目6 | スタックとキューについて,実装を通して理解できる. | スタックとキューについて,実装を通して基本的な理解できる. | スタックとキューについて,実装を通して理解できない. |
学科の到達目標項目との関係
Ⅰ 人間性 1 Ⅰ 人間性
Ⅱ 実践性 2 Ⅱ 実践性
Ⅲ 国際性 3 Ⅲ 国際性
CP2 各系の工学的専門基盤知識,および実験・実習および演習・実技を通してその知識を社会実装に応用・実践できる力 5 CP2 各系の工学的専門基盤知識,および実験・実習および演習・実技を通してその知識を社会実装に応用・実践できる力
CP4 他者を理解・尊重し,協働できるコミュニケーション能力と人間力 7 CP4 他者を理解・尊重し,協働できるコミュニケーション能力と人間力
学習目標 Ⅱ 実践性
学校目標 D(工学基礎) 数学,自然科学,情報技術および工学の基礎知識と応用力を身につける
学科目標 D(工学基礎) 数学,自然科学,情報技術および工学の基礎知識と応用力を身につける
本科の点検項目 D-ⅲ 情報技術を利用できる
本科の点検項目 D-ⅳ 数学,自然科学,情報技術および工学の基礎知識を専門分野の工学的問題解決に応用できる
学校目標 E(継続的学習) 技術者としての自覚を持ち,自主的,継続的に学習できる能力を身につける
本科の点検項目 E-ⅱ 工学知識,技術の習得を通して,継続的に学習することができる
学校目標 F(専門の実践技術) ものづくりに関係する工学分野のうち,得意とする専門領域を持ち,その技術を実践できる能力を身につける
学科目標 F(専門の実践技術) ものづくりに関係する工学分野のうち,得意とする専門領域を持ち,その技術を実践できる能力を身につける
本科の点検項目 F-ⅰ ものづくりや環境に関係する工学分野のうち,専門とする分野の知識を持ち,基本的な問題を解くことができる
教育方法等
概要:
第2学年で開講されている「プログラミングⅠ」は,情報処理技術者としてソフトウェア開発を行うために必要なプログラミング技法を修得することが目的であり,第3学年の「プログラミングⅡ」もそれのより高度なものである。しかし,「ソフトウェアデザイン演習Ⅰ」では,データ構造とアルゴリズムに焦点を充てる.
授業の進め方・方法:
授業は各単元において,教科書と配布資料に基づき口頭説明した上,各自プログラムを実装する.適宜参考コードを示し,各自が書いたプログラムと比較し,理解を深める。関連文書はオンラインで閲覧可とする.不定期に提出が必要な課題を課すが,授業時間内に完成しない場合は自習時間を使って完成させること.
また,授業態度を測る指標のひとつとして,ノート(予習・授業・復習)を確認する.
基本的にプログラムは一人で組むが,相当考えても問題が解決しない場合は周囲の学生や教員と相談することが望ましい.自分で解く努力と人に聞く努力の両輪により能力は向上していく.
当たり前のことだが,人に聞き教わったことは理解してかつ他の問題にも適用できるようにする努力が必要である.
また,人に教えることも能力の向上につながる.
注意点:
この授業では,2年で学んできたプログラミングの基礎知識を要する.受講を始める前に,自身にその知識があるか確認し,なければ復習しておくこと.
プログラミング技術向上のためには,日頃の努力が必要である.したがって,不定期に出題される課題については,提出の要・不要を問わず,必ずすべて完成させるよう努力すること.
また,オンライン教材を活用することも望ましい.
原則,実習室で授業を行うものとするが,場合によっては遠隔でも対応可能とする.その場合の環境構築は各自行うこと.
提出が必要な課題において,不正コピーが見つかった場合は当該課題点を0にするなどのペナルティを与える.
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
計算量 |
計算量について,理解と計算ができる.
|
2週 |
再帰アルゴリズム,分割統治法 |
再帰アルゴリズムと分割統治法について,理解し説明できる.
|
3週 |
リスト構造(単方向リスト,双方向リスト,環状リスト) |
リスト構造について概念を説明できる.
|
4週 |
演習(リスト構造) |
リスト構造を実装できる.
|
5週 |
スタック,キュー |
スタックとキューについて概念を説明できる.
|
6週 |
演習(スタック,キュー) |
スタックとキューを実装できる.
|
7週 |
ソートアルゴリズム(選択,バブル,挿入) |
ソートアルゴリズムについて概念を説明できる.
|
8週 |
演習(ソートアルゴリズム(選択,バブル,挿入)) |
ソートアルゴリズムを実装できる.
|
4thQ |
9週 |
ソートアルゴリズム(クイック,マージ) |
ソートアルゴリズムについて概念を説明できる.
|
10週 |
演習(ソートアルゴリズム(クイック,マージ)) |
ソートアルゴリズムを実装できる.
|
11週 |
木構造,グラフ構造 |
木構造とグラフ構造について概念を説明できる.
|
12週 |
ヒープ構造,優先度付きキュー |
ヒープ構造と優先度付きキューについて概念を説明できる.
|
13週 |
演習(木構造,ヒープ) |
木構造とヒープ構造を実装できる.
|
14週 |
演習(プロジェクトワーク) |
本教科やそれまでに学習した事柄を用いて,解決できる題材をさがしどのように解くかを提案できる.
|
15週 |
演習(プロジェクトワーク プレゼンテーション) |
本教科やそれまでに学習した事柄を用いて,解決できる題材をさがしどのように解くかを提案できる.
|
16週 |
|
|
評価割合
| 課題 | プロジェクトワーク | 合計 |
総合評価割合 | 70 | 30 | 100 |
基礎的能力 | 20 | 10 | 30 |
専門的能力 | 50 | 10 | 60 |
分野横断的能力 | 0 | 10 | 10 |