事業期間:2012年度〜2016年度

Cloud クラウドコンピューティング分野

4つの教育プログラムから成るenPiT-Cloud

各連携大学で実施したカリキュラムについて紹介します。
大阪大学/神戸大学東京大学東京工業大学九州工業大学

大阪大学/神戸大学

教育プログラム名称をCloud Spiral(Cloud Specialist Program Initiative for Reality-based Advanced Learning)と名付け、教育コースを大阪大学で起ち上げ、神戸大学、参加大学の教員、連携企業と協働して実施しました。また、短期集中合宿には九州工業大学の受講生も参加しました。
コースは次の5科目で構成されます。

  • クラウド開発基礎(1学期、2単位)
  • クラウド基礎PBL(1学期、1単位)
  • クラウド開発応用(1学期、1単位)
  • クラウド発展PBL(2学期、2単位)
  • クラウド開発演習(通年、2単位)

実施した教育プログラムのスケジュールを下表に示します。

2016年度 Cloud Spiralスケジュール

2016年度 Cloud Spiralスケジュール

(1)基礎知識学習
受講生がクラウド技術を理解し、必要なスキルと知識について他者と議論し、実際のIaaS環境を用いて大規模な処理や効率の良い処理を提供するアプリケーション・情報システム開発の準備ができるようになることを目的として、次のような項目を学習します。クラウド概要とデスクトップ仮想化技術、クラウドソフトウェア開発プロセス、ファシリテーションスキル、要求分析、UML、Scrum、チケット駆動開発とプロジェクト管理、プレゼンテーションスキル、SQLとNoSQL、Webアプリケーション開発、ソフトウェアテスト、IaaS概要とCloudStack、クラウドアプリケーション開発支援環境。

(2)短期集中合宿
複数人でチームを組み、アプリケーション・情報システムをクラウド上で実装。また、分散PBLで使うモバイル用Webアプリケーション、Hadoop/MapReduceを用いたビッグデータ処理などについて学びます。

(3)分散PBL
基礎知識学習、短期集中合宿で得た知識をもとに、チームで次の3課題を行います。

  • クラウドを活用したビジネスの創出(2週間)
  • Webアプリケーション開発コンペ(4週間)
  • ビッグデータに基づくコンビニ経営戦略(2週間)

クラウド開発基礎、クラウド開発演習(1学期分)が基礎知識学習に、クラウド基礎PBLとクラウド開発応用が短期集中合宿に、クラウド発展PBLとクラウド開発演習(2学期分)が分散PBLに、それぞれ対応。授業は、主に大阪大学中之島センターで隔週に行います。

事業開始以来、各授業に対して受講生アンケートを実施し、毎年内容のさまざまな改善を行ってきました。当初の計画になかった主な改善内容としては、基礎知識学習での反転授業の導入、分散PBLでのビジネスの創出課題があげられます。これらについて受講生、事業委員からは非常に高い評価でした。

東京大学

クラウド教育コースは次の8科目および短期集中合宿で構成されます。

