概要:
本科目では分散コンピューティングの基礎を理解するため、Hadoopによる分散システムについて学習する。ネットショップの購入履歴,Twitterのつぶやきなど,近年膨大なデータ(ビッグデータ)を解析することで様々な有益な情報を見つけ出すデータマイニングが行われている。ビッグデータを高速処理するためのコンピューティング環境の一つであるHadoopは,様々な分散処理を単純な処理の組み合わせで実現できるオープンソースである。本科目ではHadoopによる分散処理の基礎技術を習得し,株価チャートやアクセスログの解析等の現実的な問題への適用について学習する。
授業の進め方・方法:
授業内で実施する演習・実習(100%)で評価する。
注意点:
本授業は座学での講義とそれに関連する演習・実習を適時併用しながら進めていく。Hadoopでの処理の記述方法を理解するだけではなく,現実のビッグデータに適用してデータマイニングできる応用力を身に着けることが大事であるので,演習・実習を積極的に行い,様々なデータを処理してみること。本科目で使用するHadoopの実習環境は無償で準備できるので,自宅等で実習環境を用意できる者は予習復習に活用することが望ましい。
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
ビッグデータとは何か Hadoopのエコシステム 分散ファイルシステム
|
データモデル,データベース設計法に関する基本的な概念を理解している。 Hadoopの関連技術の概要が理解できる。 HDFS(Hadoop Distributed File System)について理解できる。
|
2週 |
MapReduceの基本概念 MapReduceの処理パターン 株価チャートの処理 Ⅰ |
各フェーズの役割を理解できる。 処理形態の面でのコンピュータシステムの分類である集中処理システムと分散処理システムについて,それぞれの特徴と代表的な例を説明できる。 処理パターンごとの処理記述のポイントを理解できる。 Pigの使用方法を理解できる。
|
3週 |
株価チャートの処理 Ⅱ |
Pigのプログラムを適切な処理パターンで記述できる。
|
4週 |
テキスト解析 |
非構造化データ処理の記述について理解できる。
|
5週 |
アクセスログの分析 Ⅰ |
ユーザ定義関数を記述できる。
|
6週 |
アクセスログの分析 Ⅱ |
正規表現によるパターンマッチングを使用できる。
|
7週 |
鉄道情報の分析 Ⅰ |
データの結合について理解できる。
|
8週 |
鉄道情報の分析 Ⅱ |
情報通信ネットワークを利用したアプリケーションの作成方法を理解している。
|
4thQ |
9週 |
応用課題 オープンデータについて グループテーマ検討 |
オープンデータについて理解できる。 グループでオープンデータ解析に関するテーマを検討し、企画を立てることができる。
|
10週 |
応用課題 テーマシステム開発 1 |
グループで企画したテーマについて解析方法を検討し、メンバーへの役割分担ができる。
|
11週 |
応用課題 テーマシステム開発 2 |
担当項目処理についてPigプログラムで記述できる。
|
12週 |
応用課題 中間発表 今後の開発について検討 |
テーマ設定、各自の役割、これまでの成果について明確に示し、今後の課題、最終的な成果について考察できる。 中間発表で示された課題についてグループで検討し、成果発表に向けた計画を立案、担当分けを実施できる。
|
13週 |
応用課題 テーマシステム開発 3 |
Pigプログラミングによる課題解決を行うことができる。
|
14週 |
応用課題 テーマシステム開発 4 |
メンバーの成果をマージしてシステム全体を完成させ、データ解析結果を考察し、結果をまとめることができる。
|
15週 |
応用課題 成果発表 |
テーマの背景や目標、各自の役割と成果、データ解析で明らかとなったことについて明確に示すことができる。
|
16週 |
予備日 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 4 | 後8 |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 4 | 後8 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | 後15 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | 後15 |
ソフトウェア | 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 3 | 後8,後9,後10,後12 |
アルゴリズムの概念を説明できる。 | 3 | 後6,後7,後8 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | 後6,後7,後8 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 後8,後9,後10,後12 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | 後8,後9,後10,後12 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 後3,後4,後11 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | 後4 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 後3,後4,後11 |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 3 | |
コンピュータシステム | 処理形態の面でのコンピュータシステムの分類である集中処理システムと分散処理システムについて、それぞれの特徴と代表的な例を説明できる。 | 4 | 後1,後2,後3,後4,後5 |
集中処理システムについて、それぞれの特徴と代表的な例を説明できる。 | 4 | 後5 |
分散処理システムについて、特徴と代表的な例を説明できる。 | 4 | 後5 |
情報通信ネットワーク | 情報通信ネットワークを利用したアプリケーションの作成方法を説明できる。 | 4 | 後14 |
その他の学習内容 | データモデル、データベース設計法に関する基本的な概念を説明できる。 | 4 | 後1 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。 | 4 | 後2,後3 |