プログラミングで夏休みの宿題を効率化!中学生・高校生向け

夏休みの宿題をプログラミングで効率化する方法を中学生・高校生向けに解説。計算ドリルの自動採点・英単語の暗記アプリ・読書記録ページなど、HTMLやJavaScriptで作れる無料の便利ツールを紹介。

2026年4月19日

宿題もプログラミングも一石二鳥!

夏休みの宿題をプログラミングで効率化してみませんか?中学生・高校生でも、HTMLとJavaScriptを使えば便利ツールを自分で作れます。しかも、ツールを作る過程でプログラミングのスキルも身につくので一石二鳥です。

この記事では、HTML(エイチティーエムエル)JavaScript(ジャバスクリプト)で作れる3つの便利ツールを紹介します。プログラミング未経験でも大丈夫。コード例をそのまま使えます。

この記事を読むと、次のことがわかります。

  • 計算ドリルの自動採点ツールの作り方
  • 英単語フラッシュカードの作り方
  • 読書記録ページの作り方

始める前に知っておくこと

この記事のツールを作るには、HTMLとJavaScriptの基本的な知識が必要です。まだ学んでいない人は、先にこのサイトのコースで基礎を学ぶのがおすすめです。

「まだ全部わからなくても大丈夫」です。コード例をコピーして動かしながら、少しずつ理解していきましょう。

💡 学習が続かない人へ【継続のコツ5選】で基礎を確認できます。

ツール1:計算ドリル自動採点

ランダムな足し算の問題を出して、答えを入力すると正解・不正解を判定するツールです。

使う知識

  • 条件分岐(if文):正解かどうかを判定する
  • DOM操作:ページの表示を書き換える
  • Math.random():ランダムな数を作る

コード例

<h1>計算ドリル</h1>
<p id="question"></p>
<input type="number" id="answer" placeholder="答えを入力">
<button id="check-btn">答え合わせ</button>
<p id="result"></p>

<script>
  let a, b;

  function newQuestion() {
    a = Math.floor(Math.random() * 50) + 1;
    b = Math.floor(Math.random() * 50) + 1;
    document.getElementById("question").textContent = a + " + " + b + " = ?";
    document.getElementById("answer").value = "";
    document.getElementById("result").textContent = "";
  }

  document.getElementById("check-btn").addEventListener("click", function() {
    const userAnswer = Number(document.getElementById("answer").value);
    if (userAnswer === a + b) {
      document.getElementById("result").textContent = "⭕ 正解!";
    } else {
      document.getElementById("result").textContent = "❌ 不正解… 答えは " + (a + b);
    }
    setTimeout(newQuestion, 1500);
  });

  newQuestion();
</script>

このコードをHTMLファイルに貼り付けてブラウザで開くと、計算問題が表示されます。答えを入力して「答え合わせ」を押すと、正解・不正解が表示されます。

💡 カスタマイズのヒント:足し算を引き算や掛け算に変えたり、数の範囲を変えたりしてみましょう。Math.floor(Math.random() * 50)50 を変えると、出題される数の範囲が変わります。

🔗 あわせてプログラミング言語の選び方もチェックしてみましょう。

ツール2:英単語フラッシュカード

英単語をランダムに表示し、クリックすると日本語の意味が見えるフラッシュカードです。

使う知識

  • 配列:単語リストをまとめる
  • イベントリスナー:ボタンクリックに反応する

コード例

<h1>英単語フラッシュカード</h1>
<p id="word" style="font-size:2rem; font-weight:bold;"></p>
<p id="meaning" style="color:gray;"></p>
<button id="show-btn">意味を見る</button>
<button id="next-btn">次の単語</button>

<script>
  const words = [
    { en: "apple", ja: "りんご" },
    { en: "school", ja: "学校" },
    { en: "friend", ja: "友達" },
    { en: "music", ja: "音楽" },
    { en: "summer", ja: "夏" }
  ];

  function showWord() {
    const i = Math.floor(Math.random() * words.length);
    document.getElementById("word").textContent = words[i].en;
    document.getElementById("meaning").textContent = "";
    document.getElementById("meaning").dataset.answer = words[i].ja;
  }

  document.getElementById("show-btn").addEventListener("click", function() {
    const m = document.getElementById("meaning");
    m.textContent = m.dataset.answer;
  });

  document.getElementById("next-btn").addEventListener("click", showWord);
  showWord();
