AIとはじめるプログラミング入門:第3回「AIと一緒にToDoアプリを作ってみよう」
公開日
2025年7月6日
更新日
2025年6月26日
みなさん、AIと一緒にプログラミングに取り組んできて少しずつ慣れてきておりますでしょうか。
第1回ではChatGPTの助けを借りて初めてのPythonコードを書き、第2回ではさらに基本的な概念やAIとの対話をしていただきました。
そして今回である第3回では、いよいよ簡単なToDoリストアプリの作成に挑戦してみましょう!これは約50行程度の小さなプログラムですが、安心してください。今回もAIアシスタントのChatGPTを相棒に、アイデアを形にしながら少しずつコードを書き進めていきます。実際にコードを生成→実行→テストといった流れを体験しましょう。
実際に自分の手を動かすことで、アイデアを具体的なプログラムに落とし込む方法、そしてAIを活用した効率的なコーディングが学べます。プログラミング初心者の方も大丈夫。肩の力を抜いて、一緒に楽しく進めていきましょう!
この記事の主な内容
ChatGPTとColabでToDoリストアプリ開発に挑戦
まずは今回作成するアプリの概要を確認しましょう。ToDoリストアプリとは、やること(タスク)を追加し、その一覧を管理して、完了したタスクを「完了済み」として処理できるシンプルなプログラムです。
例えば「買い物に行く」「会議の準備をする」などのタスクを追加し、一覧表示し、終わったものにチェックを付ける(またはリストから削除する)といった操作を想像してください。今回のアプリはコンソール(ターミナル)上で動作し、番号で選ぶメニュー形式の簡単なものですが、プログラミングの基本的な要素(ループ、条件分岐、リスト操作、ユーザー入力など)が詰まっています。
この開発にはChatGPTとGoogle Colaboratory(Google Colab)という2つのツールを使います。利用するにはGoogleアカウントでGoogle Colabにアクセスし、新しいノートブック(Notebook)を作成しましょう。
Google Colaboratory

Google Colabの使い方については第1回で紹介していますので、読んでない方はまずそちらからご覧ください。
AIとはじめるプログラミング入門:第1回「AIと一緒に初めてのPythonコードを書いてみよう」
一方のChatGPTは、対話形式でコードを書いてもらうのに大いに役立つAIアシスタントでしたね。今回はこの2つを組み合わせ、ChatGPTにコードを書いてもらい、そのコードをColab上で動かしてテストするという進め方を取ります。
では早速、ChatGPTにToDoアプリの骨組みとなるコードを依頼してみましょう。ポイントは、実現したい機能を具体的に伝えることです。例えば次のようにプロンプト(指示文)を入力すると、ChatGPTは要求に沿ったコードを提案してくれます。
メニューとして、
1.新規タスク追加、
2.タスク一覧表示、
3.タスク完了(番号で指定)、
4.終了 が選べるようにしてください。
すると、次のようにプログラムを生成してくれます。

