NO IMAGE

応用情報 午後「プログラミング(アルゴリズム)」攻略|擬似言語とトレースのコツ

応用情報の午後プログラミング分野に悩む受験者
「午後のプログラミングって、何が出るの?」
「擬似言語が読めなくて手が止まる…」
「アルゴリズムって、どう対策すればいい?」

そんな疑問を持つ、応用情報技術者試験の午後対策を進めるあなたへ。

結論から言えば、
午後の「プログラミング(アルゴリズム)」は、暗記ではなく “コードを目で追う力(トレース力)” で得点が決まる分野
です。出題は擬似言語(IPA独自の書式)で書かれ、配点は安定している一方、しっかり読み解く時間が必要になります。

この記事では、この分野の特徴・典型テーマ・解き方のコツ・時間配分と練習法を、初心者向けにやさしくまとめて解説します。あなたが「何を、どう対策すればいいか」をひと目でつかめるように整えました。

 

1. プログラミング(アルゴリズム)分野の特徴

1. プログラミング(アルゴリズム)分野の特徴

午後のプログラミング分野は、問2〜11の選択問題のひとつとして出題されます。特定のプログラミング言語(JavaやPythonなど)ではなく、IPAが定めた擬似言語という共通の書式で問題文が書かれるのが、いちばんの特徴です。だから「特定の言語を覚えていないと解けない」ということはありません。

この分野には、ほかの選択問題と比べて、はっきりした特徴が3つあります。

 

プログラミング分野の3つの特徴
1. 擬似言語で出題される(言語の暗記は不要、読み解く力が要る)
2. 暗記より理解とトレース力が問われる(処理を1行ずつ追えるかが勝負)
3. 配点は安定しているが時間を使う(落ち着いて読めば取れるが、急ぐと崩れる)

 

つまり、知識を詰め込むタイプの分野ではありません。「書いてあるとおりに処理を追えるか」がそのまま得点に直結します。あなたが普段プログラミングに慣れていなくても、擬似言語の読み方とトレースのやり方さえ身につければ、十分に得点源にできる分野です。

 

例えるなら、アルゴリズムは「料理のレシピ」。材料(データ)を、決まった手順(処理)で、順番どおりに調理していくものです。擬似言語はそのレシピを書く共通の言葉。レシピを上から1行ずつ “そのとおりに” 作っていけば、誰がやっても同じ料理(答え)にたどり着きます。トレースとは、この調理を頭の中ではなく紙の上で再現する作業のことです。

 

擬似言語そのものの読み方に不安があるあなたは、まず基礎から確認しておくと、このあとの内容がぐっと理解しやすくなります。

 

2. よく出る典型テーマ

2. よく出る典型テーマ

この分野で問われるテーマは、毎年バラバラに見えて、実は定番の型に収まっています。あなたが優先して押さえたいものを、一覧にまとめました。

テーマ 具体的な内容
データ構造 配列・リスト(連結リスト)・スタック・キュー・木(二分木)
整列アルゴリズム バブルソート・選択ソート・挿入ソート・クイックソート・マージソート
探索アルゴリズム 線形探索・二分探索・木の探索(深さ優先・幅優先)
再帰 自分自身を呼び出す処理(階乗・フィボナッチ・木の走査など)
計算量 処理の速さの目安(O(n)、O(log n)、O(n²) など)
擬似言語の読み取り 条件分岐・繰り返し・配列操作の正確な追跡

 

とくにデータ構造は、ほかのすべてのテーマの土台になります。配列の添字(インデックス)の数え方、スタックの「後入れ先出し」、キューの「先入れ先出し」といった基本動作が頭に入っていないと、そのうえに乗るアルゴリズムも追えません。まずはここを固めるのが近道です。

 

整列や探索のアルゴリズムは「丸暗記」しようとすると挫折しがちです。大事なのは、なぜその手順で並び替わる(見つかる)のかを、小さなデータで一度トレースして納得しておくこと。一度自分の手で動かした手順は、本番でも崩れにくくなります。

 

データ構造の中身や、各アルゴリズムの動きをもっと丁寧に知りたいあなたは、次の解説もあわせて読んでみてください。

 

3. 解き方のコツ:トレース表を手で書く

3. 解き方のコツ:トレース表を手で書く

この分野で最大の武器になるのがトレース表です。頭の中だけで処理を追おうとすると、変数の値がこんがらがって必ずどこかでミスが出ます。だから、変数の値を紙に書き出しながら追うのが鉄則です。

トレース表とは、たとえばこんなふうに、処理が進むたびに変数の値を1行ずつ書き足していく表のことです。