</script>

「次の単語」を押すとランダムに英単語が表示され、「意味を見る」を押すと日本語訳が表示されます。

💡 カスタマイズのヒント:words 配列に自分の宿題の英単語を追加しましょう。数が多いほど実用的なツールになります。

ツール3:読書記録ページ

読んだ本のタイトルと感想を入力して記録するページです。localStorage(ローカルストレージ)を使うので、ブラウザを閉じてもデータが消えません。

使う知識

  • HTMLフォーム:入力欄とボタン
  • localStorage:ブラウザにデータを保存する仕組み
  • DOM操作:リストに項目を追加する

コード例

<h1>読書記録</h1>
<input type="text" id="book-title" placeholder="本のタイトル">
<input type="text" id="book-review" placeholder="感想を一言">
<button id="add-btn">記録する</button>
<ul id="book-list"></ul>

<script>
  const list = document.getElementById("book-list");
  let books = JSON.parse(localStorage.getItem("books") || "[]");

  function render() {
    list.innerHTML = "";
    books.forEach(function(book) {
      const li = document.createElement("li");
      li.textContent = book.title + ":" + book.review;
      list.appendChild(li);
    });
  }

  document.getElementById("add-btn").addEventListener("click", function() {
    const title = document.getElementById("book-title").value.trim();
    const review = document.getElementById("book-review").value.trim();
    if (title === "") return;
    books.push({ title: title, review: review });
    localStorage.setItem("books", JSON.stringify(books));
    document.getElementById("book-title").value = "";
    document.getElementById("book-review").value = "";
    render();
  });

  render();
</script>

本のタイトルと感想を入力して「記録する」を押すと、リストに追加されます。ブラウザを閉じて再度開いても、記録が残っています。

💡 localStorage とは:ブラウザにデータを保存できる仕組みです。サーバーは不要で、自分のパソコンだけで動きます。詳しくはJavaScriptのイベント処理の記事も参考にしてください。

📖 詳しくは初心者が最初にやるべきこと5選で解説しています。

夏休みのプログラミング学習に役立つ記事

まとめ

  • ✅ プログラミングで宿題ツールを作れば、宿題とスキルアップの一石二鳥
  • ✅ 計算ドリル自動採点:if文とDOM操作で正解・不正解を判定
  • ✅ 英単語フラッシュカード:配列とランダム表示で暗記を効率化
  • ✅ 読書記録ページ:localStorageでデータを保存し、記録を残せる
  • ✅ コード例をコピーして動かし、自分の宿題に合わせてカスタマイズしよう

これらのツールを作るには、JavaScriptの基本を知っておくとスムーズです。まずはJavaScriptコースで基礎を学んでみましょう。

ツールを作ったら、友達にも使ってもらいましょう。「自分で作ったツールが誰かの役に立つ」という体験は、プログラミングを続けるいちばんのモチベーションになります。夏休みの宿題をきっかけに、プログラミングの楽しさを発見してください。

⚡ JavaScriptで宿題ツールを作ろう!

JavaScriptコースで条件分岐・配列・DOM操作を学べます。全7レッスン、完全無料・登録不要です。

JavaScriptコースを始める →
目次

コースで実際に手を動かして学ぼう

レッスンではコードを書きながら基礎が身につきます

HTMLコースを始める →

📣 この記事が役に立ったら

Xでシェア

💬 引用する場合はこちらをご利用ください:

夏休みの宿題をプログラミングで効率化する方法を中学生・高校生向けに解説。計算ドリルの自動採点・英単語の暗記アプリ・読書記録ページなど、HTMLやJavaScriptで作れる無料の便利ツールを紹介。

出典: https://start-web-programming.com/blog/summer-homework-programming/