1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

小学生の算数学習を楽しくする「ひっ算シミュレーター」を作成した

Posted at

🎯 はじめに

みなさんこんにちは!

小学校の算数で「ひっ算」を教えたことはありますか?大人にとっては当たり前の計算も、子どもたちにとっては大きな壁になることがあります。特に繰り上がり繰り下がりは、多くの小学生がつまずくポイントです。

今回は、この「つまずき」を解消するために作成したひっ算シミュレーターを紹介します。タイルを使ったアニメーションで、繰り上がり・繰り下がりの仕組みを「見える化」するReactアプリです。

🎮 デモプレイ

💻 ソースコード

🤔 本アプリを作成した背景

小学生がつまずくポイント

ひっ算を学ぶ小学生が特につまずきやすいのは、以下のポイントです。

足し算の繰り上がり

  • 「7 + 8 = 15」のとき、なぜ「5」を書いて「1」を上に書くのか分からない
  • 10のかたまりを次の位に送る、という概念が抽象的すぎる
  • 繰り上がった「1」をどこに書くか、いつ足すか混乱する

引き算の繰り下がり

  • 「3 - 7」のように、上の数より下の数が大きいときにパニックになる
  • 隣の位から「10を借りてくる」というイメージがつかめない
  • 借りた後の計算で「元の数 - 借りた分 - 引く数」の3つを処理するのが難しい

共通の問題点

  • 紙の上の数字だけでは、なぜそうなるのか実感が持てない
  • 先生の説明を聞いても、頭の中でイメージできない
  • 間違えても「どこで」「なぜ」間違えたか分からない

これらの問題を解決するため、タイルを使った視覚的なアニメーションで、繰り上がり・繰り下がりの仕組みを「体験」できるアプリを作りました。

🖥️ 本アプリの画面操作方法

基本画面の構成

アプリを起動すると、以下の3つのエリアが表示されます。

  1. 問題表示エリア - 現在の計算問題(例:「37 + 45 = ?」)
  2. ひっ算エリア - 従来の筆算形式で計算過程を表示
  3. タイル可視化エリア - タイルアニメーションで仕組みを表示

設定の変更

演算の選択

  • 「たし算」または「ひき算」をドロップダウンから選択

難易度の選択

  • レベル1: 繰り上がり・繰り下がりなし(基本練習向け)
  • レベル2: 繰り上がり・繰り下がり1回(入門向け)
  • レベル3: 繰り上がり・繰り下がり複数回(応用向け)

アニメーション速度

  • スライダーで速度を調整(ゆっくり確認したい場合は遅く設定)

操作ボタン

ボタン 機能
さいせい 計算アニメーションを自動再生
つぎのステップ 1ステップずつ手動で進める
いちじていし アニメーションを一時停止
リセット 最初の状態に戻す
あたらしいもんだい 新しい問題を出題

学習の流れ

  1. 難易度と演算を選ぶ
  2. 「さいせい」ボタンを押す
  3. 各位の計算がステップごとにアニメーション表示される
  4. タイルが動く様子を見て、繰り上がり・繰り下がりを理解する
  5. 分からなければ「つぎのステップ」でゆっくり確認

💡 本アプリの実装の工夫点

ステップごとの計算をジェネレーターで管理

計算過程を「一歩ずつ」進められるよう、計算ロジックをステップ生成する形で実装しました。これにより、自動再生でも手動操作でも、同じ計算過程を正確に再現できます。各ステップで「今どの位を計算しているか」「繰り上がり・繰り下がりが発生したか」を状態として保持し、画面に反映します。

表示用の値と計算用の値を分離

引き算の繰り下がりでは、「見た目の数字」と「実際に計算に使う数字」を分けて管理しています。たとえば、10の位から1を借りた場合:

  • 画面には元の数字(例:4)をそのまま表示
  • その上に「-1」のパネルを表示して、借りたことを示す
  • 内部では計算用の値(例:3)を別途追跡

こうすることで、「元はいくつで」「いくつ借りて」「今いくつになったか」が視覚的に分かります。

3つの数の計算を明示

繰り下がりで上の位から借りた後、次にその位を計算するときは「元の値 - 貸した分 - 引く数」という3つの数の計算になります。これを画面上でも「4 - 1 - 1 = 2」のように明示することで、「なぜその答えになるか」を追跡できるようにしました。

タイルの色分けで「何が起きているか」を可視化

足し算の繰り上がり

  • 合計が10以上になったとき、最初の10個を「繰り上がる分」として赤色で表示
  • 残りを「この位の答え」として青色で表示
  • 「10個の塊を上の位に送る」イメージが視覚的に分かる

引き算の繰り下がり

  • 上の位から借りてきた10個を黄色で表示
  • 元からある数をオレンジで表示
  • 計算結果を青色で表示
  • 「足りないから借りてくる」プロセスが見える

位ごとの色分け

1の位、10の位、100の位にそれぞれ固有の色を設定しました。現在計算中の位がハイライト表示されるため、「今どこを見ればいいか」が一目で分かります。

アニメーションのタイミング制御

タイルの出現をずらして表示することで、「1つ、2つ、3つ...」と数えている感覚を演出しました。急に全部表示されるより、順番に現れる方が子どもにとって理解しやすくなります。

📈 本アプリで可視化することで得られる学習効果

抽象概念の具体化

「繰り上がり」という言葉だけでは分かりにくい概念も、タイルが10個集まって上の位に移動するアニメーションを見れば、体感として理解できます。「10のかたまり」という概念が、目で見て確認できるのです。

間違いの原因を自分で発見できる

ステップごとにアニメーションが進むため、「あ、ここで繰り上がりを忘れていた」「借りてきた10を足し忘れていた」など、自分の間違いパターンを発見しやすくなります。先生に指摘されるより、自分で気づく方が記憶に残ります。

自分のペースで学習できる

速度調整やステップ実行機能により、理解が早い子は速く進め、ゆっくり確認したい子は一歩ずつ進められます。個別最適化された学習が可能です。

繰り返し練習のハードルが下がる

紙と鉛筆での練習は「面倒」と感じる子も、アニメーション付きのアプリならゲーム感覚で取り組めます。「あたらしいもんだい」ボタンを押すだけで次々と問題が出るため、反復練習が苦になりません。

計算の「意味」が分かる

機械的に「繰り上がったら1を書く」と暗記するのではなく、「なぜ1を書くのか」「その1は何を表しているのか」を理解できます。意味を理解した計算は、応用が効きます。

🛠️ 使用技術

  • React 18 + TypeScript
  • Vite (ビルドツール)
  • CSS Modules (スコープ付きスタイリング)
  • CSS Custom Properties (テーマカラー管理)

🎁 おわりに

このシミュレーターは、「なぜ繰り上がるの?」「なぜ借りてくるの?」という小学生の素朴な疑問に、視覚的に答えるために作りました。

算数は積み重ねの教科です。ひっ算でつまずくと、その後の掛け算・割り算にも影響します。このアプリが、一人でも多くの子どもの「分かった!」につながれば嬉しいです。

ぜひお子さんやお孫さん、教え子の学習にお役立てください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?