ステップ i 合計 sum 配列 a[i]
開始時 1 0 5
1回目 2 5 3
2回目 3 8 7
3回目 4 15

 

こうして書き出すと、ループが何回まわるのか、最後に変数がどんな値になるのかが、目で見て確認できます。穴埋め問題でも「ここに入る式は?」を、表の動きから逆算して導けるようになります。

解くときに、あなたが意識したいポイントは次の3つです。

 

トレースで注意すべき3つのポイント
1. 境界条件を確認する(配列の最初と最後、添字が 0 始まりか 1 始まりか)
2. ループの終了条件に注目する(どの値になったら繰り返しが止まるか)
3. 変数の値を毎ステップ書き換える(途中で記憶に頼らず、必ず紙に残す)

 

設問の中心は、大きく2タイプです。ひとつは穴埋め(空欄に入る式や処理を選ぶ)、もうひとつはトレース結果(処理が終わったときの変数や配列の値を答える)。どちらも、結局はトレース表を正しく書ければ自然に答えが出てきます。つまり、トレースが書ければこの分野はほぼ攻略できる、と言ってもいいくらいです。

 

再帰(自分自身を呼び出す処理)が出てきたら、呼び出しの「行きと帰り」を分けて書くのがコツです。呼び出すたびに引数の値を一段ずつメモし、戻ってくるときに結果を組み立て直す——この往復をトレース表で再現できれば、難しく見える再帰も怖くありません。

 

4. 時間配分と練習法

4. 時間配分と練習法

午後試験は150分で5問を解きます。単純に割ると1問あたり約30分。プログラミングはトレースに時間を使う分野なので、焦って雑に読むと一気に崩れます。最初の数分で問題文の処理の全体像をつかみ、そのあと落ち着いてトレースに入る——この順番を守るのが大切です。

本番で時間を味方につけるために、あなたが日頃からやっておきたい練習はシンプルです。

 

STEP 1: 擬似言語の書式に慣れる
IPAの擬似言語は、繰り返し・条件分岐・配列操作の書き方が決まっています。まずは過去問を数問読んで、記号や書き方に「見慣れる」ことから始めます。

STEP 2: 小さなデータで必ずトレースする
解説を読む前に、要素3〜5個くらいの小さな配列で、自分の手でトレース表を書いてみます。手を動かすほど、処理の流れが体に入ります。

STEP 3: 時間を計って過去問を解く
慣れてきたら30分のタイマーをかけ、本番と同じ時間感覚で1問を通します。「読む→トレース→解答」のリズムを体で覚えるのが目的です。

 

練習で最も効くのは、過去問の擬似言語にとにかく慣れることです。最初は1問に1時間かかっても構いません。トレースを省略せず、毎回紙に書き出す習慣をつければ、読むスピードと正確さは確実に上がっていきます。スピードは「慣れ」の関数だと考えて、量をこなしていきましょう。

 

プログラミングは、現場でコードを読むエンジニアにとっては得点源にしやすい分野です。一方で、コードに不慣れな人ほどトレースの練習がそのまま伸びしろになります。午後の選択問題は「自分の得意分野を4問選ぶ」方式なので、練習してみて手応えがあれば、迷わず選択肢に入れておきましょう。逆に、オブジェクト指向の考え方が好きなら オブジェクト指向 系の出題と相性が良いこともあります。自分に合う型を早めに見極めるのが得策です。

 

まとめ: トレースが書ければ、得点源になる

まとめ: トレースが書ければ、得点源になる

ここまでの内容を、あなたが思い出しやすい形でまとめます。

  1. 午後のプログラミングは擬似言語で出題され、暗記より理解とトレース力で得点が決まる
  2. 典型テーマはデータ構造・整列・探索・再帰・計算量。データ構造が土台
  3. 解き方の核はトレース表を手で書くこと。境界条件とループ終了条件に注目する
  4. 練習は「過去問の擬似言語に慣れる」が最優先。30分の時間感覚も身につける

 

「アルゴリズムは難しそう」と身構えてしまいがちですが、やることは紙の上で1行ずつ処理を追うだけ。特別な才能は要りません。手を動かした回数が、そのまま得点に変わる分野です。

 

今日30分でできる、最初の3アクション
1. 擬似言語の基本 を読んで、書式に目を慣らす(10分)
2. データ構造 で、配列・スタック・キューの動きを確認する(10分)
3. 要素3〜5個の小さな配列で、合計を求める処理を自分の手でトレースしてみる(10分)

 

あなたがトレース表を1枚書き上げるたびに、この分野は確実に得意になっていきます。焦らず、小さなデータから手を動かしていけば、プログラミングは午後の頼れる得点源になります。Stepio はあなたの学習を一緒に伴走していきます。