NBU日本文理大学

シラバス情報

注)公開用シラバス情報となります。在学生の方は、「UNIVERSAL PASSPORT」で詳細をご確認下さい。

科目名 アルゴリズム演習B(Exercises in Computer Algorithms and Data Structures B)
担当教員名 吉森 聖貴、赤星 哲也
配当学年 2 開講期 後期
必修・選択区分 選択 単位数 1
履修上の注意または履修条件 この科目で学習する内容はプログラミングの基礎となる大切な内容が数多く含まれています。理解を確実なものとするために、プログラムソースは自ら入力し、授業以外の時間の予習復習も含めて、数多くのプログラミング演習を行ってください。
受講心得 この科目は皆さんが次の目標を達成できることをめざしています。授業時はもちろん、予習復習(課外学習)を通して、これらの目標が達成できるように計画的に学習を進めてください。
①「データ整列アルゴリズム」と「文字列照合アルゴリズム」の基本知識に関する理解を深める。
②データ構造とアルゴリズムを、C言語を用いてプログラミングすることができる。
③アルゴリズムの図的表現(フローチャート、擬似言語)を「書く」ことができる。
教科書 「IT Text アルゴリズム論」
  情報処理学会・編 オーム社 ISBN4-274-13278-1

「やさしいC」
  高橋麻奈・著 ソフトバンク ISBN 978-4-7973-4366-3
参考文献及び指定図書 (書籍)
新版C言語によるアルゴリズムとデータ構造 柴田望洋・著 ソフトバンク
アルゴリズムとデータ構造(岩波講座 ソフトウェア科学第3巻) 石畑清・著 岩波書店
最新図解でわかるアルゴリズム入門 瀬戸村勝利・著 日本実業出版社
アルゴリズムの絵本 (株)アンク・著 翔泳社

(雑誌)
日経ソフトウェア(月刊誌) 日経BP社
関連科目 (先修科目)
プログラミング1
(併修科目)
アルゴリズムB/アルゴリズム演習
(後修科目)
知的システムA・同演習A
(先修・後修に関係なく関連性の高い科目)
知的システムB・同演習B、メディア処理2A・同演習2A、メディア処理2B・同演習2B、情報システム1、情報システム2
オフィスアワー
授業の目的  この科目の目的は、「アルゴルズムB」で学習した「データ構造とアルゴリズム」に関する基礎的な知識をより確実なものとするために、実際に皆さんがプログラムとして作成してみることにあります。データ構造やアルゴリズムは特定のプログラミング言語に依存しない概念ですが、この科目では「プログラミング1」で学習し、基本情報技術者試験にも出題される「C言語」を用います。具体的には、「アルゴリズムB」で紹介した、(1)「データの整列(ソート)」に関するアルゴリズム(バブルソート、セレクションソート、インサーションソート、シェルソート、ヒープソート、クイックソート、マージソートなど)、(2)文字列照合アルゴリズム(力まかせ法、クヌース・モリス・プラッツ法、ボイヤー・ムーア法など)の内容をC言語で記述してみます。
授業の概要
授業計画 学習内容 学習課題(予習・復習)
○第1回 ガイダンス
この科目の目的、到達目標、学習内容、学習方法(受講心得)について説明します。

○第2回 C言語の復習
「プログラミング1」で学習したC言語について、本講義で必要となる知識を中心に復習します。

○第3回 バブルソート
代表的なデータ整列アルゴリズムのうち「バブルソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第4回 セレクションソート
代表的なデータ整列アルゴリズムのうち「セレクションソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第5回 インサーションソート
代表的なデータ整列アルゴリズムのうち「インサーションソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第6回 演習課題(1)
第2回~第5回の内容をもとに演習課題に取り組み、レポートとして提出します。

○第7回 シェルソート
代表的なデータ整列アルゴリズムのうち「シェルソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第8回 ヒープソート
代表的なデータ整列アルゴリズムのうち「ヒープソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第9回 クイックソート(1)
代表的なデータ整列アルゴリズムのうち「クイックソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第10回 クイックソート(2)
前回に引き続き、代表的なデータ整列アルゴリズムのうち「クイックソート」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第11回 演習課題(2)
第7回~第10回の内容をもとに演習課題に取り組み、レポートとして提出します。

○第12回文字列照合アルゴリズム(1)
代表的な文字列照合アルゴリズムのうち「力まかせ法(ブルート・フォースアルゴリズム)」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○13回文字列照合アルゴリズム(2)
代表的な文字列照合アルゴリズムのうち「クヌース・モリス・プラッツ法(KMP法)」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第14回文字列照合アルゴリズム(3)
代表的な文字列照合アルゴリズムのうち「ボイヤー・ムーア法(BM法)」を実現するプログラムをC言語を用いて作成してみます。また、計算量について考察します。

○第15回 演習課題(3)
第12回~第14回の内容をもとに演習課題に取り組み、レポートとして提出します。

○第16回 期末試験
授業で扱った全ての内容をもとに期末試験を行います。
第1回
配布資料
演習課題
課題の時間:30分

第2回
配布資料
演習課題
課題の時間:60分

第3回
配布資料
演習課題
課題の時間:60分

第4回
配布資料
演習課題
課題の時間:60分

第5回
配布資料
演習課題
課題の時間:60分

第6回
配布資料
演習課題
課題の時間:90分

第7回
配布資料
演習課題
課題の時間:60分

第8回
配布資料
演習課題
課題の時間:90分

第9回
配布資料
演習課題
課題の時間:60分

第10回
配布資料
演習課題
課題の時間:60分

第11回
配布資料
演習課題
課題の時間:90分

第12回
配布資料
演習課題
課題の時間:60分

第13回
配布資料
演習課題
課題の時間:60分

第14回
配布資料
演習課題
課題の時間:60分

第15回
配布資料
演習課題
課題の時間:90分
授業の運営方法 プログラミング演習を中心に授業を進めます。
備考
学生が達成すべき到達目標
評価方法 評価の割合 評価の実施方法と注意点
試験 試験範囲内の内容について理解度を確認します.計算問題については解答だけでなく,計算過程についても重視します.  
小テスト
レポート
成果発表
作品
その他 授業に欠席・遅刻・早退せず,意欲的に取り組んだ場合評価の対象とします.
合計