ChatGPTとGoogleスプレッドシートで作る学習管理システム【実装編】
前回は、
勉強を「時間」ではなく「状態」で管理する
という考え方を紹介しました。
今回はその実装編です。
実際にどんなスプレッドシートを作り、どんな項目を持たせ、ChatGPTとどう連携すると運用しやすいのかを整理します。
今回はGoogleスプレッドシートを前提にしますが、ExcelやNotionでも考え方自体は再現できます。
1. 最初に作るのは3種類
最初から巨大な管理表を作る必要はありません。
まずは次の3つで十分です。
学習管理システム
│
├─ ① 範囲管理
├─ ② 演習履歴
└─ ③ 日次学習ログ
それぞれの役割は明確に分けます。
| シート | 役割 |
|---|---|
| 範囲管理 | 今の習熟状態を管理する |
| 演習履歴 | 何を解いてどうだったか残す |
| 日次学習ログ | 今日何をやったか記録する |
ポイントは、
現在地と履歴を分離すること
です。
2. 範囲管理シートを作る
まず最重要のシートです。
資格試験なら試験範囲、技術学習ならスキルマップを細かく分解して登録します。
おすすめの列は以下です。
A: 単元ID
B: 大分野
C: テーマ
D: 到達目標
E: 演習状況
F: 安定度
G: 次にやること
H: 最終確認日
I: メモ
J: 優先度
表にするとこうなります。
| 単元ID | 大分野 | テーマ | 到達目標 | 演習状況 | 安定度 | 次にやること | 最終確認日 | 優先度 |
|---|---|---|---|---|---|---|---|---|
| NW-01 | Network | DNS | 名前解決とログを説明できる | 演習済 | 学習中 | ログ問題 | 9/10 | 中 |
| WEB-01 | Web | SQLi | ログからSQLiを判定できる | 演習済 | 要確認 | 別問題 | 9/9 | 中 |
| IAM-01 | Identity | PAM | 特権ID管理を説明できる | 未演習 | 未評価 | 基礎学習 | - | 高 |
3. 単元IDは必ず付ける
単元IDは地味ですが重要です。
例えば、
NW-01
NW-02
WEB-01
WEB-02
IR-01
IR-02
のようにします。
資格試験なら、
A-001
A-002
B-1-01
B-1-02
でも構いません。
IDがあるとChatGPTへ、
B-3-04を再出題して
と指定できます。
テーマ名が多少変わっても追跡できます。
4. 「到達目標」は知識名ではなく行動で書く
悪い例はこちらです。
DNSを理解する
これだと、どこまでできれば完了なのか分かりません。
おすすめは、
DNSログを読み、
問い合わせ名・応答・名前解決の成否を説明できる
です。
ほかにも、
Kerberosを理解する
ではなく、
Kerberos認証の流れを説明し、
ログから認証方式を判断できる
のようにします。
つまり、
「知っている」ではなく「何ができれば合格か」
を書くようにします。
5. 演習状況はシンプルでいい
演習状況は細かくしすぎません。
例えば、
未演習
演習済
再演習
の3段階くらいで十分です。
Googleスプレッドシートならプルダウンにします。
理由は単純で、人間が自由入力すると、
未実施
まだ
未着手
やってない
のように表記ゆれが発生するからです。
6. 安定度は5段階にする
私は習熟状態を例えば以下で管理します。
未評価
要復習
学習中
要確認
安定
意味はこんな感じです。
| 状態 | 意味 |
|---|---|
| 未評価 | まだ実力を確認していない |
| 要復習 | 理解不足・誤答が多い |
| 学習中 | 基礎理解はある |
| 要確認 | 正解できたが再確認が必要 |
| 安定 | 時間を空けても解ける |
重要なのは、
1回正解しただけでは安定にしない
ことです。
7. 優先度を別管理する
習熟度と優先度は別物です。
ここは混ぜない方がいいです。
例えば、
安定度:学習中
優先度:高
というテーマもあります。
資格試験で頻出なら、学習中でも優先度は高いからです。
逆に、
安定度:未評価
優先度:低
もありえます。
試験で重要度が低いテーマなら、後回しにできます。
おすすめは、
高
中
低
の3段階です。
8. 最初の優先度は「未履修を高」にする
初期構築時は難しく考えなくても大丈夫です。
まず、
ほぼ未経験 → 高
ある程度勉強済み → 中
かなり安定 → 低
とします。
この状態から、実際の演習結果で変更していきます。
例えば、
中
↓
問題で大きく誤答
↓
高へ変更
としてもいいです。
優先度は固定値ではありません。
9. 演習履歴シートを作る
次は履歴です。
選択式問題中心なら、
日付
単元ID
分野
テーマ
正誤
自信度
誤答理由
復習メモ
くらいで十分です。
例えば、
| 日付 | ID | テーマ | 正誤 | 自信 | 誤答理由 | 復習メモ |
|---|---|---|---|---|---|---|
| 9/10 | OS-03 | LRU | × | 中 | FIFOと混同 | 再演習 |
| 9/11 | NW-01 | DNS | ○ | 中 | - | 別問題で確認 |
10. 記述式は評価軸を分解する
セキュリティや記述式では、正誤だけでは足りません。
例えば次の列を使います。
日付
単元ID
分野
テーマ
問題・シナリオ
事実抽出
根拠・記述
調査・対応判断
総合評価
復習メモ
特に重要なのが、
事実抽出
根拠
判断
の分離です。
11. セキュリティ問題はFACTと推測を分ける
例えばログに、
02:05 PowerShell起動
02:06 外部IPへ443通信
とあったとします。
悪い回答は、
マルウェアがC2通信を行った
です。
ログだけではそこまで断定できないかもしれません。
そこで、
FACT:
PowerShellが起動した
外部IPへ443通信が発生した
HYPOTHESIS:
C2通信の可能性がある
VERIFY:
EDR、DNS、Proxy、FWログを確認する
RESPONSE:
侵害確認後に隔離を検討する
とします。
この形式で採点すると、
単なる暗記ではなく調査思考も追跡できます。
12. 日次学習ログは軽くする
日次ログまで細かくすると続きません。
私は例えば、
日付
学習時間
新規テーマ数
学習テーマ
できたこと
弱点・課題
次回やること
業務課題
状態タグ
優先度
参照先
くらいにしています。
ここでの目的は詳細管理ではありません。
その日の学習のインデックスを作ること
です。
詳細は範囲管理と演習履歴に残します。
13. 同じ日のログは1行にまとめる
朝、昼、夜に勉強すると、
9/11 朝
9/11 昼
9/11 夜
と3行作りたくなります。
ただ、長期間運用するとかなり見づらくなります。
なので、
9/11
学習時間:95分
テーマ:DNS / CPU計算 / Ethernet
のように、1日1行にまとめる方法もおすすめです。
細かい履歴は演習ログ側を見るようにします。
14. スプレッドシート側でプルダウンを使う
最低限、次はプルダウン化します。
演習状況
安定度
優先度
例えば、
演習状況
- 未演習
- 演習済
- 再演習
安定度
- 未評価
- 要復習
- 学習中
- 要確認
- 安定
優先度
- 高
- 中
- 低
これだけでもかなり管理しやすくなります。
15. フィルタを必ず付ける
範囲管理にはフィルタを付けます。
例えば、
優先度 = 高
安定度 != 安定
で絞れば、
今やるべきテーマ一覧
になります。
さらに、
演習状況 = 未演習
を追加すれば、
まだ一度も触っていない重要単元
だけを抽出できます。
16. ChatGPTへの基本プロンプト
ここからAIを使います。
まずはシンプルで十分です。
この学習管理表を基準にしてください。
優先度「高」
かつ
安定度が「安定」ではないテーマ
から1問ずつ出題してください。
私が回答したら、
・正誤
・理解度
・弱点
・次にやること
を評価してください。
これで、毎日の問題選びをAIに任せられます。
17. 一問一答形式にする
AIに10問一気に出してもらうこともできます。
ただし個人的には、
AI:問題1
↓
自分:回答
↓
AI:採点・解説
↓
問題2
の方が好きです。
理由は、
誤答した直後に軌道修正できるから
です。
18. 採点後に必ず状態を更新する
ここが最重要です。
問題を解いて、
なるほど!
で終わってはいけません。
必ず範囲管理を更新します。
例えば、
DNS
安定度:要復習
だったものが、
正答できたら、
DNS
安定度:要確認
次にやること:別シナリオ問題
最終確認日:9/11
になります。
逆に誤答したら、
安定度:要復習
次にやること:DNS応答ログを再学習
とします。
19. 「安定」には昇格条件を作る
AIが簡単に「安定」にすると管理が壊れます。
例えばルールを決めます。
初回正解
→ 要確認
数日後に別問題正解
→ 要確認維持
さらに別形式で正解
→ 安定
あるいは、
14日以上空けて再確認
などでもいいです。
重要なのは、
安定を簡単に与えないこと
です。
20. 復習問題は「同じ問題」を出さない
同じ問題を覚えてしまうと意味がありません。
例えば最初に、
LRUで追い出されるページは?
を間違えたとします。
復習では、
別の参照列
別のページ数
FIFOとの比較
のように変形します。
ChatGPTには、
前回と同じ答えを暗記して解けないように、
条件を変えた類題を作って
と伝えます。
21. 未履修7割、復習3割のように配分する
試験範囲を網羅したい場合、
復習ばかりしていると進みません。
逆に新規ばかりだと定着しません。
そこで例えば、
新規:70%
復習:30%
と決めます。
10問なら、
7問 未履修
3問 要復習・要確認
です。
これだけでも学習バランスがかなり安定します。
22. 実務で分からなかったこと用のシートも作れる
資格とは別に、仕事の疑問も管理できます。
例えば、
| 日付 | 分類 | 不明点 | 調べた内容 | 理解度 | 次に確認 |
|---|---|---|---|---|---|
| 9/11 | NW機器 | ラインカードとは | 物理ポートを提供 | 学習中 | 実機確認 |
| 9/11 | Ethernet | 100m制限の理由 | 信号品質など | 要確認 | 規格確認 |
これを使うと、
実務
↓
不明点
↓
学習テーマ
へ変換できます。
23. 実務ログから自動で問題を作る
例えば業務中に、
Gi1/1/0/24の意味が分からなかった
という記録が残ったら、
AIに、
今日の業務不明点から、
明日確認すべき問題を3問作って
と依頼します。
すると、
Q1 Gi1/1/0/24の各数字は何を表す?
Q2 ラインカードとは?
Q3 シャーシ構成でSupervisorの役割は?
のようにできます。
つまり、
業務ログが自動的に教材へ変わります。
24. 学習システム全体像
最終的にはこうなります。
┌────────────┐
│ 実務・資格 │
└─────┬──────┘
↓
┌────────────┐
│ 不明点・問題 │
└─────┬──────┘
↓
┌────────────┐
│ 範囲管理 │
└─────┬──────┘
↓
┌────────────┐
│ ChatGPTで出題 │
└─────┬──────┘
↓
┌────────────┐
│ 自分で回答 │
└─────┬──────┘
↓
┌────────────┐
│ 採点・評価 │
└─────┬──────┘
↓
┌─────────────┴────────────┐
↓ ↓
┌──────────┐ ┌──────────┐
│ 演習履歴更新 │ │ 範囲管理更新 │
└─────┬────┘ └─────┬────┘
└─────────────┬────────────┘
↓
┌────────────┐
│ 弱点を再出題 │
└────────────┘
25. 管理しすぎない
こういうシステムを作ると、どんどん列を増やしたくなります。
これはかなり危険です。
例えば、
理解度
重要度
頻出度
正答率
自信度
復習回数
平均回答時間
難易度
などを全部入れると、管理そのものが目的になります。
まず必要なのは、
何を勉強するか
どこまでできるか
何が弱いか
次に何をやるか
だけです。
26. AIに任せる部分と自分でやる部分
AIに任せるのは、
問題作成
採点
弱点抽出
ログ整理
類題作成
次の学習候補選定
です。
自分がやるのは、
問題を解く
考える
実機を触る
ログを見る
説明する
最終判断する
です。
この分業が重要です。
27. 完成形は「AI家庭教師」ではない
最初は、
ChatGPTに教えてもらう
だけでも十分便利です。
でも一歩進めると、
自分の学習履歴を確認
↓
弱点を選ぶ
↓
問題を作る
↓
採点する
↓
記録する
↓
後日また確認する
という運用ができます。
ここまで来ると、ChatGPTは単なる家庭教師ではなく、
個人用の学習運用システム
に近くなります。
まとめ
実装で重要なのは、ツールの高度さではありません。
必要なのは、
① 範囲を分解する
② 状態を持たせる
③ 優先度を付ける
④ 問題を解く
⑤ 履歴を残す
⑥ 状態を更新する
⑦ 弱点を再出題する
という流れです。
スプレッドシートはデータベース。
ChatGPTは、
先生
採点者
問題作成者
弱点分析者
学習プランナー
として使います。
そして人間は、
考えることと手を動かすことに集中する。
最初から完璧なシステムにする必要はありません。
まず、
範囲管理
演習履歴
日次ログ
の3枚だけ作って、1週間運用してみる。
使いにくい部分があれば、その都度直す。
学習方法そのものも、
運用しながら改善する。
それが、この学習管理システムの基本設計です。