上記のプロンプトでは、ToDoアプリに必要な機能を箇条書きで明示しました。具体的かつ箇条書きの指示にすることで、ChatGPTから再現性の高いコード提案を得やすくなります。
それでは、ChatGPTが実際に提案したコードの一例を見てみましょう。
def show_menu():
print("\n===== ToDoリスト メニュー =====")
print("1. 新規タスク追加")
print("2. タスク一覧表示")
print("3. タスク完了(番号で指定)")
print("4. 終了")
def add_task(tasks):
task = input("追加するタスクを入力してください: ")
tasks.append(task)
print(f"タスク「{task}」を追加しました。")
def list_tasks(tasks):
if not tasks:
print("タスクはありません。")
else:
print("\n--- 現在のタスク一覧 ---")
for i, task in enumerate(tasks, 1):
print(f"{i}. {task}")
def complete_task(tasks):
list_tasks(tasks)
if not tasks:
return
try:
num = int(input("完了したタスクの番号を入力してください: "))
if 1 <= num <= len(tasks):
removed = tasks.pop(num - 1)
print(f"タスク「{removed}」を完了しました。")
else:
print("無効な番号です。")
except ValueError:
print("番号を入力してください。")
def main():
tasks = []
while True:
show_menu()
choice = input("メニュー番号を選んでください: ")
if choice == '1':
add_task(tasks)
elif choice == '2':
list_tasks(tasks)
elif choice == '3':
complete_task(tasks)
elif choice == '4':
print("プログラムを終了します。")
break
else:
print("無効な選択です。1~4の番号を入力してください。")
if __name__ == "__main__":
main()
上のコードは、ChatGPTから提供されたToDoリストアプリの一例です。内容を確認してみましょう。(初心者の方はいったん無視して進んでください。)
tasksというリストが定義され、ここにタスクの名前(文字列)を追加して管理します。
1を入力すると、新しいタスクを追加します。input()関数でユーザーからタスク内容を文字列として受け取り、空でなければtasks.append()でリストに追加しています。
2を入力すると、タスク一覧を表示します。tasksリストが空の場合は「タスクがありません」と知らせ、タスクがある場合はenumerateで番号付きで1件ずつ出力しています。
3を入力すると、タスク完了処理です。まずタスクが一件もなければ「完了させるタスクがない」と表示します。タスクがある場合、完了したいタスクの番号を再度input()で尋ね、その番号に対応するタスクをtasks.pop()でリストから削除し、完了メッセージを表示します(この例では完了したタスクはリストから取り除いています)。番号が範囲外だった場合は「無効な番号」と伝えます。
4を入力すると、ループを抜け(break)、プログラムを終了します。それ以外の入力には「1~4を入力してください」とエラーメッセージを出します。
初心者の方には少し長く感じられるかもしれませんが、一つ一つのパートは比較的シンプルです。では、このコードを実際にGoogle Colab上で実行して、動作を確かめてみましょう。
Colabでコードを実行してみよう
ChatGPTから得たコードをコピーして、Google Colabのコードセルに貼り付けてみましょう。出力されたプログラムの上部にある「コピー」を選択します。

貼り付けたら再生ボタン(▷)をクリックしてコードを実行します。Colabを初めて使う場合、最初に「このノートブックを実行しますか?」といった確認やランタイムの接続待ちが発生するかもしれませんが、指示に従って進めてください。実行が開始されると、コード内のinput()関数の箇所で入力待ちの状態になります。

上記コードを実行すると、まず「選択肢を入力してください (1-4):」というメッセージが出て、入力ボックスが表示されます。そのボックスに「1」などの選択肢をタイプしてEnterキーを押せば、プログラムにその値が渡されます。

では実際にいくつか操作してみましょう。まず 1(新しいタスクを追加) を選び、「買い物」といったタスクを入力してEnterを押します。すると「タスク『買い物』を追加しました。」と表示され、タスクがリストに保存されました。
次に 2(タスク一覧表示) を選ぶと、「1. 買い物」のように先ほど追加したタスクが一覧に出力されます。

次に、タスク完了の処理を試すために3を選んでみます。買い物のタスク番号である1と入力して実行すると、タスク一覧に表示されなくなります。

ではさらに、間違った入力をした場合はどうなるでしょうか。例えばタスクの番号を聞かれた場面で、誤って「abc」とアルファベットを入力してみます。この場合、プログラムは数字を期待しているため、以下のようなメッセージがColab上に出力されました。

