基本情報技術者試験(FE)の学習をしていて、こんな壁にぶつかっていませんか?
- 「基本のバブルソートや線形探索はトレースできるのに、過去問の初見アルゴリズムになると全く追えない」
- 「時間をかけて変数をメモ(トレース)したのに、途中でズレていて結局答えが間違っている」
- 「自分が今、どこまで理解できていて、どこから分かっていないのか客観的に確認する手段がない」
定番のアルゴリズムは暗記で乗り切れても、初見のコードになった瞬間に頭が真っ白になる。トレースに20分かけた挙句に間違えていた時の絶望感は、受験者なら誰しも経験するはずです。
実は、初見問題で迷子になる最大の原因は「コードの全体像(目的)を掴まないまま、ロボットのように変数を追いかけているから」です。
この記事では、生成AI(ChatGPTなど)を「専属のトレース添削メンター」として活用し、自分の理解度を確認しながら、初見アルゴリズムを「頭の中で動くアニメーション」に変える学習法を紹介します。
なぜ初見アルゴリズムのトレースで失敗するのか?
簡単な問題は解けるのに、初見問題で失敗する理由は主に2つあります。
- ループの途中で「現在の状態」を見失う 「今、
iが3で、配列の中身がこうなって…」と紙に書いているうちに、1箇所のミスが連鎖して全体が崩壊します。 - 「何のための処理か」分からずに読んでいる コードを1行ずつ翻訳するように読んでいるため、「この
if文は、要するに最大値を探すためのものだ」という意味のかたまり(チャンク)として認識できていません。
これを解決するには、「自分のトレース結果のどこが間違っていたのか」を即座に答え合わせし、コードの意図を視覚的に理解するプロセスが必要です。
AIを「トレース添削メンター」の魔法のプロンプト
利用するAIツールに合わせて、以下のプロンプトテンプレートを活用してみてください。
1. インタラクティブな図(ウィジェットや動的UI)を呼び出すプロンプト このチャット環境や、動的UIを生成できる最新のAI(Artifacts機能など)を使う場合に最も有効な「魔法の言葉」です。
「〇〇(例:クイックソート)のアルゴリズムについて、**インタラクティブなシミュレーター(または視覚的なビジュアライザ)**を作成してください。ステップ実行でデータがどう動くか、直感的に比較・操作できるようにしてください。」
2. 変数の動きを「トレース(追跡)」させるプロンプト プログラムの学習で一番つまずく「頭の中で変数がどう変わっているか」をAIに実況中継させます。どんなAIでも使える汎用性の高い指示です。
「〇〇の処理フローについて、初期データを
[5, 2, 9, 1]とした場合の**変数の変化を、ステップ・バイ・ステップで実況中継(トレース)**してください。各ステップでの状態を図解(アスキーアートなど)で視覚的に表現してください。」
3. 構造をフローチャート化させるプロンプト システム設計などで、全体の流れをパッと見で把握したい時に使います。
「〇〇のアルゴリズムの処理の流れを、Mermaid記法を使ってフローチャート(またはシーケンス図)で出力してください。ループと条件分岐がひと目で分かるようにしてください。」
4. 実務の身近な例えに変換させるプロンプト これまでやってきたように、抽象的な数学やプログラムを自分の土俵に引きずり込みます。
「〇〇の仕組みを、看護師の病棟業務(タスク管理や動線など)に例えて解説してください。図解も交えて、どこがメリット・デメリットになるのかを視覚的に説明してください。」
「〜を教えて」とだけ書くと、AIは教科書のような文字だけの数式やコードを返してきます。「図解して」「視覚的に」「動きがわかるように」というキーワードを意識的に入れるだけで、AIの回答モードが「テキスト解説」から「ビジュアル解説」へと劇的に変わります。
実際に私がこれらのプロンプトを使って作ってもらったシミュレーターがこちら。
基本・応用情報 アルゴリズムシミュレーター
この記事が誰かの役に立てば幸いです。

コメント