配列やリスト、スタック,キュー,木などデータ構造の説明ができ、探索、ソートなどの主要なアルゴリズムの実装ができる.また、計算量の考え方を使って複数のアルゴリズムの間の比較ができる.
概要:
基本的なデータ構造の概念と操作を理解し,問題に対し適切なデータ構造を選択する重要性を学ぶ。
また,基本的なアルゴリズムを理解し,コンピュータプログラムとして実装と評価を行う。
授業の進め方・方法:
毎回、講義および演習を行う。講義資料はWebClassにアップロードし、自宅からも閲覧できるようにしておく。
[事前学習] テキストを確認し予習をしておく。
[事後学習] 授業内容を復習し、課題を行うことでアルゴリズムの詳細を理解する。
注意点:
学習内容には抽象度の高い概念が含まれる。これらの概念を定着させ,実現するために,演習内容に習熟するよう留意すること。また,アルゴリズムの内容とデータ構造を正しく理解するために,積極的にそれらを用いて習熟するよう留意すること。
自学自習として,各回の授業内容,達成項目及び教科書内容を確認しておくこと。学習内容に含まれる概念を理解するために,教科書等に掲載されている例題を基に十分復習すること。理解を確実にするため,各回の授業内容に関連する例題や練習問題を実行し解くこと。
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 後1,後2,後3,後4,後5,後6,後14 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | 後2,後3,後4,後5,後6,後14 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | 後2,後3,後4,後5,後6,後14 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 後2,後3,後4,後5,後6 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 3 | 後11 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | 後1,後14 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | 後2,後3,後4,後5,後6,後11 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 後1,後2,後3,後4,後6,後11,後12,後13 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | 後2,後3,後4,後5,後6 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後11 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後11 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | 後7,後8,後9,後10 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | 後7,後8,後9,後10 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | 後7,後8,後9,後10 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | 後7,後8,後9,後10 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | 後11 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | 後11 |
分野別の工学実験・実習能力 | 情報系分野(実験・実習能力) | 情報系分野(実験・実習能力) | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 3 | 後2,後3,後4,後5,後6 |
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。 | 3 | 後1,後2,後3,後4,後5,後6 |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 3 | 後2,後3,後4,後5,後6 |