子どもの学習アプリに「記録して声をかける仕組み」を作った話
子どもの学習アプリに記録を足した日、作りたかったのは成績表ではなく「見てくれている人がいる」と伝える場所でした。設計のやり直し、選択肢の記録、動かなかった3時間、そして最初の往復が成立するまでをまとめます。
目次
子どもの学習アプリに「記録」を残す仕組みをつけようと思ったとき、最初に考えていたのは、正解と不正解を溜めていくことだけでした。
ところが、作り始める直前で手が止まりました。私が作りたかったのは、できた・できないを測る表だったのか。 そうではなく、「今日も見ているよ」と伝える場所だったのではないか、と。
この記事では、記録の作り方を途中で考え直した理由と、動かずに3時間かかった失敗、そして最初の往復が成立するまでを書きます。
なお、これで成績が上がったという話ではありません。 使い始めたばかりで、効果はまだ分かっていません。
作りたかったのは「学習記録」ではなく、見てくれている人がいる状態でした
最初に描いていたのは、子どもが問題を解くたびに結果が裏側に溜まっていく仕組みでした。親が後から画面を開いて「今日はどれくらいできたかな」と確認できればいい、と考えていました。
その形を見直したとき、抜けているものに気づきました。記録を見る仕組みはあるのに、子どもに言葉を返す場所がどこにもなかったのです。
記録だけを残すと、子どもの側からは「試されている」「見られている」に近づきます。私が欲しかったのは結果の一覧ではなく、自分の頑張りを誰かが見ている、と本人が感じられる状態でした。
そこで作り直しました。AIに自動でアドバイスを返させるのではなく、届いた記録を見ながら、親とAIで「今日はどんな言葉をかけようか」を1日1回考えて届ける形にしました。
作る前に目的を言い直せたから、引き返せました
コードを全部書き終えた後だったら、たぶん「まあ、これでいいか」で進めていました。
形になる前に「この仕組みで、子どもに何を伝えたいのか」を言葉にし直せたのが良かったです。AIで何か作ろうとすると、どうしても機能の話から入ってしまいます。先に決めるべきは、機能ではなく目的のほうでした。
記録を「その端末の中」から出す必要がありました
ひとつ現実的な問題がありました。
アプリの記録は、使った端末のブラウザの中にしか残りません。 つまり、次女が自分の端末で解いた内容を、私は見られません。相談しているAIも読めません。記録があっても、届く先がない状態でした。
そこで、記録の置き場所を端末の外に移すことにしました。使ったのは Cloudflare の D1 というデータベースです。これで、誰がどの端末から見ても同じ記録が読めるようになりました。
家庭で使う規模なら、置き場所は何でも構わないと思います。大事なのは、子どもが解いた記録を、親が読める場所に出しておくことでした。
正解か不正解かだけでは、声のかけ方を決められませんでした
〇か×かだけの記録では、どんな気持ちでその答えを選んだのかが分かりません。
同じ不正解でも、まったく分からずに選んだのか、二択で迷った末に外したのかでは、かける言葉が変わります。だから、どの選択肢を選んだのかまで残すことにしました。評価のためではなく、次の一言を決めるためです。
残すもの・残さないものは、先に決めました。
| 残すもの | 残さないもの |
|---|---|
| 選んだ回答(元の順番の番号) | 問題文や選択肢の文章 |
| 画面の前で考えていた時間 | 子どもの名前やアカウント情報 |
| 学習に取り組んだ日時 | 自動でつく成績のランク付け |
もうひとつ決めたことがあります。親が動作確認で解いたぶんは、記録に残さないことです。
これは地味ですが大事でした。混ざってしまうと、子どもの記録として見ていたものが、実は自分が試しに解いたものだったということが起こります。あとから見分けるのは難しいので、最初から入れない形にしました。
選択肢の順番が毎回変わるので、そのままでは記録になりませんでした
小さな落とし穴がありました。このアプリは、答えの位置を丸暗記しないよう、選択肢の並び順を毎回入れ替えています。
そのため「2番目のボタンを押した」と記録すると、後から見たときにそれがどの選択肢だったのか分からなくなります。
画面上の並び順ではなく、元の問題データが持っている番号に直してから保存する。そんな調整が必要でした。
動かなかった3時間は、推測を止めて事実を取る時間でした
出来上がってテストすると、記録が1件も届きませんでした。
「書き方が違うのか」「どこかで切れているのか」。推測ばかりが巡って、気づけば3時間が経っていました。
そこでコードをいじるのをやめて、事実を順番に確かめることにしました。
- 送信できているか(ボタンを押したとき、実際に送られているか)
- 形が壊れていないか(途中でデータが崩れていないか)
- 受け取る側が開いているか(受け手の設定が効いているか)
たどっていくと、原因は書き間違いではなく、設定が反映されていないことでした。
答えは、画面の隅の一文でした
設定そのものは合っていました。見落としていたのは、画面の端に小さく書かれた注意書きです。
この設定は、アプリを更新(デプロイ)した後に有効になります
数字を直して満足して、それを反映させる最後の操作をしていませんでした。 正しく設定しても、それが実際の画面に届くのはいつなのか。そこまで確かめないと意味がない、という当たり前のことでした。
ログを一行入れたら、思い込みで直す往復が止まりました
勘で直すのをやめるため、「いま、ここをこういうデータが通っている」と表示させる短い仕組みを一行だけ入れました。
同時に、別のAIにも同じ状況を相談しました。 違う角度から見てもらったことで、「きっとこうだ」という自分の思い込みから抜けられました。
AIを答えを出す箱として使うのではなく、自分の見落としを指摘してくれる相手として使う。 3時間を止めたのは、これでした。
最初の記録から見えたのは、正誤より「かかった時間」でした
仕組みがつながって、次女の学習アプリの記録が届くようになりました。
見ていて気づいたのは、数秒で答えているものと、しばらく考えているものがあるということです。
同じ×でも、すぐに選んだ間違いと、長く考えた末の間違いでは、意味が違います。時間がかかった不正解は、知らなかったのではなく、迷った跡かもしれません。 それが見えるだけで、「この問題はけっこう考えてたね」と言えるようになります。
正誤だけを見ていた頃には、この違いはまったく見えませんでした。
最初の往復が成立した日
しばらくして、次女が学習アプリを開きました。
その日は、いつもの3問だけで終わらず、そこから自分で理科を10問続けていました。 誰かに言われたわけではありません。記録を見て、正直おどろきました。
その記録を見ながら、かける言葉を考えました。「よくがんばったね」ではなく、記録から分かったことを書きました。この問題で長く考えていたこと。すぐ答えられていたところ。前に間違えた問題を、今度は選び直せていたこと。
次女ががんばった記録を学習アプリが届けてくれる。そしてその記録から見える次女のがんばりの内容に合わせて言葉をかけてあげる。そんな仕組みを無事作ることができた瞬間でした。
届けた言葉は、その日のうちに読まれていました。
記録が届いて、それを読んで言葉を返して、その言葉が届く。 作りたかったのは、この往復でした。成績が上がったわけでも、何かが解決したわけでもありません。それでも、この仕組みづくりが、いちばんうれしい結果でした。
記録の先に作りたいのは、点数表ではなく声をかける仕組みです
この仕組みを通して思ったのは、記録は子どもを測るためのものではないということです。
「どこでつまずいたのかな」「ここは長く考えていたんだな」と親が気づいて、学習アプリのキャラクターを通して子どもに応援と気付きをメッセージで届けられる。そんな温かい仕組みが作れれば十分でした。
向かないこともはっきりしています。入れただけで成績が上がる仕組みではありません。 親の確認をなくすものでもありません。実際、言葉を考えるのは毎日私の仕事です。
効果はまだ分かりません。 使い始めたばかりですし、これで成績が変わるとも思っていません。しばらくは、急がずに様子を見ていくつもりです。