2017年12月〜2018年3月上旬まで授業を支援させていただいた東京学芸大附属国際中等学校インフォマティクス授業(5年生=高校2年生)のレポートです。

この授業では、プログラミングを知識として身につけるだけではなく、自分や身近な人に役立つアプリを開発することを通して、問題解決力とチームで仕事をすすめる力を身につけることを目標としました。

ブログ記事としては長文になってしまったので、以下の3記事に分けてみました。

・前編:本記事。授業の内容について
中編:各生徒チームの内容と成果物について
後編:授業を進めるために活用したテクノロジーについて

学習の目標

身の回りの課題を発見し、解決するアプリを作る

生徒は2学期に算数ゲーム(enchant.js)を開発する活動を通して、Javascriptのプログラミングを学習しました。そこで身につけたJavascriptを使って、自分たちの「身の回りの課題」を解決するためのアプリ開発を行うのが今回の授業です。

自分や身近な人を想定して、困っていることを発見しそれを解決するプロセスで、アプリ開発を行っていく流れになります。

ただし、Javascriptを学習したとはいえアプリをゼロから作りきるのは大変です(生徒たちはその大変さを正確には実感していませんが…)。そこで、ベネッセが高校生の企画に合うであろうアプリをサンプルとして用意して、生徒には各自の目的にあったアプリを選び、改造していくことで、自分たちの解決方法をアプリとして実現することにしました。

チームで開発を進める

もう一つのテーマが、チームでの開発です。これまでは一人で学習を進めてきましたが、今回はチームで役割分担をしながら開発します。コーディングが得意な人、キャラクタデザインや音楽が得意な人、プレゼンを準備する係など、チームの特性に応じて作業を効率的に進めるように伝えました。

チーム活動では、TODO管理や情報共有のため、後述するTrelloとChatworkを使います。これらのツールの使用は成績評価にも直結していることを伝え、作業内容を記入するように求めました。チーム内でどのような話合いがあったか、どのような分担で作業をしているかは、これらのツールの利用を分析することで可能となります。

プレゼンテーション

一連の授業の最後には、プレゼンテーションで成果を売り込みます。

プレゼンでは、スタートアップの 3 分ピッチテンプレートを参考に、以下のポイントを抑えて発表するように伝えています。
・Problem(課題認識)
・Solution(解決方法)
・Market Size(市場規模、想定する利用者)
・Traction(利用者の声)
・Unique Insight(ユニークな点)
・Business Model(ビジネスモデル)
・Team(チームメンバー紹介)

自分たちのチームを売り込むように、思い通りに行かなかったことも、今後の開発の方向性として発表してもらいます。

開発のベースになるサンプルアプリ

Javascriptでコーディングでき、高校生に身近な体験のアプリを用意しました。下の画像はその一例です。

Lineのボットや画像認識で年齢を表示するアプリなど、高校生にもわかりやすく様々なソリューションの土台として使えることを想定して用意しました。こちらを、2学期の最後の授業を使って紹介し触ってみてもらいました。どういう事ができるかを理解して、自分たちの課題認識にマッチングさせることを目的としています。


上記のアプリサンプルの一部はこちら(ログインが必要→Account: demo, Password: benesse)からお試しいただけます。

この中で高校生に人気だったのは、「顔認識API(MS AzureのCognitive APIを利用)」。顔認識+年齢推測+画像解析などが行なえます。老けて判別されたとか盛り上がりました。

他にも上記のサンプルには入っていませんが、
・Lineのチャットボット(挨拶を返す、天気を教えるなどのロジックが入っています)
・RPGマルチプレイヤーゲーム(MMORPGのように、複数ユーザーが同時に街を探検してチャットなどができるゲーム)
なども人気でした。

チーム開発のためのツール

チームの役割分担とタスクを明確化するために、Trelloを使ってもらいました。Trelloは無料で使えるオンラインサービスで、チームでのタスクやその進捗を管理することに向いています。チームでの役割分担を決め、Trelloに入力。その進捗を見える化してチーム作業を効率化します。

