到達目標
学習目的:計算量など,アルゴリズムの複雑さに関係するものを中心に,基本的概念や用語を理解する。そして,代表的なアルゴリズムやデータ構造の仕組みを理解する。
到達目標
1代表的なソートおよび探索のアルゴリズムを説明できる
2代表的なデータ構造を説明できる
3ソート,探索,データ構造のプログラムを活用できる
ルーブリック
| 優 | 良 | 可 | 不可 |
評価項目1 | 実践的なデータ群を用いて代表的なソートおよび探索のアルゴリズムを説明できる | 代表的なソートおよび探索のアルゴリズムを説明できる | 代表的なソートおよび探索のアルゴリズムを知っている | 左記に達していない。 |
評価項目2 | 実践的なデータ群を用いて代表的なデータ構造を説明できる | 代表的なデータ構造を説明できる | 代表的なデータ構造を知っている | 左記に達していない。 |
評価項目3 | ソート,探索,データ構造を活用した実践的なプログラムが書ける | ソート,探索,データ構造のプログラムを活用できる | ソート,探索,データ構造のプログラムを知っている | 左記に達していない。 |
学科の到達目標項目との関係
教育方法等
概要:
一般・専門の別:専門
学習の分野:情報システム・プログラミング・ネットワーク
必修・必履修・履修選択・選択の別:必履修
基礎となる学問分野:総合系/情報学/計算基盤/ソフトウェア
学習・教育目標との関連:本科目は総合理工学科学習・教育目標「③基盤となる専門性の深化」に相当する科目である。
技術者教育プログラムとの関連:本科目が主体とする学習・教育目標は「(A)技術に関する基礎知識の深化,A-2:「電気・電子」,「情報・制御」に関する専門技術分野の知識を修得し,説明できること」である。
授業の概要:コンピュータを使って問題解決をする場合,使用するアルゴリズムとデータ構造が異なると問題解決の効率が違ってくる。本科目では,これらの選択能力や設計能力の基礎を修得するため,代表的なアルゴリズムとデータ構造を題材にそれらの仕組み等を学習する。
授業の進め方・方法:
授業の方法:板書を中心に授業を進めるが,できるだけ学生に質問し,学生の理解度を確かめながら授業を進める。また学生による発表も取り入れる。理解が深まるよう,演習などを課す。
成績評価方法:4回の定期試験の結果を同等に評価する。原則,再試験は行わないが,状況に応じて再試験を実施し,理解が確認できれば点数を変更することがある。ただし,変更した後の評価は60点を超えないものとする。
注意点:
履修のアドバイス:本科目はプログラミングと密接に関連しているため,本科目で学習した内容を積極的に活用したプログラムを書くことでより理解が深まる。
基礎科目:総合理工基礎(1年),プログラミング基礎(2)
関連科目:データベース(5年),プログラミング応用(4),情報数理(4)
受講上のアドバイス:授業開始時刻を過ぎての入室は遅刻とする。遅刻2回で欠課1回として取り扱う。1授業単位ごとに確認する。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
科目の位置づけ,学習内容,方法に関するガイダンス |
|
2週 |
ソートアルゴリズム1 |
|
3週 |
ソートアルゴリズム2 |
|
4週 |
サーチアルゴリズム1 |
|
5週 |
サーチアルゴリズム2 |
|
6週 |
前期中間のまとめ |
|
7週 |
(前期中間試験) |
|
8週 |
前期中間験の答案返却と試験解説 |
|
2ndQ |
9週 |
リスト |
|
10週 |
スタック |
|
11週 |
キュー |
|
12週 |
再帰1 |
|
13週 |
再帰2 |
|
14週 |
前期期末のまとめ |
|
15週 |
(前期末試験) |
|
16週 |
前期末試験の答案返却と試験解説 |
|
後期 |
3rdQ |
1週 |
ツリー構造1 |
|
2週 |
ツリー構造2 |
|
3週 |
ツリー構造3 |
|
4週 |
マップとハッシュ1 |
|
5週 |
マップとハッシュ2 |
|
6週 |
文字列検索 |
|
7週 |
後期中間のまとめ |
|
8週 |
(後期中間試験) |
|
4thQ |
9週 |
後期中間試験の答案返却と試験解説 |
|
10週 |
逆ポーランド記法 |
|
11週 |
グラフ構造1 |
|
12週 |
グラフ構造2 |
|
13週 |
グラフ構造3 |
|
14週 |
後期期末のまとめ |
|
15週 |
(後期末試験) |
|
16週 |
後期末試験の答案返却と試験解説 |
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | |
評価割合
| 試験 | 発表 | 相互評価 | 自己評価 | 課題 | 小テスト | 合計 |
総合評価割合 | 100 | 0 | 0 | 0 | 0 | 0 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
専門的能力 | 100 | 0 | 0 | 0 | 0 | 0 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |