【情報I】試験のプログラム問題、パターンは決まっている。現役エンジニアが型を解説
こんにちは!オンライン家庭教師のこばやしです。普段はフリーランスのITエンジニアとして働きながら、中高生に「情報I」「理系数学」「英語」を教えています。
共通テスト情報Iの問題の中でも、「擬似言語のプログラム問題を見ると身構えてしまって、どこから手をつければいいのか分からない」という声をよく聞きます。問題文を読んでいるうちに、頭の中がこんがらがって手が止まってしまう。そんな経験はないでしょうか。
でも、安心してください。手が止まってしまう原因は、才能でも知識不足でもありません。ただ「読み方の型」を知らないだけなんです。逆に言えば、その型さえ身につければ、プログラム問題は一気に得点源に変わります。
■ 試験のプログラムは「3つの部品」でできている
まず知っておいてほしいのは、試験に出るプログラムが、たった3つの部品の組み合わせにすぎないということです。
その3つとは、変数(値を入れておく箱)・条件分岐(もし〜ならの判断)・繰り返し(同じ作業を何度も回す)です。どれだけ長くて複雑に見えるプログラムも、突き詰めればこの3つが組み合わさっているだけ。まずは「難しそうなコード」ではなく「3つの部品の集まり」として見る目を持ちましょう。
■ 解く鍵は「トレース」、値を手で追うこと
では、その組み合わせをどう読み解くか。答えは「トレース」です。トレースとは、変数の値がプログラムの進行に合わせてどう変わっていくかを、一行ずつ追いかけることです。
ここで大事なのは、頭の中だけでやろうとしないこと。私は生徒に、必ず紙に変数の表を書いてもらいます。「iが1のとき、合計はいくつ?」「次にiが2になったら?」と、値を一つずつ書き出していく。地味に見えますが、これが一番確実で、一番速い方法です。
■ 現役エンジニアも、まったく同じことをしている
「そんな面倒なことを?」と思うかもしれません。でも実は、現役のエンジニアもまったく同じことをしています。
私が長年携わってきた金融決済システムの現場では、バグ(プログラムの不具合)を見つけるとき、コードを上から順に実行して変数の値を追う「デバッグ」という作業を毎日のようにやっていました。プロでも、頭の中だけで複雑なプログラムを完璧に追うことはできません。だからこそ、値を一つずつ確かめる。トレースは、試験のためのテクニックではなく、プロの現場の基本動作そのものなんです。
■ 頻出の「型」を知れば、怖くない
さらに、試験のプログラムには「よく出る型」があります。代表的なのは次の4つです。
・合計を出す:数を順番に足していく
・最大値・最小値を探す:今までで一番大きい(小さい)値を覚えておく
・個数を数える:条件に合うものが出るたびにカウントを1増やす
・探索する:目的のデータを順番に探していく
問題を見たとき、「あ、これは合計を出す型だな」と気づけるようになると、初めて見るプログラムでも一気に見通しが立ちます。パターンは限られているので、練習で必ず慣れることができます。
■ このトレース力は、一生使える
一行ずつ値を追い、順序立てて処理を理解する力は、プログラミングだけのものではありません。物事を筋道立てて考える力そのものです。数学の証明でも、実験の手順でも、仕事の段取りでも、この「順番に確かめていく」姿勢は必ず役に立ちます。
私の授業では、擬似言語の問題を必ず紙にトレースして解く習慣をつけてもらいます。暗記ではなく「動きを目で見る」ことで、生徒は「あ、こう動いてたのか!」と自分で納得できるようになります。
・「プログラム問題を見ると手が止まってしまう」という方
・「トレースのやり方が分からない」という方
・「擬似言語にまだ慣れていない」という方
そんな方は、ぜひ一度体験授業にいらしてください。現役エンジニアと一緒に、値を追う「型」を身につけて、プログラム問題を得点源にしましょう!
【プロフィール】
こばやし|納得感を大切にするフリーランスエンジニア
北海道大卒。約10年間にわたり金融決済システムなどの基幹開発に携わった後、フリーランスのエンジニア・IT講師として独立。企業の新人IT研修のメイン講師も務めるプロが、「仕組みから理解する」論理的な指導を行います。
この先生のおすすめコース
- 共通テストで「情報I」が必要な国公立大・難関私大志望の方
- 「プログラミング」や「データの分析」が苦手で、暗記に逃げている方
- 将来IT系に進みたい、または現役エンジニアから実学を学びたい方
このブログに関連するオンライン家庭教師はこちら
情報/プログラミングのおすすめの指導コース
- 国公立大学への進学を考える高1生以下の方
- 新科目の追加に不安な方
- 情報系を専攻する大学・学部に進学したい方
- 情報系のことに興味がある生徒様・AI分野に興味がある生徒様
- AIで将来世界を変えたい生徒様
- 数学が好きな生徒様
- 情報系のことに興味がある生徒様・AI分野に興味がある生徒様
- AIで将来世界を変えたい生徒様
- 数学が好きな生徒様
- 『情報I』の勉強で、どこから手をつけていいか判らない人
- 共通テスト過去問をみても解けない人
- 国公立大志望(情報が必須)の人
- 生成AIの使い方を学びたい、活用したい方
- 生成AIを使ってアプリ開発をしたい方
- 生成AIの正しい使い方や危険を学びたい方