それぞれのタスク(カード)にチャットのログをできるだけ残しておくようにも伝えています。先生側としては、それを確認することで、生徒たちがどのように思考して作業いたかを把握することができます。生徒の活動の流れを認識し、アドバイスや評価にも利用します。

また、今回はベネッセのメンバーも各Trelloに参加し、質問やタスク振りを受けることも許可しています。目的に向けて、外部の大人も使って効果的に進めるというプロジェクトマネジメントの経験にもなったはず。

カードの使い方などを特にルールを作らなかったので、各チーム色々な使い方をしていて興味深かったのですが、効率よく情報共有するためにもある程度使い方に制限を加えておけばよかったと反省しています。

また、チームの情報共有として、Chatworkを活用しているチームもありました。Chatworkは、その名の通りチャットで情報共有できるサービスです。タスク管理などもあり、チームでの開発にも使えます。


とあるチームのTrelloの画面の例

Hylableを使ったチームディスカッションの議論分析

チームの話し合いを「Hylableの議論評価サービス」を使って議論を定量的にデータで分析することに挑戦してみました。すべての授業ではないですが、ディスカッションが中心になる授業回を選んで、Hylableを使って分析してきました。


机の真ん中にHylableのマイクを設置してディスカッションしている様子

Hylableを使うためには、写真にあるように卵型の全方位マイクを使って録音します。録音した音声をHylableが分析することで、各生徒(座っている位置=マイクからの方向で個人特定)の音声を分けて取得することができ、さらに議論で誰がどのように話をリードしてきたのか、誰の発言で議論が進展したのかがなどを、定量的に把握することができます。


Hylableの分析結果の例

結果的にHylableの利用はとても有意義でした。

分析結果のグラフを見ると、例えば特定の時間以降に全員が活発に発言していることがわかる場合があります。その特定の時間の音源を聞き直すことで、誰のどんな会話がきっかけになって議論が深まったかを確認することができます。

提出物の内容がいまひとつだった生徒も、実は議論では中心になってチームを引っ張っていたことが分かったりして、チームでの取り組みを評価するためのデータとしてとても有意義に活用できました。

授業スケジュール

実際の授業は以下のようなスケジュールで進行しました。

後編で説明しますが、今回は開発環境をオンラインでアクセスできるように用意しました。生徒は学校でも自宅でも開発を継続することができます。そのため、授業外の時間でも開発を継続しているチームも多くありました。

2017年12月 1日(2時間) これからの授業全体の説明と、アイデアの起草となるサンプルアプリの紹介。
冬休みの宿題として、「課題」の発見と、「解決方法」の企画を作成する。
2018年 1月12日(2時間) 冬休みの宿題を分類して、それぞれの代表となる生徒に企画の説明をしてもらい、どのチームに所属したいか希望をとる。
(チーム分けは、人数の偏りが少なくなるように調整した)
2018年 1月26日(2時間) チームに分かれてタスクの洗い出しとスケジュール化を行う。
企画をまとめて、プレゼンテーションする。
2018年 2月 2日(2時間) サンプルアプリを各チーム向けに設定したものを引き渡す。
アプリを解析して、修正する部分を把握して開発を開始。
2018年 2月 9日(2時間) 引き続き開発する
2018年 2月16日(2時間) 引き続き開発する。
いくつかのチームではほぼ完成し、利用者のフィードバックを反映していく
2018年 2月23日(2時間) 開発を継続しつつ、中間報告を行う
2018年 3月 2日(2時間) 開発を継続し、プレゼンテーションの準備も進める
2018年 3月12日(1時間) プレゼンテーション

まとめ

授業としては難易度が高いものだったかと思いますが、なんとか各チームは各自の目標を達成するアプリを作ることができました。

次の記事では、生徒が作った作品と、その背景にある企画を紹介していきます。