Algorithms and Data Structures

授業概要  ソートとコレクションを中心にアルゴリズムとデータ構造に関する基本を学習する。
Java言語によるプログラミング技術の基本事項を習得する。
特にアルゴリズムとデータ構造の理解を中心に、講義および演習を行う。
授業の到達目標 ・オブジェクト指向言語の概念を理解するとともに、Javaを用いて課題を解決するスキルを身につける。
・アプリケーションの開発に必要な概念を理解するとともに、Java言語を用いて実用的なWebアプリケーションの開発が行えるようになる。
事前・事後学習の内容 予習としてMyWasedaに掲載するレジュメの事前読了を求めることがあります。各回の予習には90分~120分かかると想定されます。
授業計画
1: 本講義の目的と進め方について説明する。最終的に作成するアプリケーションの実例を説明する。
2: 基本概念を理解する。Javaのインストールからコマンドライン実行の方法を学ぶ。
3: 基本的なアルゴリズムを学ぶ。
4: 基本的なデータ構造を学ぶ。
5: 探索アルゴリズムを学ぶ。
6: スタックとキューを学ぶ。
7: 再帰的アルゴリズムを学ぶ。
8: ソートを理解する。
9: 集合を学ぶ。
10: 文字列探索を学ぶ
11: 線形リストを学ぶ
12: 木構造を学ぶ
13: Webアプリケーション作成に必要な概念を理解する
14: RESTアーキテクチャとJSON オブジェクトを学ぶ
15: Webアプリケーション作成(コーディング・テスト、デバッグ、仕上げ)
教科書 「明解 Javaによるアルゴリズムとデータ構造」 柴田 望洋 (著)ソフトバンククリエイティブ (2007/11/7)
参考文献 「明解Java 入門編」 柴田 望洋 (著)ソフトバンククリエイティブ(2007/8/8)
「Javaによるはじめてのアルゴリズム入門」(河西朝雄著、技術評論社、2001年)
成績評価方法
割合 評価基準
レポート: 80% 与えられた課題に対する、プログラム、プログラムの説明、考察をレポートに書いてください。レポートの内容で評価することになります。
平常点評価: 20% 授業および課題に対する取り組みを総合して評価します。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

9.Set9.Set

Set構造は、要素を順番付けしないで管理するデータ構造です。「HashSet」「TreeSet」の2種類があります。 Listのような順番付けや、Mapのようなキー管理もないため、要素の取得にはIteratorや拡張for構文で取得します。このようなことからHashSetは要素の取得順は保証されませんが、TreeSetは自動ソートされて管理されるのでソートされた順番で要素が取得されます。また、HashSetは要素にnullを使用する事が可能ですが、TreeSetはnullを使用する事ができません。Set構造は、要素の重複は不可です。(同じキーがセット(add)された場合は上書きされます。) セット(HashSet) HashSet も配列を扱いますが、要素の重複が許されない、順序の保障が無い点が ArrayList や LinkedList と異なります。要素を参照する際には Iterator を用います。 §HashSetTest.java import java.util.*; class HashSetTest { public static void […]

14.REST and JSON14.REST and JSON

REST RESTは「REpresentational State Transfer」の略で、大まかに言えば、アドレス(URL)とHTTPのメソッド(GETなど)を組み合わせて、サーバー上のデータを操作する仕組みです。 RESTは、Roy Fieldingという方が、2000年に発表した博士論文で提唱されたアーキテクチャスタイルです。Roy FieldingさんはHTTP仕様の策定者の一人であったことから、HTTPはRESTの基準をよく満たしています。 RESTの例として、WordPress JSON REST API (WP API, http://wp-api.org/) あります。それを利用して、Javaなどから最新の記事の取得、記事の投稿、写真の添付などが可能です。 JSON JSON(ジェイソン、JavaScript Object Notation)は、JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語である。 JSONの紹介 […]

4.Data Structure4.Data Structure

データ構造とは データ構造(データこうぞう、英: data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 配列 配列(はいれつ)は同じ型の変数を複数取り扱うために考案された仕組みです。配列は変数名にカッコ付きの整数を添えることで順番を決め,要素を区別します。配列によってまとめられた,一つひとつの変数を要素(ようそ)と呼びます。要素を区別するために添えた数字を添字(そえじ)と呼びます。 配列は大変シンプルで,コレクションクラスに比較すると必要とするメモリ量が少なく,アクセスが高速なことがメリットです。データを単純に格納して,順番に参照する程度の用途であれば,コレクションクラスに比較して配列のほうが有利です。 最も基本的な配列の使用例を次に示します。配列の要素数を含めて宣言し,配列の添字を明記して要素に値を代入し,添字を指定して要素の値を呼び出します。 String names[] = {“Tim Bray”,        // 0番目の要素 “Brian Kernighan”, // 1番目の要素 […]