JavaでのLINE Bot/Clovaのハンズオン資料作成と大学授業への導入

# IoTLT Advent Calendar 2018

この記事は [IoTLT Advent Calendar 2018(mitz)](https://qiita.com/advent-calendar/2018/iotlt_mitz) の 23日目の記事です。

順調に1日遅れてます...ごめんなさい。

## はじめに

自分が学生の頃、大学のプログラミングの授業はもっぱら文法やアルゴリズムを学ぶもので、その応用は自分で、もしくは一部のゼミで研究で使う...という形が一般的だったように思います。

現在はいろいろな大学で、実践的なアプリケーションやシステムの作成にチャレンジする内容が授業の一環で展開されています。（例えば、ユーザーを設定して、試用・運用する所まで行ったり）

![今年の学生達の作品例：大学売店と連携したお弁当注文LINE Bot。学生・教職員が本当に弁当を注文・購入できる。](https://qiita-image-store.s3.amazonaws.com/0/8064/3a9d51f5-378a-d169-61cc-c696062db3de.jpeg)<br>*図1 今年の学生達の作品例：大学売店と連携したお弁当注文LINE Bot。学生・教職員が本当に弁当を注文・購入できる。*

もちろん、学生の学年やポテンシャルによってどこまでやれるかは変わるのですが、特にIoTの分野は手軽に利用できるモノ（機材）とそのフレームワークがすでに整備されているし、モノの選び方や活用方法次第で、情報系でなくても学生がアイディアを発揮しやすい土壌があると思います。

こうしたことから、ここ数年、様々な形で「IoTツールを試作してみる」という機会を、学生の授業や課外活動に取り入れようとチャレンジしています（たまにIoTLTで発表をしています）。

この記事では、今年挑戦をした、LINE Bot / LINE Clova を使った授業と、その下準備として用意したLINE Bot/Clovaのハンズオン資料の作成について記述します。

## 下準備（LINE Bot/Clovaのハンズオン資料の作成）

モノ（機材）やフレームワークが整備されているからといって、学生が知識ゼロの段階からいきなり使いこなせる訳ではありません。そこで、まずは LINE Bot と LINE Clova の基本的な動作までを体験できる、ハンズオン資料を作りました。

- [gishi-yama/linebot-java-handson](https://github.com/gishi-yama/linebot-java-handson)
- [gishi-yama/clova-java-handson](https://github.com/gishi-yama/clova-java-handson)

私が担当している言語がJavaなので、Javaベースにしています。また、自分が主催している [Javaユーザグループ北海道（Java Do）](https://javado.connpass.com/) の一般向けの勉強会でも利用できるように作成しています。

もしお手元で使える機会がございましたらどうぞ。

## 授業の概要

授業のゴールは、LINE Bot / LINE Clovaとセンサーを連携させたIoTツールの試作として定めています。

今回は、情報系だけでなく、学科共通で、自分でテーマを決めて挑戦する枠組みの授業の中の１テーマとして用意しました。

テーマを選んだ受講者は学部2年生9名（うち半数が情報系以外）、想定する授業時間は18時間で、

- LINE BOTのハンズオン（基本編まで）3h
- LINE Clovaのハンズオン 3h
- ツールの考案 3h
- 試作 9h

とざっくり授業シナリオを分けました。

情報系の学生はJavaを必修しているので理解度はそこに期待、情報系以外の学生はC言語までは必修しているので、どのメソッド（≒関数のようなもの）が何をしているか、というところを重視して理解してもらえるようにしました。（なのでハンズオン資料もできるだけ平易なコードにしているつもりです）

なおセンサー側の開発まで手を出すにはどうしても時間が足りないので、大学側で用意できるセンサーや取得できるデータの一覧を学生に渡し、利用希望があったものをWio-Nodeで用意することにしました。

Wio-Nodeでセンサー情報のWeb-APIを作ってもらえるので、これにLINE BotもしくはClovaスキル内からHTTPでアクセスして、自分や誰かに役立つレスポンスを返してくれるツールを作るイメージです。

![二酸化炭素センサーとダストセンサーをつないだWio-Node。便利。](https://qiita-image-store.s3.amazonaws.com/0/8064/c9298a93-f8cc-aa54-4c94-6b6211d8d19b.jpeg)<br>*図2 二酸化炭素センサーとダストセンサーをつないだWio-Node。便利。*


## 実際の授業風景

LINE Botは自分たちのアカウントを使い、またClovaは実機を人数分用意して、実際に作成をしてもらっています。（この記事を執筆している段階で、試作6hの段階まで完了したところです）

![Clovaスキルの開発に夢中になる学生達。アシスタント役の上級生にとっても面白い模様。](https://qiita-image-store.s3.amazonaws.com/0/8064/25a51ce0-79b4-9df0-ef96-dd093eae77b8.jpeg)<br>*図3 Clovaスキルの開発に夢中になる学生達。アシスタント役の上級生にとっても面白い模様。*

LINE BotはさすがにSNSを使いこなす世代なので、中身の作り方には驚きや面白さがあるものの、その存在が不思議ということはなかったようです。

一方で、今の大学生ぐらいならスマートスピーカーって当たり前のモノかなと思っていたのですが、Clovaを触ったことがある学生は少なかったようで、Clovaでどんなことができるのか色々試しながらわいわい開発しています。

作例は

- 植物の気持ちを代弁するツール
- 部屋の掃除するタイミングを教えてくれるツール
- 盲目者を支援するツール
- etc

など、実用的な所や複雑な所までどこまで踏み込めているかは少しハテナマークもつきますが......自分が普段何気なく使っているサービスの裏側はどのように作られているのかを知って・体験的に学んでもらうという部分の達成がこの段階では大事かなと思っています。


## おわりに

LINE Bot / LINE Clova を使った授業と、その前準備として用意したLINE Bot/LINE Clovaのハンズオン資料の作成について述べました。

上の弁当注文Botのように、学生が実際にこんなのを作ったよ、という作例まで出したかったのですが、まだ開発時間中ということでそこまで至らず、申し訳ありません。

実は、実際の彼らの開発成果は、年明けに札幌で開催する<br>[【1/20@札幌】子ども・学生・社会人×札幌版IoTLT！](https://iotlt.connpass.com/event/112827/) <br>にて、**彼ら自身がLTで発表する予定**です。

北海道にお住まいで、IoTやChatBot/スマートスピーカーにご興味がある方がいらっしゃいましたら、ぜひお越しください（ついでにLTもお願いします）！