1. アルゴリズムと計算量の概念を理解し,効率のよいアルゴリズムのためのデータ構造を用いることができる.
2. 基本的なソートアルゴリズムについて理解し,プログラムを作成・実行して確認することができる.
3. スタック,キュー,リストなどの基本的なデータ構造について理解し,プログラムを作成・実行して確認することができる.
4. 線形探索,二分探索,ハッシュなどの基本的な探索について,プログラムを作成・実行して確認することができる.
準学士課程の教育目標 (A)① 数学・物理・化学などの自然科学、情報技術に関する基礎を理解できる。
準学士課程の教育目標 (A)② 自主的・継続的な学習を通じて、基礎科目に関する問題を解くことができる。
準学士課程の教育目標 (B)① 専門分野における工学の基礎を理解できる。
準学士課程の教育目標 (B)② 自主的・継続的な学習を通じて、専門工学の基礎科目に関する問題を解くことができる。
準学士課程の教育目標 (C)① 実験や実習を通じて、問題解決の実践的な経験を積む。
準学士課程の教育目標 (C)② 機器類(装置・計測器・コンピュータなど)を用いて、データを収集し、処理できる。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス |
アルゴリズムとデータ構造を学習する目的を理解できる. オンラインジャッジシステムを利用できる.
|
2週 |
計算量の評価と比較,O表記法
|
計算量を理解し,評価・比較できる. O表記法を理解できる.
|
3週 |
挿入ソート |
挿入ソートのアルゴリズムについて理解し,課題プログラムを作成できる.
|
4週 |
バブルソート |
バブルソートのアルゴリズムについて理解し,課題プログラムを作成できる.
|
5週 |
選択ソート |
選択ソートのアルゴリズムについて理解し,課題プログラムを作成できる.
|
6週 |
安定なソート |
常に安定な出力を行うソートについて理解し,課題プログラムを作成できる.
|
7週 |
構造体と関数 |
学習に必要な構造体とそれを扱う関数について,課題プログラムを作成できる.
|
8週 |
演習問題 |
演習問題の解答となる,課題プログラムを作成できる.
|
2ndQ |
9週 |
スタック |
スタックについて理解し,課題プログラムを作成できる.
|
10週 |
キュー |
キューについて理解し,課題プログラムを作成できる.
|
11週 |
連結リスト |
連結リストについて理解し,課題プログラムを作成できる.
|
12週 |
線形探索 |
線形探索について理解し,課題プログラムを作成できる.
|
13週 |
二分探索 |
二分探索について理解し,課題プログラムを作成できる.
|
14週 |
ハッシュ |
ハッシュについて理解し,課題プログラムを作成できる.
|
15週 |
定期試験 |
|
16週 |
答案返却 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 3 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 3 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | |
情報数学・情報理論 | 離散数学に関する知識をアルゴリズムの設計、解析に利用することができる。 | 3 | |
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 3 | |