アルゴリズムⅡ

科目基礎情報

学校 有明工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 アルゴリズムⅡ
科目番号 4I004 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 1
開設学科 創造工学科(情報システムコース) 対象学年 4
開設期 後期 週時間数 後期:1
教科書/教材 アルゴリズムとデータ構造;石畑清/岩波書店
担当教員 嘉藤 学

到達目標

1.代表的なデータ構造(スタック、キュー、リスト、木、ヒープ)の概念を説明でき、それらの一部をプログラムとして実現できる
2.探索アルゴリズムを説明でき、それらの一部をプログラムとして実現できる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安(可)未到達レベルの目安
評価項目1代表的なデータ構造(スタック、キュー、リスト、木、ヒープ)の概念を明確に説明でき、それらの一部を実用的なプログラムとして実現できる。代表的なデータ構造(スタック、キュー、リスト、木、ヒープ)の概念を説明でき、それらの一部をプログラムとして実現できる。代表的なデータ構造(スタック、キュー、リスト、木、ヒープ)の概念を説明できない。また、それらの一部をプログラムとして実現できない。
評価項目2探索アルゴリズムを明確に説明でき、それらの一部を実用的なプログラムとして実現できる。探索アルゴリズムを説明でき、それらの一部をプログラムとして実現できる。探索アルゴリズムを説明できない。また、それらの一部をプログラムとして実現できない。
評価項目3

学科の到達目標項目との関係

学習・教育到達度目標 B-1 説明 閉じる

教育方法等

概要:
 本授業では、情報科学分野の基礎であるアルゴリズムならびにデータ構造について学習する。コンピュータに何らかの問題を解かせる場合、計算の手順(アルゴリズム)を設計する必要がある。その際、問題に適したデータ構造(メモリ上のデータ表現形式)を採用することになる。アルゴリズムをプログラムとして表現し、コンピュータで実行して問題の解を得る。
 本授業では、基本的なデータ構造、探索のアルゴリズムについて学ぶ。
 理論だけではなく、プログラミング演習を通して実践的な力を付けることも目指す。
 なお、本科目はSDGsの目標「9.産業と技術革新の基盤をつくろう」に合致している。
授業の進め方・方法:
〇講義形式と演習形式を混合して授業を進める。
〇講義で学習した内容をプログラミング演習で確認することで実践力を身に付ける。
〇学修単位科目のため、事前・事後の学習として調査課題やプログラミング課題を課す。
注意点:
〇C言語を用いてプログラムを作成する。構造体、ポインタ等の理解が必要である。
〇試験80%、ポートフォリオ20%で評価する。ポートフォリオの20%は、各授業における「課題(調査課題、プログラミング課題)」の提出状況によって評価する。
〇課題の提出期限を厳守すること。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ・ガイダンス
・データ構造
・スタック
・データ構造とは何かを説明できること
・データ構造の一つであるスタックを説明できること
2週 ・スタック ・スタックのプログラムを記述できること
3週 ・スタック ・スタックのプログラムを記述できること
4週 ・リスト ・データ構造の一つであるリスト(線形リスト)を説明できること
5週 ・リスト ・リストのプログラムを記述できること
6週 ・リスト ・リストのプログラムを記述できること
7週 ・リスト ・リストのプログラムを記述できること
8週 ・後期中間試験
4thQ
9週 ・テスト返却
・キュー
・問題解答を通じて理解を深めること
・データ構造の一つであるキュー(待ち行列)を説明できること
・キューのプログラムを記述できること
10週 ・キュー ・キューのプログラムを記述できること
11週 ・キュー ・キューのプログラムを記述できること
12週 ・探索 ・探索とは何かを説明できること
・線形探索を説明できること
・二分探索を説明できること
・線形探索と二分探索の関数を記述できること
13週 ・探索 ・データ構造の一つである木を応用した二分探索木を説明できること
・二分探索木の探索関数を記述できること
14週 ・探索 ・ハッシュ法を説明できること
15週 ・学年末試験
16週 ・テスト返却 ・問題解答を通して理解を深めること

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野ソフトウェア与えられたアルゴリズムが問題を解決していく過程を説明できる。4後12,後13,後14
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4後12,後13,後14
整列、探索など、基本的なアルゴリズムについて説明できる。4後12,後13,後14
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4後12,後13,後14
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4後1
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4後12,後13,後14
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4後1,後2,後4,後9,後11,後13
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4後2,後3,後5,後6,後7,後10,後11
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4後12,後13
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4後12,後13
分野別の工学実験・実習能力情報系分野(実験・実習能力)情報系分野(実験・実習能力)与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。4後2,後5,後10
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。4後2,後5,後10
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。4

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合80000200100
専門的能力80000200100