【現役エンジニア直伝】英語長文のように「雰囲気」で読んではダメ? 情報Iのプログラミングで必須の「変数のトレース」攻略法
こんにちは!オンライン家庭教師のこばやしです。
普段はフリーランスのITエンジニアとしてシステム開発を行いながら、中高生向けに「情報I」「理系数学」「英語」を指導しています。
前回の記事では、「プログラミングのコードは英語の文章のように読める」というお話をしました。 しかし、いざ共通テストの「情報I」のプログラミング問題を解くとき、英語の長文読解と同じ感覚で読んでしまうと、必ず大きな落とし穴にはまります。
今日は、情報Iのプログラミングで点数を大きく左右する最重要テクニック、「変数のトレース」について、現役エンジニアの視点から解説します。
■ プログラムの「雰囲気読み」は絶対NG!
英語の長文問題を解くとき、わからない単語が1つや2つあっても、前後の文脈から「たぶんこういう意味だろう」と推測して読み進めることがありますよね。いわゆる「スキミング(拾い読み)」や「雰囲気読み」です。
しかし、プログラミングにおいてはこの「雰囲気読み」は絶対にNGです。
コンピュータは空気を読みません。書かれた命令を上から1行ずつ、バカ真面目に実行していきます。
もしあなたが途中の1行を「ここはまあ、なんとなくこんな処理だろう」と読み飛ばしてしまったら、最後に出力される結果は全く違うものになってしまいます。現場の仕事であれば、これがシステムエラー(バグ)の直接的な原因になります。
■ プロもやっている「変数のトレース」とは?
プログラムがどのように動いているかを正確に把握するために、「変数の箱の中身が、1行進むごとにどう変化していくか」を順番に追いかける作業のことを「トレース(追跡)」と呼びます。
「プロのエンジニアなら、パッと見ただけで頭の中でスラスラ計算できるんでしょ?」と思われるかもしれませんが、全くそんなことはありません。
複雑なループ(反復)処理などが出てくると、プロのエンジニアでも頭の中だけで数値を記憶しておくのは不可能です。実務でも、バグの原因を探すときは、泥臭く1行ずつ変数の変化を追跡しています。
情報Iの試験でも、ゆっくり、決して焦らずに、1行ずつ確実に追っていく根気強さが求められます。
■ 頭がパンクする前に「表」を作ろう
では、具体的にどうやってトレースをすれば良いのでしょうか?
絶対に計算ミスを防ぐための、現役エンジニアもおすすめする最強の鉄則があります。
それは、「変数の変化を表形式で書き出すこと」です。
問題用紙の余白に、登場する変数の名前(x や y、i など)を横に並べて表を作ります。
そしてプログラムを1行読むごとに、値が変わった変数の下線を引っ張って古い数字を消し、新しい数字を書き込んでいくのです。
頭の中のワーキングメモリ(記憶容量)を使わずに済む
途中で計算を間違えても、どこで間違えたかすぐに見直せる
ループ処理の「法則性」に気づきやすくなる
表を書くのは少し手間に感じるかもしれませんが、急がば回れ。これが一番確実で、結果的に一番早く正解にたどり着く方法です。
■ 「泥臭く論理を追う力」を育てます
情報Iのプログラミングは、ひらめきやセンスで解くものではありません。
「ルールに従って、1行ずつ泥臭く論理を追跡する力」が問われています。これは、理系数学の複雑な計算過程を追う力とも全く同じです。
私の授業では、この「変数のトレース」の正しいやり方、表の効果的な書き方を、実際の共通テストレベルの問題を使って徹底的にトレーニングします。
「プログラミングの問題を見ると、どこから手をつけていいか分からない」
「頭の中で考えて、いつも途中でパニックになってしまう」
そんな方は、ぜひ一度体験授業にいらしてください。 現役エンジニアと一緒に、「表」という強力な武器を使ってプログラムを攻略しましょう!
【プロフィール】 こばやし|納得感を大切にするフリーランスエンジニア
北海道大理系卒。現役のITエンジニアとして活動しながら、オンライン家庭教師として中高生に「情報I」「数学」「英語」を指導中。企業の新人ITエンジニア研修のメイン講師も務めるプロが、「仕組みから理解する」論理的な指導を行います。