「無効な選択です。1~4の番号を入力してください。」という表示されています。これは、入力した内容が1~4の数字ではないことを示しており、アプリとして動作するために必要な入力が行われていないというメッセージを表示してくれているのです。
コードをもっとよくするには?
基本的なToDoアプリはこれで一応完成です。しかし、より使いやすくしたり、プログラミングの練習として改良を加えてみるのも良いでしょう。例えば、以下のような改善や機能追加が考えられます。
完了済みタスクの扱い: 現在は完了したタスクをリストから削除していますが、削除ではなく「完了済み」の印を付ける方法もあります。例えばタスクを完了ステータス付きの要素(Pythonではオブジェクトと呼びます)で管理し、{"name": "買い物に行く", "ステータス": "完了"}のように状態を持たせる実装に拡張することもできます。
データの永続化: プログラムを終了するとタスクのリストは消えてしまいます。学習の一環として、ファイルにタスクを書き出しておき、プログラム起動時に読み込むことでタスクの保存を実現することもできます。Pythonならファイル操作も簡単なので、興味があればChatGPTに「タスクをファイル保存する方法」を聞いてみると良いでしょう。
このように、AIを活用すれば「次はこんな機能を足したい」というアイデアをすぐ試せるのも魅力です。ぜひ色々とChatGPTに相談しながら、自分なりのToDoアプリに育ててみてください。
初心者が押さえておきたいポイントとコツ
最後に、今回の内容を踏まえて効率的にAIとコーディングするコツをいくつかまとめます。
プロンプトは具体的に書く: 漠然と「コードを書いて」ではなく、今回のように「○○なプログラムで△△の機能を入れて」と要件を明確に伝えましょう。AIには一度に複数の要求もできますが、項目を箇条書きにするなど整理して伝えると、再現性の高いコードを得やすくなります。
大きな問題は小さく分割: 一度に全部の機能を詰め込もうとせず、まず小さい部分から順に作るのが成功の秘訣です。ChatGPTにコードを書いてもらう際も、「まずデータ構造だけ作って」とか「入力部分だけ書いて」といったように一歩ずつ依頼できます。段階ごとにテストすれば、どこで問題が起きたかも特定しやすくなります。
エラーはよくあること: プログラムがエラーを出すのはよくあることです。エラーメッセージが出たら内容を落ち着いて読みましょう。原因が分からない場合は積極的にAIに質問しましょう。エラーはむしろ学びのチャンスと捉えて、次に同じミスを繰り返さないようにエラーの原因と対処方法をChatGPTやGeminiに聞くことが上達の早道です。
コードの意味を理解する: AIが生成したコードは必ず自分の目で読んで確認しましょう。わからない部分があれば「このコードは何をしていますか?」とChatGPTに質問すれば解説してくれます。ブラックボックスにせず、少しずつ中身を理解することで実力も向上します。
Pythonの文法上の注意: 少し技術的な話ですが、Pythonはインデント(字下げ:プログラムの先頭に入力するスペース)が非常に重要です。コピー&ペースト時に空白が崩れると動かない原因になります。また、Colabで複数のコードセルに分けて書く場合は、上から順に実行することにも注意しましょう(変数の定義など前のセルの実行が必要な場合があります)。
まとめと次回予告
今回は、ChatGPTというAIの助けを借りながら簡単なToDoリスト管理アプリを作成しました。ゼロからプログラムを書き上げるのは初心者にはハードルが高いものですが、AIとの対話を通じて開発を進める手法を体験できたのではないでしょうか。最初に機能のアイデアを出し、それをコードにしてもらい、自分で動かしてみて、不具合があれば修正を相談し…という一連の流れは、まさに実務的な開発プロセスの縮図です。AIは常に正確なコードを出力してくれるわけではありませんが、上手に協力すればプログラミング学習の強力なサポーターになります。ぜひ今回のアプリをベースに、色々な改良や他の小アプリ作りにチャレンジしてみてください。 次回は、この経験をさらに発展させてもう一歩進んだ応用編に取り組んでいきます。新たな視点でAIとプログラミングの可能性を探ってみましょう。どんな内容になるか、お楽しみに!
AIによるプログラミングを学べる以下のセミナーも開催していますのでご興味のある方はぜひチェックしてみて下さい。
Python×生成AIで学ぶ! 自動機械学習による予測分析実践講座
仕事をしながらでも無理なく学べる!Pythonによるデータサイエンス実践セミナー-生成AIと学ぶpythonデータサイエンス-



