**********************************************************************
セッション:S2c
テーマ  :オンラインでの組込み教育・モデリング教育について
講師   :久保秋 真 株式会社チェンジビジョン
日時   :2021/09/03(金) 10:00~11:10
参加人数 :29名(終了時)
**********************************************************************


■モデリング教育のポイント

○講師の実績の紹介

○対面教育での機器・ツールの紹介

○実際の対面演習内容の紹介

○教育のねらい(対面・オンライン問わず)
 ・設計の有用性、ありがたみを感じてもらう
 ・組込みでモデルを使い、それから実装を行うシステムを知る
 ・設計と実装の間の乖離の理由を知り、それををなくす
 ・モデル駆動開発に興味を持ってもらう

○モデリング教育で気をつけていること
 ・モデルとコードの対応づけが最重要
  -変換による実装を使い、それを前提としたモデリングを行う
  -モデルを見て一定の規則でコードに直させる
 ・他の部分は必要最低限
  -モデリング以外の部分で悩まないように課題を設定する
 ・まずはやり方を一緒にマスターさせる。勝手にやらせない
 ・設計に基づいた実装が出来るように。動いたらOKではない
 

■演習のオンライン対応

○対面での実機を動かす演習
 ・実際に機器を組み立てさせて、構造や配線に関心を持たせたい
 ・組み立て・動作確認に時間がかかる

○オンラインでの実機を動かす演習
 ・「箱庭」を利用、実機と同じシミュレーション環境を用意
 ・環境構築が大変、ここで諦める学生もいた
 ・Zoomとシミュレータの同時動作はPCのスペック的に難しい
 ・自由度が低い
  -学生が走行体やコースの変更を行うのが難しい
 ・機器の組み立てを行わない
   ->構造・配線への関心が薄れる
 ・環境構築が出来れば自宅でも演習可

○対面でのモデル作成演習
 ・ツールの使用に慣れている人はモデリングツールを用いる
 ・慣れていない人はツールを使わない、模造紙とポストイット
 ・講師が取っかかりを用意し、真似して貰うところから

○オンラインでのモデル作成演習
 ・Zoomのブレイクアウトルームを用いたグループワーク
   ->グループ数が多くなると講師が不足する
 ・個人での作業にすることも
 ・いずれにせよ、誰かのモデルを手本に画面共有をしながら進める
 ・Miroやastah*、PowerPointを模造紙の代わりとして用いる
 
○モデルからコードを作成する演習
 ・基本的には対面もオンラインも同じ
 ・原因が「コードの書き間違い」か「設計ミス」かを区別させる
   ・コードがモデル通りでないならまずはモデル通りのコードにさせる
   ・コードがモデル通りなら設計を見直し、応じてコードを直す
 ・ハイブリッド形式では、リモートの学生がビルドしたモジュールを現地の学生に送り、それを使って動作確認


■モデル・コード・レポートの対応

○レポートの問題点
 ・モデル図やコードをレポートとして作り直すのが大変
  -レポートの構成や体裁、図の貼り付け方も十人十色
 ・大量の紙やdocxのレポートを確認する講師も大変
 ・フィードバックの手段がレポートとは別になり手間がかかる

○解決策としてGithubClassroomの活用
 ・リポジトリによる教材や課題の配布を一括して行える
 ・各学生の進度を講師が随時確認でき、フィードバックを行える
 ・リポジトリの変更をレポートとすることで別途レポートを用意する必要がなくなる

○GithubClassroomの実演
 ・使用した演習用教材:https://classroom.github.com/a/gq_r2KQY


■オンライン演習の良し悪し
 
○学生の反応
 決して良くはなかった
  <例>
  ・環境構築が難しくて諦めた
  ・実機ほど動いたことへの感動がない
  ・PCの性能に依存する
  ・動かないときの原因究明が難しい

  ->演習の大変な部分が表れやすい

○実機と比べた短所
 ・学生のPCの性能では限界がある
   -シミュレーションの処理が重い、Zoomとの同時起動が厳しい
 ・組み立てをしないため、構造に意識がいかない
 ・外からの影響がないので動作に変化がなく、面白みに欠ける
 ・他の人の進度が見られない
   ->他人と比べての焦りがない、自分の不出来・間違いが分からない

 ->実機での「体験」の代わりにはなり得ない

○実機と比べた長所
 ・設計やコード作成の演習に集中できる
 ・個々が場所を問わず演習できる
 ・外乱や実機の不具合を作為的に起こせる
   ->実機では観測しにくい状況を試せる


■まとめ
・オンラインでも対面でも、やりたいことは同じ
 -モデル図の作成や共有方法には工夫が必要
・コードを書いて動かすためには実機の代替が必要
 -実機を動かす「体験」の代わりにはなり得ない
・実装では変換ルールによる制約をつける
 -コーディングの問題と設計の問題を分離しやすくなる
 -サンプルと変換ルールを元に真似していけば最低限の演習はできる
・環境構築が大きなハードルになる
 -環境構築自体が難しい生徒も
 -学生のPCだと資源が不足することも
・モデルやコードのレポートにはGithubClassroomを利用
 -課題の配布、回収、フィードバックを一括して行える
 -配布リポジトリのファイルの書き換えをレポートとすることで採点も楽


■質疑応答
Q1
オンライン教育において感じた、学生のモチベーションが削がれる要因は?
A1
PCの性能によってシミュレータの動作自体が緩慢になることが大きな要因と考えている。

Q2
環境構築の手順の説明の工夫、躓いた点はあるか?
A2
手順書は事前に配布し、出来る人にはやらせている。出来る学生と出来ない学生の二極化が顕著だった。出来なかった学生は1人を手本に一緒に進めさせる。ターミナルを開いての動作が躓きがちだった。不慣れゆえと思われる。

Q3
オンラインだと受講者の反応が見られない。その中で説明が一方的にならないようにどう工夫しているのか?
A3
早いうちにフィードバックを得られるような構成にする。初めの説明は簡単にして、まず手を動かさせる。そうするとどこかで躓き、レクチャーが必要になるので、ステップ毎に逐次説明している。