データ構造にはバリエーションがあることを理解し,同一の問題に対し,選択したデータ構造によってアルゴリズムが変化しうることを理解できる.リスト構造、スタック、キューなどの基本的なデータ構造と,木構造,グラフ構造の概念と操作を説明できる.
与えられたアルゴリズムが問題を解決していく過程を説明できる.同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解できる.整列,探索など基本的なアルゴリズム及びハッシュ法,再帰法,動的計画法などのアルゴリズムについて説明できる.時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解できる.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス
|
本科目の概要,授業方針,評価方法等について紹介する.
|
2週 |
配列または連結リストによるスタック(棚)構造 |
スタック構造とその実装方法について理解し,その挿入・削除操作アルゴリズムを実装できる.
|
3週 |
配列または連結リストによるキュー(待ち行列)とリング(環状キュー)構造 |
キューとリング構造と実装方法について理解し,その挿入・削除操作アルゴリズムを実装できる.
|
4週 |
バブルソートアルゴリズム, クイックソートアルゴリズム |
2つのソートアルゴリズムについて理解でき,プログラムを組める.
|
5週 |
マージソートアルゴリズム, ソートアルゴリズムの性能分析 |
マージソートアルゴリズムについて理解でき,プログラムを組める.また,3つのソートアルゴリズムを実装し,それぞれの実行時間を計測し,性能分析について理解する.
|
6週 |
アルゴリズム計算量の評価方法(1) 概念,時間計算量,領域計算量,オーダー記法 |
計算量の評価基準と記法を理解し,時間計算量と領域計算量の評価を理解できる(英文教材を利用する).
|
7週 |
アルゴリズム計算量の評価方法(2) オーダーの計算,アルゴリズム計算量の計算 |
オーダー記法の求め方及びそれを利用したアルゴリズム計算量の評価を説明できる(英文教材を利用する).
|
8週 |
中間評価(小テストと演習課題の点数を成績に算入,課題の解答について説明する) |
毎回の授業において小テストや演習課題を与え,学習状況を確認し完成度により評価する
|
2ndQ |
9週 |
線形探索(リニアサーチ), バイナリサーチ |
線形探索(リニアサーチ),バイナリサーチアルゴリズムと実装方法を理解できる.時間計算量を解析できる.
|
10週 |
自己組織化探索(1) 概念,三つのアルゴリズム |
自己組織化探索アルゴリズムと実装方法を理解できる(英文教材を利用する).
|
11週 |
自己組織化探索(2) 三つのアルゴリズム,性能分析 |
自己組織化探索アルゴリズムと実装方法を理解できる.時間計算量を解析できる(英文教材を利用する).
|
12週 |
ハッシュ法(1) 概念,ハッシュ関数の設計 |
ハッシュ法の概念を理解し,ハッシュ関数の設計方法を説明できる.
|
13週 |
ハッシュ法(2) 内部ハッシング |
ハッシュ法における衝突を解消するハッシュ法の仕組み,内部ハッシングアルゴリズムの設計と実装法を理解でき,プログラムを組める.
|
14週 |
ハッシュ法(3) 外部ハッシングアルゴリズム |
ハッシュ法における衝突を解消する外部ハッシングアルゴリズムの設計と実装法を理解でき,プログラムを組める.
|
15週 |
定期評価:基本的なテータ構造,ソートと探索アルゴリズム,計算量など |
毎回の授業において小テストや演習課題を与え,学習状況を確認し完成度により評価する
|
16週 |
定期試験答案返却と解説(小テストと演習課題の点数を成績に算入,課題の解答について説明する) |
|
後期 |
3rdQ |
1週 |
木構造(ツリー構造)(1) 概念とデータ構造 |
木構造の概念とデータ構造について理解できる.
|
2週 |
木構造(ツリー構造)(2) 深さ優先探索アルゴリズム |
木構造の深さ優先探索アルゴリズムの行きがけ順(前順,pre-order), 通りがけ順(中順,in-order),帰りがけ順 (後順,post-order)について理解できる.
|
3週 |
2分木と多分木 |
2分木構造及び2分木・多分木の相互変換について理解できる.
|
4週 |
2分探索木(1) 2分探索木の構造 |
2分探索木の概念と構造を理解できる.
|
5週 |
2分探索木(2) 挿入・探索・削除アルゴリズム |
2分探索木の構成と挿入・削除,探索操作の実装法について説明できる.
|
6週 |
再帰法(1) 概念,直接再帰法 |
直接再帰法の仕組みとその応用について理解できる。
|
7週 |
再帰法(2) 間接再帰法 |
間接再帰法の仕組みとその応用について理解できる。
|
8週 |
中間評価(小テストと演習課題の点数を成績算入,課題の解答について説明する) |
毎回の授業において小テストや演習課題を与え,学習状況を確認し完成度により評価する
|
4thQ |
9週 |
グラフ構造(1) 概念,グラフ構造とネットワーク構造 |
グラフの概念,隣接行列,接続行列,隣接リストを用いたグラフの表現法を応用できる.
|
10週 |
グラフの深さ優先探索(DFS)アルゴリズム |
DFSアルゴリズムを理解でき,プログラムを組める.
|
11週 |
グラフの幅優先探索(BFS)アルゴリズム |
BFSアルゴリズムを理解でき,プログラムを組める.
|
12週 |
動的計画法と最短経路問題のDijkstra法(1) 概念,動的計画法アルゴリズム |
動的計画法の考え方と仕組み,動的計画法を扱うと解きやすい問題の条件について理解できる.
|
13週 |
動的計画法と最短経路問題のDijkstra法(2) Dijkstraアルゴリズムとその実装 |
動的計画法を用いて最短経路問題を解くプログラムを組める.Dijkstra法を理解し,実装できる.
|
14週 |
貪欲法と最大スパニング木問題,Kruskalアルゴリズムおよびその実装 |
貪欲法の考え方と仕組み,貪欲法を扱うと解きやすい問題の条件について理解できる.貪欲法を用いて最大スパニング木問題を解くプログラムを組める.Kruskal法を理解し,実装できる.
|
15週 |
定期試験:グラフ、グラフ探索アルゴリズム |
毎回の授業において小テストや演習課題を与え,学習状況を確認し完成度により評価する
|
16週 |
定期試験答案返却と解説(小テストと演習課題の点数を成績に算入,課題の解答について説明する) |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | 前2,前3 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 前3,前10,後6 |
変数の概念を説明できる。 | 4 | 前2,前3 |
データ型の概念を説明できる。 | 4 | 前2,前3,前4,前10,前12 |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | 前2,前3,前4 |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | 前2,前4 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前2,前3 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前3,前4 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 前16,後6 |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | 前2,前3 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | 前2,前3 |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | 前4,前10 |
主要な計算モデルを説明できる。 | 4 | 前4 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | 前5,前12 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | 前5,前12 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | 前4,前5 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | 前4,前5 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前3,前8,前12,後6,後11,後12,後13,後14 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前3,前10,前12,後6,後7,後11,後12,後13,後14 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 前8,後6,後7,後11,後12,後13,後14 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 前4,前5,前8,前9,前12,前13,前14,前15,後11,後12,後13,後14 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前4,前5,前6,前7,前8,前9,前10,前14,前15,後7,後11,後12,後13,後14 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前5,前6,前7,前12,前13,後7,後11,後12,後13,後14 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 後2,後3,後4,後5,後10,後14 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 前2,後1,後2,後3,後4,後5,後14,後15 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 前2,前10,後1,後2,後3,後4,後5,後9,後10,後14,後15 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 前2,前10,前11,後1,後2,後3,後4,後5,後9,後10,後14 |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | 前14,後10,後11,後12,後13,後14 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | 後9,後10,後11,後12,後13 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | 後9,後10,後11,後12,後13 |
分野横断的能力 | 汎用的技能 | 汎用的技能 | 汎用的技能 | 日本語と特定の外国語の文章を読み、その内容を把握できる。 | 2 | |
態度・志向性(人間力) | 態度・志向性 | 態度・志向性 | チームで協調・共同することの意義・効果を認識している。 | 3 | |
チームで協調・共同するために自身の感情をコントロールし、他者の意見を尊重するためのコミュニケーションをとることができる。 | 3 | |
当事者意識をもってチームでの作業・研究を進めることができる。 | 3 | |
チームのメンバーとしての役割を把握した行動ができる。 | 3 | |
リーダーがとるべき行動や役割をあげることができる。 | 3 | |
適切な方向性に沿った協調行動を促すことができる。 | 3 | |
リーダーシップを発揮する(させる)ためには情報収集やチーム内での相談が必要であることを知っている | 3 | |
法令やルールを遵守した行動をとれる。 | 3 | |
他者のおかれている状況に配慮した行動がとれる。 | 3 | |
技術が社会や自然に及ぼす影響や効果を認識し、技術者が社会に負っている責任を挙げることができる。 | 3 | |
自身の将来のありたい姿(キャリアデザイン)を明確化できる。 | 3 | |
その時々で自らの現状を認識し、将来のありたい姿に向かっていくために現状で必要な学習や活動を考えることができる。 | 3 | |
キャリアの実現に向かって卒業後も継続的に学習する必要性を認識している。 | 3 | |
これからのキャリアの中で、様々な困難があることを認識し、困難に直面したときの対処のありかた(一人で悩まない、優先すべきことを多面的に判断できるなど)を認識している。 | 3 | |
高専で学んだ専門分野・一般科目の知識が、企業や大学等でどのように活用・応用されるかを説明できる。 | 3 | |
企業等における技術者・研究者等の実務を認識している。 | 3 | |
企業人としての責任ある仕事を進めるための基本的な行動を上げることができる。 | 3 | |
企業における福利厚生面や社員の価値観など多様な要素から自己の進路としての企業を判断することの重要性を認識している。 | 2 | |
企業には社会的責任があることを認識している。 | 3 | |