はじめに
Notion Tips の第178回目は、今日の授業中に作成した班活動を見える化する仕組みを解説します。
設計書の執筆
電気電子工学コースのソフトウェア設計Iおよび情報システム工学コースのプログラミングII の授業では、班で設計書を作成した上で、テスト記述、実装記述を班ごとに活動していきます。評価自体は作成したプログラムの方ではなく、設計書の方で行うことになっています。そのため、学生によってはプログラムを書いてから(もしかしたら ChatGPT などに書かせてから?)、設計書にバックポートしている逆転現象も見られたりしています。そういう時代なんですかね。クラスを4人か5人の班に分け、各班に Notion のページを共有しています。電気電子の方は人数が少なくて 8 班に分割しています。
このページ内に設置されている設計書のページとして、このような雛形を渡しています。
私は最初に簡単な講義をした後は、設計に入ると何もすることはなく、班のディスカッションに混じってコメントしたりアドバイスをしたりしているだけです。実際にそれぞれの班の設計書は私から全て見える状態なので、それを見ながらコメントすることもあります。ただ、執筆途中なのか本当に抜けているのかの判断がつかないので、それぞれのブロックごとに進捗を報告してもらうことにしました。
進捗状況を報告するページ
報告のために別のツールに移動してもらうのは大変なので、こちらも Notion で管理することにしました。各節ごとに「未着手」「執筆中」「完了」のセレクタを用意し、それぞれの班に入力してもらうことにしました。また、この進捗状況から設計書を確認できるようにページメンションを設定しています。
見える化ということで、進捗率も入れてみました。数式はこんな感じです。完了を2点、執筆中を1点として累計し、割合として計算しています。セレクタの内容は同じなので、リストにして map で計算しています。これは Formula 2.0 になって非常に簡単になった部分ですね。% 表示をきれいにするために round で丸めています。
([prop("1. 設計指針(簡単なルール)"), prop("1. 画面イメージ"), prop("2. シリアライズのフォーマット"), prop("3. アクティビティ図"), prop("4. クラス一覧とその所有者"), prop("5. クラス図"), prop("6. クラスの詳細設計")] .map(current == "完了" ? 2 : (current == "執筆中" ? 1 : 0)) .sum() / 0.14) .round() / 100
このデータベース全体を学生に共有してしまうと、勝手に他の班の編集をされてしまうので、それぞれの班の学生をページごとに共有設定しました。その後、学生のプロジェクトのページに進捗状況ページへのリンクを追加しました。
見える化の結果
進捗状況のデータベースはこんな感じで全ての班の状況が一覧で見えるようになりました。完了になった部分は気兼ねなくコメントできそうです。また、学生も自分たちの設計書の進捗状況が数値として見えるのは便利だと思っています。
おわりに
班の進捗状況が見える化されると、どの班のサポートを積極的にすべきかがわかっていいですね。せっかくなので、情報システムのプログラミングII の方でも同じ仕組みを設定してみたいと思います。