NBU日本文理大学

シラバス情報

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

科目名 アルゴリズムA(Computer Algorithms and Data Structures A)
担当教員名 赤星 哲也、吉森 聖貴
配当学年 2 開講期 前期
必修・選択区分 選択 単位数 2
履修上の注意または履修条件 この科目で学習する内容はコンピュータサイエンスの基礎となる大切な内容が数多く含まれています。理解を確実なものとするために、プログラムソースは自ら入力し、授業以外の時間の予習復習も含めて、できるだけ多くのプログラミング演習を行ってください。
受講心得 学科で指定したポータブルHDDを毎時間、必ず持参すること。このポータブルHDD内に仮想マシンとしてLinuxOS(Ubuntu)を導入し、プログラミング演習を行います。
教科書 「基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法~流れ図と擬似言語 第2版」
  著者:大滝みや子 出版社:リックテレコム ISBN:978-4897978406 出版年:2009年11月
「みんなのPython 改訂版」
  著者:柴田淳 出版社:ソフトバンククリエイティブ ISBN:978-4797353952 出版年:2009年4月
参考文献及び指定図書 (書籍)
「IT Text アルゴリズム論」 情報処理学会・編 オーム社 ISBN4-274-13278-1
「アルゴリズムとデータ構造(岩波講座 ソフトウェア科学第3巻)」 石畑清・著 岩波書店
「最新図解でわかるアルゴリズム入門」 瀬戸村勝利・著 日本実業出版社
「アルゴリズムの絵本」 アンク・著 翔泳社

(サイト)
「Webラーニングプラザ」 {http://weblearningplaza.jst.go.jp/}
「Python チュートリアル(和文) Release2.7」 {http://www.python.jp/doc/release/tutorial/}

(月刊誌)
「日経ソフトウェア」 
「日経Linux」
  ※NBU大学図書館・情報検索サービス「日経BP社記事検索サービス」を用いて閲覧可
                {http://bizboard.nikkeibp.co.jp/daigaku/}
関連科目 (先修科目)
プログラミング基礎
(併修科目)
アルゴリズム演習A
(後修科目)
アルゴリズムB、アルゴリズム演習B
(先修・後修に関係なく関連性の高い科目)
知的システムA・同演習A、知的システムB・同演習B、メディア処理2A・同演習2A、メディア処理2B・同演習2B、情報システム1、情報システム2
オフィスアワー
授業の目的 この科目の目的は、コンピュータサイエンスの理解に欠かせない「データ構造とアルゴリズム」に関する基礎的な知識をプログラミング演習を通して確実に理解することにあります。 
授業の概要 アルゴリズムは特定のプログラミング言語に依存しない概念ですが、この科目では習得が容易で、擬似言語(基本情報技術者試験)風にプログラムソースを記述できるスクリプト言語「Python」を用いて、アルゴリズムの動きを実際にコンピュータで動かしながら確認していきます。具体的には、(1)データ構造(リスト、スタック、キュー、配列、木など)、(2)「探索」に関するアルゴリズム(逐次探索、2分探索法、文字列探索など)を取り上げます。
授業計画 学習内容 学習課題(予習・復習)
○第1回 データ構造とアルゴリズム
データ構造、アルゴリズムとは何かについて説明します。また、この科目の目的、到達目標、学習内容、学習方法(受講心得)について説明します。

○第2回 LinuxOS(Ubuntu)の導入
プログラミング演習に必要となるLinuxOS(Ubuntu)を各自で用意したポータブルHDDに導入します。

○第3回 Python言語の基本
この授業で使用するプログラミング言語「Python」について、基本的な文法を紹介します。

○第4回 配列
代表的なデータ構造のうち、「配列」について、プログラミング演習を行いながら学習します。

○第5回 リスト
代表的なデータ構造のうち、「リスト」について、プログラミング演習を行いながら学習します。

○第6回 スタック
代表的なデータ構造のうち、「スタック」について、プログラミング演習を行いながら学習します。

○第7回 キュー
代表的なデータ構造のうち、「キュー」について、プログラミング演習を行いながら学習します。

○第8回 クラス定義(オブジェクト指向プログラミング入門) (1)
「スタック」と「キュー」を題材に、クラス定義(オブジェクト指向プログラミング)による実装方法を、プログラミング演習を行いながら学習します。

○第9回 クラス定義(オブジェクト指向プログラミング入門) (2)
前回に引き続き、「スタック」と「キュー」を題材に、クラス定義(オブジェクト指向プログラミング)による実装方法を、プログラミング演習を行いながら学習します。

○第10回 逐次探索(1)
代表的な探索アルゴリズムのうち、「逐次探索」について、プログラミング演習を行いながら学習します。

○第11回 逐次探索(2)
前回扱った「逐次探索」の計算量について、プログラミング演習を行いながら学習します。
また、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第12回 二分探索(1)
代表的な探索アルゴリズムのうち、「二分探索」について、プログラミング演習を行いながら学習します。

○第13回 二分探索(2)
前回扱った「二分探索」の計算量について、プログラミング演習を行いながら学習します。
また、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第14回 文字列探索(ブルートフォース法) (1)
代表的な探索アルゴリズムのうち、「文字列探索(ブルートフォース法)」について、プログラミング演習を行いながら学習します。

○第15回 文字列探索(ブルートフォース法) (2)
前回扱った「文字列探索(ブルートフォース法)」の計算量について、プログラミング演習を行いながら学習します。また、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第16回 期末試験
授業で扱った全ての内容をもとに期末試験を行います。

○第1回
配付資料
演習時間 45分

○第2回
配付資料
演習時間 45分

○第3回
配付資料
演習時間 45分

○第4回
配付資料
演習時間 45分

○第5回
配付資料
演習時間 45分

○第6回
配付資料
演習時間 45分

○第7回
配付資料
演習時間 45分

○第8回
配付資料
演習時間 45分

○第9回
配付資料
演習時間 45分

○第10回
配付資料
演習時間 45分

○第11回
配付資料
演習時間 45分

○第12回
配付資料
演習時間 45分

○第13回
配付資料
演習時間 45分

○第14回
配付資料
演習時間 45分

○第15回
配付資料
演習時間 45分
授業の運営方法 プログラミング演習を併用して授業を進めます。
備考
学生が達成すべき到達目標 学生が達成すべき到達目標
この科目は皆さんが次の目標を達成できることをめざしています。授業時はもちろん、授業時間外の予習復習を通して、これらの目標が達成できるように計画的に学習を進めてください。

①「データ構造」と「探索アルゴリズム」に関する基本知識を理解する。
②Python言語で書かれたプログラムソースを「読む」ことができる。
③Python言語を通して、アルゴリズムの動きを確認できる。
③アルゴリズムの図的表現(擬似言語)を「読む」ことができる。 

評価方法 評価の割合 評価の実施方法と注意点
試験 50 授業で扱った専門知識が理解できているか、試験を行います。
小テスト
レポート 45
成果発表
作品
その他 5 授業に欠席したり遅刻・早退せず意欲的に取り組んだ場合、評価の対象とします。 

合計 100