概要:
本授業では、情報科学分野の基礎であるアルゴリズムについて学習する。コンピュータに何らかの問題を解かせる場合、計算の手順(アルゴリズム)を設計する必要がある。その際、問題に適したデータ構造(メモリ上のデータ表現形式)を採用することになる。アルゴリズムをプログラムとして表現し、コンピュータで実行して問題の解を得る。
本授業では、アルゴリズムに関する基本概念である計算量、再帰、整列アルゴリズムについて学ぶ。
理論だけではなく、プログラミング演習を通して実践的な力を付けることも目指す。
授業の進め方・方法:
講義形式と演習形式を混合して授業を進める。事前学習および講義で学習した内容をプログラミング演習で確認することで実践力を身に付ける。
注意点:
C言語を用いてプログラムを作成する。関数、配列、ポインタ等の理解が必要である。また、Excelでグラフを作成させる。
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前6 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前6 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 前6 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前6 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前6 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 前9,前12 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 前9,前12 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 前9,前12 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 前9,前12 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | 前6 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 4 | |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 4 | |