概要:
アルゴリズムは情報工学や情報科学を学ぶ上で基礎となる重要な科目の一つである。
本講義では基本的なデータ構造、ならびに、ソーティングと探索に関する基本的なアルゴリズムの特性を学び、当該アルゴリズムを習得する。
授業の進め方・方法:
授業は教科書「あるごりずむ」およびプリントを主にし、スライドを併用した講義とする。
適宜実践演習やレポート課題を課し、学習内容の定着と理解度の向上を図る。
注意点:
【成績評価の基準・方法】
試験の成績80 %、平素の学習状況等20 %(課題)の割合で総合的に評価する。学年の評価は前学期末の評価とする。技術者が身につけるべき専門基礎として、上記の到達目標に対する達成度を試験等において評価する。
【事前・事後学習】
事前学習として教科書の該当部分をよく読みこむこと。また、事後学習として授業内で提示した課題に取り組み、指示があれば提出すること。
【履修上の注意】
この科目を履修するにあたり、2年生科目の「プログラミング基礎」の内容を十分に理解しておくこと。
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 4 | 前7,前9,前10,前11,前12,前13,前14,前15 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 4 | 前7,前9,前10,前12,前13,前14,前15 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 4 | 前8 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | 前3,前4,前6,前8 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 前3,前4,前6,前8 |
変数の概念を説明できる。 | 3 | 前3,前4,前6,前8 |
データ型の概念を説明できる。 | 3 | 前3,前4,前6,前8 |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | 前3,前4,前6,前8 |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | 前3,前4,前6,前8 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前3,前4,前6,前8 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 前3,前4,前6,前8 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前1 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前7,前9,前10 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 前7,前9,前10 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 前7,前9,前10 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前1,前7,前9,前10 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前1,前7,前9,前10 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 前2,前5,前11 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 前11 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 前2,前5,前11 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 前3,前4,前6 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | 前1,前8 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | 前1,前8 |
情報数学・情報理論 | コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 4 | |