「プログラミングをやってみたい。でも、何を作ればいいの?」
「教材を見れば作れるけれど、自分の作品を考えると手が止まる」
作りたいものは、大きなアプリや本格的なゲームでも構いません。最初に作る部分を小さくすれば、一歩ずつ近づいていけます。
中学生の最初の作品は、自分が遊びたいミニゲームや、学校生活の小さな不便を助けるアプリから考えると決めやすくなります。
例えば、試合で得点を記録するカウンター、テスト勉強に使うクイズ、忘れ物チェックなどです。まず一つの機能を動かし、使ってみてから工夫を足していきましょう。
この記事では、作品アイデア8選と、完成までの進め方を紹介します。
中学生が作るなら、まずは「遊ぶ・使う・伝える」から選ぼう
何を作るか決まらない場合は、自分の興味を次の3つに分けてみてください。
やってみたいこと | 作品の方向性 | 考えるきっかけ |
|---|---|---|
遊びたい | クイズ、迷路、避けるゲームなど。 | 好きなゲームの、どのルールが面白い? |
便利にしたい | 課題チェック、学習記録、カウンターなど。 | 毎日面倒に感じることや、忘れやすいことは? |
伝えたい | 好きなもの紹介サイト、学校行事の案内など。 | 誰に、何を知ってもらいたい? |
「社会の大きな問題を解決しなければ」と考えなくても構いません。まず自分一人が使うものでも、作る理由になります。
好きなゲームを参考にするなら、キャラクターや画像をそのまま使うのではなく、「敵を避ける」「時間内に集める」といったルールの一部に注目してみましょう。
中学生向けプログラミング作品アイデア8選
以下は学習用のアイデアです。すべてが実際の生徒の作品という意味ではありません。「最初の完成形」を小さく決めてあるので、今の経験に合わせて選んでください。
作品 | 最初の完成形 | 学べること | 次に加える工夫 |
|---|---|---|---|
①試合の得点カウンター | ボタンを押すと得点が1増える。 | 変数、操作への反応、表示更新。 | 得点を戻す、2チーム分にする。 |
②テスト勉強クイズ | 1問に答えると、正誤と解説が出る。 | 条件分岐、入力と出力。 | 問題を増やす、復習機能を付ける。 |
③忘れ物チェック | 持ち物を一覧にして、用意したものをチェックする。 | 状態の管理、一覧表示。 | 曜日ごとの切り替え、記録の保存。 |
④好きなもの紹介サイト | 好きな本やスポーツを、見出し・文章・画像で紹介する。 | 情報の構成、HTML・CSS。 | 絞り込みや表示切り替えを付ける。 |
⑤障害物を避けるゲーム | キャラクターを動かし、障害物に触れたら終了する。 | 座標、繰り返し、当たり判定。 | スコア、難しさの調整、再挑戦。 |
⑥選択肢で進む物語 | 選んだボタンによって、次の場面が変わる。 | 条件分岐、場面の管理。 | 持ち物による分岐、複数の結末。 |
⑦学習時間の集計 | 教科ごとの学習時間を入力し、合計を表示する。 | 数値の扱い、配列・リスト、集計。 | 日別の記録、グラフ表示。 |
⑧部活や学校行事の案内 | 日時・場所・内容を見られる画面を作る。 | 情報整理、見やすい画面設計。 | カテゴリ検索、スマホ表示の改善。 |
初めてなら「カウンター」か「1問クイズ」
入力や操作に対して結果が変わる作品は、プログラムの動きを確かめやすい題材です。
例えばカウンターなら、「得点を覚えておく」「ボタンを押すと増やす」「新しい得点を表示する」という処理に分けられます。
最初は単純でも、得点を減らす、0に戻す、勝敗を表示するなど、工夫を追加できます。
Scratch経験者なら「自分でルールを決めるゲーム」
教材のゲームを完成させた経験があるなら、次はルールを一つ変えてみましょう。
例えば、障害物を避けるゲームなら「時間がたつと速くなる」「アイテムを取ると一度だけ守られる」などです。
色や背景の変更に加えて、変数や条件分岐を使うルールを考えると、仕組みを理解しているか確認できます。
ゲーム以外が好きなら、記録や紹介も立派な作品
ゲームが好きでなくても、作品づくりはできます。
読書の記録、好きな植物の紹介、部活の練習メモなど、自分が続けて関われる題材を探してみてください。
紹介サイトは、まずHTMLとCSSで内容と見た目を作り、慣れたらJavaScriptで検索や表示切り替えを加える方法があります。
作りたいものが決まらないときの考え方
作品例を見ても、作りたいものが決まらないことはあります。そんなときは、普段好きでやっていることから考えてみましょう。
- 何が好き? ゲーム、部活、音楽、読書など、つい時間を使ってしまうことは?
- どうなったら、もっと嬉しい? 面倒なことが楽になる、練習の成果が分かる、好きな遊びに新しいルールを足せるなど。
- その一部分を作るなら? 最初に、何が動けば自分で試してみたくなる?
例えば、部活が好きなら「練習の記録を見返したい」、物語が好きなら「自分の選択で結末が変わる話を作りたい」と考えられます。これは題材を探すための例です。誰かの役に立つものでも、自分が楽しむためのものでも構いません。
一度で答えを出す必要もありません。「本当に欲しい機能は何だろう」「これができたら使いたいかな」と行き来しながら、作ってみたいものを探していきましょう。
コンテストの過去作品から、発想を広げよう
自分の身の回りだけでは思いつかないときは、プログラミングコンテストの過去の受賞作品を見てみる方法もあります。例えば、テック甲子園公式サイトの過去の受賞作品では、アプリ甲子園の歴代作品の概要や、作品によっては発表動画を見ることができます。
見るときは、次の3つに注目してみましょう。
- 何をきっかけに、その作品を作ろうと思ったのか。
- 誰が、どんなときに使うと嬉しいのか。
- 自分が面白いと感じた仕組みは、どこか。
制作のきっかけが紹介されていれば、完成した機能だけでなく、その出発点も読んでみてください。
受賞作品と同じ規模や完成度を、最初から目指す必要はありません。面白いと思った仕組みを一つ取り出し、自分の好きな題材ならどう使えるかを考えてみましょう。参考にした作品を丸ごとコピーするのではなく、自分なりのアイデアや工夫を加えましょう。
(出典:テック甲子園公式サイト「過去の結果」、2026年10月20日確認)
Scratch・Web・Pythonは、何を基準に選ぶ?
作りたいものが決まったら、使う道具を選びます。難しい名前の言語を選ぶほど、よい作品になるわけではありません。
道具・技術 | 作品の候補 | 始めるときの考え方 |
|---|---|---|
Scratch | ゲーム、アニメーション、クイズ、物語。 | ブロックを組み合わせ、動きやルールを確かめながら作る。 |
HTML・CSS・JavaScript | 紹介サイト、カウンター、チェックアプリ、ブラウザゲーム。 | 画面の構造・見た目・動きを分けて学ぶ。 |
Python | 文字で遊ぶゲーム、数値の集計、データを使うツール。 | 最初は文字の入力と表示で動くものから始め、必要に応じて画面を加える。 |
Scratchにも公式の入門ガイドやチュートリアルがあります。最初の操作で迷う場合は、小さな例を動かしてから、自分のアイデアを足してみましょう。
参考:Scratch公式 Getting Started Guide
「中学生だからScratchでは遅い」と考える必要はありません。すでにScratchで自分の作品を作れるなら、同じクイズやカウンターをJavaScriptで作り直し、書き方の違いを学ぶ方法もあります。
【具体例】クイズを小さく作り、オリジナル作品へ広げる
ここでは、テスト勉強クイズを例に、作る順番を考えます。
1.最初は1問だけにする
最初の目標は、次のように決めます。
問題を1問表示し、選択肢を押すと「正解・不正解」と解説が出る。
得点の保存、ログイン、ランキングなどは、まだ必要ありません。まず1問に答えられるところまで完成させます。
2.画面と処理を分ける
画面に必要なのは、問題文、選択肢、結果を表示する場所です。
処理は、「選択肢を押す」「正解か調べる」「結果と解説を出す」に分けます。この順序が決まれば、何を調べて作ればよいかが見えてきます。
3.問題を増やす前に、動きを確かめる
正しい選択肢と間違った選択肢を、それぞれ押してみましょう。
連続で押した場合や、もう一度挑戦する場合にどう動くかも確認します。得点を追加するなら、同じ問題で何度も点が増えないかを確かめます。
4.自分らしい機能を一つ足す
例えば、次のような工夫を考えられます。
- 間違えたときだけ、ヒントを表示する。
- 部活や好きな分野に関係する問題にする。
- 間違えた問題を、最後にもう一度出す。
- 回答した後に、問題に関連する豆知識も表示する。
大事なのは、機能を増やす理由です。「友達が解説を読まずに次へ進んでしまったので、解説を確認するボタンを付けた」など、使ってもらった反応から考えることもできます。
まず動かしてみたい人へ|1問クイズのコード
先ほど考えた「問題を1問表示し、選択肢を押すと正誤と解説が出る」を、実際に動かしてみましょう。
以下は学習用のオリジナルコードです。コードエディタで quiz.html という名前のファイルを作って保存し、ブラウザで開いてください。保存時に quiz.html.txt にならないように確認しましょう。
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>1問クイズ</title>
</head>
<body>
<h1>1問クイズ</h1>
<p>10を2で割ると、答えはいくつ?</p>
<button id="answer4" type="button">4</button>
<button id="answer5" type="button">5</button>
<p id="result" aria-live="polite"></p>
<button id="retry" type="button">もう一度挑戦する</button>
<script>
const result = document.getElementById("result");
function checkAnswer(answer) {
if (answer === 5) {
result.textContent = "正解! 2 × 5 = 10 なので、10 ÷ 2 = 5 です。";
} else {
result.textContent = "不正解。2 × 4 = 8 です。10になるのは 2 × 5 なので、答えは5です。";
}
}
document.getElementById("answer4").addEventListener("click", () => {
checkAnswer(4);
});
document.getElementById("answer5").addEventListener("click", () => {
checkAnswer(5);
});
document.getElementById("retry").addEventListener("click", () => {
result.textContent = "";
});
</script>
</body>
</html>
動いたら、次の3点を確認してみてください。
- 「5」を押すと、「正解」と解説が出る。
- 「4」を押すと、「不正解」と、その選択肢が違う理由が出る。
- 「もう一度挑戦する」を押すと結果が消え、再び回答できる。
この例には、得点や回答の保存機能はありません。回答ボタンは何度でも押せるので、選択肢による結果の違いも確かめられます。
checkAnswer は答えを受け取って正誤を調べる関数、if (answer === 5) は答えが5かどうかで処理を分ける条件分岐、result.textContent は結果の文章を画面に表示するためのものです。
動きを確かめたら、まず問題文・選択肢・正解の条件・解説を、自分の好きな分野の1問に変えてみましょう。次に、間違えたときだけヒントを表示するなど、先ほど考えた工夫を一つ加えてみてください。
完成しないときは、機能を小さく分けよう
「オンライン対戦ゲームを作りたい」「学校のみんなで使うSNSを作りたい」という目標も、出発点としてはよいものです。
ただし、最初から通信やアカウント管理まで作ろうとすると、学ぶ内容が一度に増えます。
大きな目標 | 最初に作る小さな作品 | 次の段階 |
|---|---|---|
オンライン対戦ゲーム | 一人で遊べるゲーム。 | 同じ端末で2人が操作する仕組み。通信対戦はその後に検討。 |
学校用SNS | 自分のパソコンで文章を入力し、一覧に表示する。 | 保存、表示の整理。複数人で使う仕組みは別に学ぶ。 |
本格的な学習アプリ | 1問のクイズと解説。 | 複数問題、得点、復習。 |
大きな冒険ゲーム | 一つの部屋で、鍵を取って扉を開ける。 | 部屋を増やす、持ち物を管理する。 |
「作りたいもの」を諦めるのではなく、その一部分を取り出します。途中でも遊べる・使える形にすると、完成を確認しながら進められます。
作る順番は「見本→変更→自分で決める」
教材を使う場合は、次のように進めてみましょう。
- 見本を動かす。 どんな操作で、何が起きるか確認する。
- 一つ変える。 数値、文章、条件を変え、動きの違いを見る。
- 理由を説明する。 なぜ結果が変わったかを、自分の言葉で話す。
- 機能を一つ考える。 追加したいことを決め、必要な処理を調べる。
- 使ってもらって直す。 操作しにくいところや分かりにくいところを改善する。
見本を使うこと自体が問題なのではありません。参考にしたものを明らかにし、自分で変更した部分と、その理由を説明できるようにしましょう。
AIに相談する場合も、「全部作って」で終わらせず、分からない処理の説明や、小さな修正の候補を聞いてみてください。出てきたコードは、自分で動作を確かめる必要があります。
実際の制作事例|小さな作品を組み合わせて広げる
Sandboxの公開事例には、自己紹介カード型Webサイト、カウンター、おみくじを作り、その後に入力・保存・一覧表示を組み合わせたオリジナルアプリへ進んだ例があります。
これは小学6年生の事例であり、中学生の制作実績や標準的な学習期間を示すものではありません。
公開ページでは、入会1〜2か月目までに基礎作品3つ、入会約4か月でオリジナルアプリを形にした経過を紹介しています。学習時間や進み方は一人ひとり異なります。
参考になるのは、作品ごとに学んだ仕組みを、次の作品で組み合わせていることです。カウンターで覚えた変数、おみくじで使った条件分岐などを、別の目的に使っていきます。
実際の画面や制作の経過は、Sandboxの生徒作品・成長事例で紹介しています。
作った後は、説明して、反応をもらおう
完成したら、家族や友達に試してもらいましょう。最初からインターネットに公開しなくても、自分のパソコンで見せることから始められます。
説明するときは、次の3つを話してみてください。
- 誰が、どんなときに使う作品か。
- 自分で工夫したところはどこか。
- 次に改善したいところは何か。
「すごいね」だけで終わらせず、「操作で迷ったところはあった?」「もう一度使うなら何があると便利?」と聞くと、改善の材料になります。
公開やコンテストへの応募をする場合は、利用サービスの条件や応募要項を確認し、学校名・顔写真・連絡先などの個人情報、使用した画像や音楽の扱いにも気をつけましょう。
中学生の作品づくりでよくある質問
何を作りたいか、まったく思いつきません。
まずカウンターか1問クイズを動かしてみてください。作る前にアイデアを完成させる必要はありません。操作しながら「こんな機能があると面白い」と思ったことを一つ足してみましょう。
Scratchを続けるのと、Pythonに進むのはどちらがよいですか?
今できることと、作りたいものによります。Scratchで自分のルールを考える経験を増やす方法も、Pythonで文字中心のゲームや集計を作る方法もあります。言語名だけで進度を判断せず、自分で説明したり変更したりできることを確かめましょう。
どれくらいで一つの作品ができますか?
経験、作品の規模、使える時間によって変わります。カウンターのような小さな例と、保存や共有のあるアプリを同じ時間では比べられません。「今日はボタンを動かす」など、その日に確かめる機能を区切って進めましょう。
友達と同じ作品でもよいですか?
同じ題材でも、使う場面やルール、説明の工夫は変えられます。共同制作なら担当を分け、誰が何を作ったかを記録しましょう。他の人の作品を参考にする場合は、利用条件と出典の示し方を確認してください。
保護者は何を手伝えばよいですか?
コードを教える以外にも、作品を使う役、説明を聞く役になれます。「どこを変えたの?」「次は何をしたい?」と聞いてみてください。制作が止まっている場合は、完成させる範囲を小さくする相談や、質問できる相手を探す支援も役立ちます。
まとめ|自分が使いたい、小さな作品から始めよう
中学生がプログラミングで何を作るか迷ったら、「遊びたい」「便利にしたい」「伝えたい」から考えてみましょう。
最初の完成形は、得点が増える、クイズに答えられる、持ち物をチェックできる、といった小さな機能で構いません。
一つ動いたら、自分で変更し、使ってもらって改善する。その繰り返しで、オリジナル作品に必要な考え方と技術を増やしていけます。
作る題材や進め方を相談したい方へ
「好きなことはあるけれど、何を作ればいいか分からない」「作りたいものはあるけれど、どこから手をつけるか迷う」。そんなときは、興味のあることや今できることを、誰かと話しながら整理する方法もあります。
Sandboxでは、好きなことや興味のあることを聞き、普段感じる不便や「こんなことができたら面白い」を、対話を重ねながら掘り下げていきます。目指すのは、本人が「それなら作ってみたい」と思える題材の糸口を、一緒に見つけることです。
自分の興味を出発点に、相談しながら作品づくりを進めたい方は、オンライン校の学び方をご覧ください。
具体的に相談したい方は、今ある作品や、まだ曖昧なアイデアについてもお聞かせください。