クラウドコンピューティング基礎論
クラウドコンピューティングに必要な基礎的な知識を学ぶ。データセンターネットワークに起因する問題をとりあげ、原因特定までのアプローチ、解決方法について実用・学術両面から解説、演習を通じてデータセンターにおける問題を体得します。夏学期2セメスター週1回、合計30時間の講義。
Webプログラミング言語
クラウドコンピューティングの基盤となるソフトウェアは、JavaやRubyといった比較的新しい言語で書かれていることが多い。これらの言語のデザインやそこに組み込まれている言語機構を学びます。また、それらの言語による並列分散システムを構築するためのフレームワークや、その背後にあるソフトウェア工学的な考え方を学びます。夏学期2セメスター週1回、合計30時間の講義で隔年で開講します。
クラウド基盤ソフトウェア
クラウドに代表される今日の情報システムの基盤技術のひとつとして仮想マシンの原理、実装技術を学ぶ。2種類の仮想マシン、すなわちハードウェア全体の仮想化、JavaやRubyのようなプログラミング言語の実行基盤としての仮想機械について取りあげます。夏学期2セメスター週1回、合計30時間の講義で隔年で開講します。
クラウド基盤構築
Linuxとオープンソースソフトウェア(OpenStack)を利用した、IaaS(Infrastructure as a Service)クラウド基盤構築技術を講義。前提となるサーバ/ネットワーク技術についての基礎的な解説と演習を実施したうえで、実際のクラウド環境の構築へと進みます。技術要素を根本から理解し、要求に応じた最適なクラウドのアーキテクチャを選択・構築する能力を獲得することを目標とします。夏学期2セメスター週1回、合計30時間の講義。
分散システム基礎とクラウドでの活用
クラウドによるPBLの前提となるクラウドAPIを扱う。本講義とクラウドアプリケーション開発演習は国立情報学研究所で実施されます。夏休み期間の集中講義、合計15時間の講義。
クラウドアプリケーション開発演習
Hadoopプラットフォーム上でMapReduceなどを用いて大規模データの分散処理を行うアプリケーション開発のグループ演習。「プログラミングコンテスト」形式で、グループ間で競い合います。企業から講演・審査員などで協力を受けます。夏休み期間中の集中講義、合計30時間。
クラウドを創るPBL(ソフトウェア・クラウド開発実践Ⅰ)
部品レベルからクラウド構築を行い、受講生がグループを作り、クラスタコンピュータの製作、基盤ソフトウェアの実装、クラウド管理ソフトウェアの実装から、相互結合用のスイッチ設定、セキュリティ設定までを学びます。夏学期2セメスター週1回、合計30時間の講義。
クラウド実践道場(ソフトウェア・クラウド開発実践Ⅱ)
少人数(7名まで)のグループでクラウドアプリケーションを開発。社会の中の問題点や課題を自ら発見し、それを解決するクラウドソフトウェア・サービスを自ら考案・提案し、実現するPBL(Problem/Project-Based Learning)型演習を通じて通常の講義や演習では得られない実践的な力を身に付けます。複数人のチームで、プロジェクト体制および目標の設定、実施計画、プロジェクトの実施を行います。秋学期2セメスター合計30時間の演習。
短期集中合宿
合宿は夏季および冬季の2回実施、このうち夏季は東京工業大学と共同で実施しました(東京工業大学の項を参照)。
冬季合宿は企業インターンなどで夏季合宿の参加が困難な学生や本学の講義に参加が困難な他大学の学生に配慮して実施しているものです。合宿ではクラウドサービスを受講生自身で部品レベルから構築することで、クラウドコンピューティングを支えるクラスタコンピューティング、基盤ソフトウェア技術、ならびに必要なセキュリティ知識を習得。本合宿の内容は夏学期に実施しているクラウドを創るPBLのパッケージ化を視野に入れて実施しました。2泊3日の合宿および事前講義、合計16時間の演習。

東京工業大学

下表に今年度のスケジュールを示します。

2016年度 Cloud Bauhausスケジュール

2016年度 Cloud Bauhausスケジュール

教育プログラム名を「Cloud Bauhaus」とし、学術的知識、工学的技術、産業人的視点の獲得をねらいとした、基礎科目群(5科目)、基盤ソフトウェア科目群(5科目)、ソフトウェア工学科目群(7科目)、ソフトウェア開発科目群(10科目)を実施。本事業でのコース中のクラウド科目や分散PBLは次の科目です。

  • システム開発プロジェクト基礎(第一、第二)(1Q、2Q、各2単位)
  • システム開発プロジェクト応用(第一、第二)(3Q、4Q、各2単位)
  • クラウドシステム基礎(2Q、夏季短期集中合宿、1単位)
  • クラウドアプリケーション開発演習(2Q、夏季短期集中合宿、2単位)
  • チーム開発集中演習(2Q、夏季短期集中合宿、2単位)
  • System Development International Project(4Q、集中開発演習、2単位)

(1)基礎知識学習
ソフトウェア開発に必要なソフトウェア工学技術を学習するとともに、クラウド技術の基礎、活用法を学習。具体的には次の項目を学習します。要求分析、設計、プログラミング言語、実装技術、テストデバッグ技法、検証技術、Webコンピューティング、分散処理技術、Hadoop、ビッグデータの分散処理技術。これらを含む科目は、東京工業大学および国立情報学研究所で開講します。
分散PBLを含めて、科目は次のような群に分類されています。

基礎科目群
プログラム理論、並行システム論、計算論理学、先端コンピュータアーキテクチャ、暗号理論
基盤ソフトウェア科目群
先端システムソフトウェア、大規模計算論、分散アルゴリズム、実践的並列コンピューティング、クラウドコンピューティングと並列処理
ソフトウェア工学科目群
ソフトウェア設計論、先端情報セキュリティ、先端ソフトウェア工学、関数型プログラミング、プログラミング言語設計論、ソフトウェアプロジェクトマネージメントと品質管理、ソフトウェア検証論
ソフトウェア開発科目群
ソフトウェア開発演習、システム検証基礎演習、他情報理工学インターンシップ など

(2)短期集中合宿
クラウド技術の実践法に焦点をあて、演習を通して実践的な大規模データの分散処理技術を習得。短期集中合宿には、三浦海岸で行ったものと、国立情報学研究所で行ったものとがあります。三浦海岸での合宿(以下、夏合宿)終了後に、国立情報学研究所で、システム実装するために必要な知識や技術を教え、実践させるポスト合宿を実施しています。ポスト合宿では、国立情報学研究所が構築、運用している教育用クラウドを演習用環境として活用し、実際の事例を中心とした題材を活用することで、受講生は、実践的な分散処理アプリケーション開発を体験しました。その具体的な内容は次の通りです。

クラウドアプリケーション開発演習
2016年9月12日〜16日、2単位(単位は東京工業大学と電気通信大学のみ)
Hadoop、MapReduceなどのクラウドコンピューティングでビッグデータを利用した開発。
国立情報学研究所で開催、東京工業大学、東京大学、電気通信大学、早稲田大学から受講。
クラウドシステム基礎
2016年9月20日〜21日、1単位
信頼性や一貫性などを考慮した分散システムの構築法チーム開発演習。
チーム開発集中演習
2016年9月7日〜9日、2単位

超上流工程に焦点をあて、インバウンドをテーマにした要求分析を実施、ユーザ企業に対し、デモを交えたシステム提案を行いました。使用した方法論は、実際に企業で使用されているExテーブル法およびPRePモデル法で、株式会社 日立製作所から実践者を講師として招聘し、手法の講義やチーム指導も担当教員と協力して行いました。さらに、企業講演(サイボウズ株式会社)も実施、アジャイル開発方法論および企業での適応事例、ならびにコンピュータサービス提供者としての心構えを学習。東京大学および参加大学からの受講生との混成チームを編成し、チームビルディングおよびコミュニケーションスキルを習得しました。ユーザ企業である株式会社 四季の自然舎から成果物およびプレゼンテーションについて評価を行っていただき、学生へのフィードバックを行いました。また、開発セッションでは、ペアプログラミングを拡大したリレーコーディングを実施し実装力向上を図りました。
なお、2月には、クラウド実装に焦点をあてた冬合宿を東京大学と合同で実施した。夏合宿の様子を下記に示します。

  • ユーザニーズを検討(東京工業大学)
  • ITサービスの提案プレゼンテーション(東京工業大学)

(3)分散PBL
基礎知識学習、短期集中合宿で得た知識を応用し、チームでAndroid/サーバアプリケーション・情報システムを分散開発。分散PBLに相当する科目は、「システム開発プロジェクト基礎(第一、第二)」、「システム開発プロジェクト・クラウド応用(第一、第二)」です。「システム開発プロジェクト基礎」は3Qより開始される「システム開発プロジェクト応用」で実装する情報システムの顧客開発・要求分析に主に着目した内容で、デザイン思考や要求獲得プロセスのノウハウ習得を目的とします。「システム開発プロジェクト応用」ではシステム構築段階のプロジェクト管理手法やシステム開発に必要なソフトウェア工学の基礎に関してプロジェクト開発を通して習得することを目的とします。両科目では、受講生はチームを組み、デザイン思考、顧客開発、要求分析、プロジェクトの計画、設計、実装、テスト、ドキュメント作成など、総合的な指導を受けつつ、系統的なソフトウェア開発の実践面への適用を習得。両科目を通じて、特にシステムの社会的価値について深く議論することで、ユーザ視点とシステムのあり方を習得しました。
分野横断講義として、ビジネスアプリケーション分野から講師を招き、実践的なアジャイル開発についても学習。実施中、株式会社チカク、寺田倉庫株式会社からの企業講演を行いました。2016年7月26日中間発表会、11月16日成果物発表会(デモを含む)を経て、12月15日〜16日の2日間、東京工業大学百年記念館で成果展覧会を開催、開発プロセスと開発システムについて展示とプレゼンテーションを実施、74名(うち19名が企業、5名が他大学教員)の来場者があり、有意義なフィードバックを得ました。企業の来場者からは実践的な内容であると評価をいただきました。学部生の見学も19名あり、本教育への学部生の関心の高まりを感じました。成果展覧会の模様はUstreamで配信し、来場できない人にも様子がわかるようにしました。のべ13名が視聴。下記に成果展覧会の様子を示します。

  • 来場者に開発プロセスを説明する学生(東京工業大学)
  • 来場者にデモを説明する学生(東京工業大学)

2017年1月6日、20日に開発プロセスを振り返って自己評価を行う個人発表会を開催。Facebookで発表結果の報告を行い、800を超えるアクセスがあり、企業の方から「現場での振り返りに遜色のない振り返り内容で、実践的な教育をしていることが伝わってきた」とのコメントを得ました。

(4)グローバル教育
2015年度に引き続き、2016年8月21日〜9月3日にフィリピンにて「グローバルシステム開発研修」を実施した。参加者を東京工業大学内で公募し、enPiT受講生の4名が選抜されました。研修前半ではグローバルコミュニケーションの学習を目的として、1日10時間の英語によるコミュニケーション学習を行いました。具体的にはディベート、プレゼンテーション、ロールプレイングなどを行いました。後半では現地の日系企業(NEC Telecom Software Philippines, Inc.)の協力を得て、現地エンジニア12名とチームを組みシステム開発研修を実施。開発テーマは「The innovative services for the safe and secure life of Cebu using IT service/system」で、デザイン思考とリーンキャンバスを用い、ユーザリサーチ、要求分析、仮説設定、プロトタイプ作成、仮説検証を経て、ビジネスモデルのプレゼンテーションを行いました。
また、2017年2月に「System Development International Project」(2月27日〜3月3日開催、2単位)として、留学生と日本人学生の英語による混成ミニPBLを実施。学生は、クラウドシステムの社会的価値に焦点をあて、ビジネスダイナミクスとソフトウェアライフサイクルについてPBLを活用しながら学びました。分散PBL参加の学生にも参加してもらい、彼らの成果物をユーザ要件と開発プロセスの観点から分析し、システムのサービス価値について討議、発表を行いました。
PBLにおいては、学生のコミュニケーション力やモチベーションをあげるために、Wikiを活用し状況を共有させたり、フィリピンにて現地の学生やエンジニアとのチーム開発演習を行いました。

九州工業大学

教育プログラムをCloud Q9(Qは九州、9は野球のチームワークの象徴であるナインを表す)と名付け、九州工業大学において教育コースを設けます。短期集中合宿は、大阪大学/神戸大学によるCloud Spiralに合流して実施します。
コースは次のように3段階7科目で構成(2017年度より、セキュリティ分野の同時受講を容易にするため、基礎知識学習4科目のうち3科目を選択可に変更)されます。

(1)基礎知識学習

クラウド開発型プロジェクト(前期、3単位)
システム開発プロセス、システムモデリング、Scrumとチケット駆動開発、Webアプリケーション技術など、クラウド上でのシステム開発に必要な知識とスキルを講義と演習で学びます。
OSと仮想化特論(前期、2単位)
仮想マシンの作成やカーネル再構築、システムコールの作成、カーネルモジュールの作成や仮想マシンの操作に至るまで、クラウドに係るOSと仮想化の原理を講義と演習で学びます。
プロジェクトマネジメント特論(前期集中、2単位)
プロジェクトマネジメントの手法について、要求分析やWBSから各種マネジメント技法、さらにはクリティカルチェーンプロジェクトマネジメント手法に至るまでを講義と演習で学びます。
情報処理機構特論(後期、2単位)
並列分散処理、分散アルゴリズム、タスク分散手法など、クラウドを効率的に利用するための知識を講義と演習で学びます。

なお、これら4科目によって、Cloud Spiral(大阪大学/神戸大学)の前期で行われている基礎知識学習とほぼ同様の内容をカバーし、夏季の短期集中合宿での合同実施を可能にしています。

(2)短期集中合宿

クラウド基礎PBL(前期[夏期集中、大阪大学開講]、1単位)
クラウド開発応用(前期[夏期集中、大阪大学開講]、1単位)

これらの2科目は、Cloud Spiralと合同で実施しており、内容、実施期間とも同一です。

(3)分散PBL

クラウド発展プロジェクト(後期、3単位)
基礎知識学習、短期集中合宿で得た知識をもとに、次の形式で分散PBLを実施します。一部の学生はCloud Spiralの分散PBLに合流し、発表会まで含めた完全な形で参加します。
それ以外の学生は、Cloud Q9独自のPBLとして、クラウドの特長を活かしたシステム(サービス)をチーム開発。Cloud Q9独自のPBLについても、産業界の協力を得て、発表会を実施します。