PCガジェットはいつでも安いAmazonで!

情報1の共通テストから高校生と中学生のプログラミングの勉強に必要なことを逆算する

スタッフ厳選!日本HP おすすめパソコン

icon icon

今回は大学入学共通テストの「情報Ⅰ」に関してどういう勉強をすればいいのかをプログラミングの視点から解説します。

目次

共通テストのプログラミング問題はどの程度の技量を必要とするのか

2025年の情報Ⅰの大学入学共通テストでは第2問の「b」に「モンテカルロ・シミュレーション」が出題されました。

釣り銭シミュレーションの問題です。

釣り銭シミュレーションに関しては当サイトで以下の記事でやり方を解説しています。

あわせて読みたい
文化祭屋台の釣銭問題をモンテカルロシミュレーション 当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。 当サ...

難易度としては「オペレーションズ・リサーチ」の基礎的な内容の専門書を読んで自分でプログラミングしてみたくらいのレベルなら全問回答できるくらいですね。

共通テストを超えるくらいになるにはどう勉強すればいいのか

その上で、あえて国家試験に例えてわかりやすく言うならば、まず必履修科目の「情報 I」を履修すると「ITパスポート試験」はかなりの確率でクリアでき、さらに「基本情報技術者試験」に受かる生徒も一定数出てくるレベルだと思います。

レバテック, 工学院大学附属中学校・高等学校 校長 中野 由章, 「情報 I・II」を学んだ高校生の技術レベルってどのくらい? 元エンジニア校長にホントのところを聞きました【フォーカス】

私も基本情報技術者の資格を持っていますけど、やはり基本情報技術者レベルに大学入学の学生のレベルを引き上げたいというのが狙いでしょう。

大学で初めてプログラミングをやらせると「意味がわからない」と拒絶反応を示す学生が結構います。

私が大学生だった頃のプログラミングの授業でも「できる人」のプログラムを授業中に写して提出して単位をもらっていた学生が全体の2/3くらいいました。

大学からいきなり、さあ「条件分岐」「繰り返し」でプログラムを作ってくださいとやると全くできるようにならない生徒が相当います。

そのような学生が研究室配属されてプログラミングが必要なテーマに取り組ませると「完全にお手上げで詰んだ」となる人が一定数います。

それを避けたいのでしょう。

基本情報技術者試験の合格への傾向は昔から「運ゲー」か「大学の情報科の内容の先取り」

私が基本情報技術者を受験したときは確か「ダイクストラ法」の最適経路探索アルゴリズムが出題されていましたね。

2025年の共通テストで「釣り銭シミュレーション」が出題されたことから、やはり傾向としては「特定の頭の傾向を持った人だけがわかる運ゲー」か「大学の情報科でやる内容の先取り」が必要です。

どういうことかと言うと、問題文をわざと難解にして高速に「暗号解読」できる人だけが出題の意味がわかるようにして足切りして点数調整をするというのが「運ゲー」の中身です。要するに問題を作ったどこかの先生の思考に近い頭の人ならわかる抽象的な言葉を並べて、特定の頭の運び方をする人だけに点数を与えれば点数がうまい具合にバラけるでしょうという内容。あるいは暗号化された問題文を高速に解読できるかという話。そこがわからないのは「国語力」が足りないからだと説明して、うまいことブラックボックスに投げているわけです。

次が「大学の情報科の内容の先取り」。ダイクストラ法も釣り銭シミュレーションも結局「オペレーションズ・リサーチ」という大学の情報科でやる内容です。

要するに「発展的な内容を学んでいる人」だけを選抜することで「教科書レベルだけやってきた人」との差をつけて点数調整しているわけですね。問題文を初めて読んだだけでモンテカルロ・シミュレーションの中身が想像できる人は一部の相当頭脳が優秀な人だけですし、それ以外に頑張って自分で大学の内容まで勉強している人なら大学に入ってきてほしいわけですから、そういう人を選抜しているのです。

どうすればいいのか

まあ今の所基本情報技術者試験くらいの内容のレベルが出題されるようなので(塾などで対策された学生が増えて全体のレベルが底上げされてくると応用情報技術者レベルの問題も出てくるでしょう)、「大学の情報科の勉強の先取り」がまず必要です。

具体的には「オペレーションズ・リサーチ」関係の基礎と大学でやる「アルゴリズム」の科目で基本的な内容は作れと言われればすぐ作れるくらいのレベルが必要です。「二分探索」とか「ボイヤー・ムーア法」くらいは「問題文でちょっと解説した」くらいで高校でやっていなくても出題されて、実際はその学問を学んだ人しかできないように点数調整するくらいは容易に想像できます。ネットワークフローとかグラフ理論あたりからも出題される可能性があります。

その上で「基本情報技術者試験」の午後試験の過去問をたくさん解くくらいは必要でしょうね。もしかしたら応用情報技術者の午後試験まで手を出すくらいが必要になってくるかもしれません。こうなってくると自分が自主的に学んだ大学の情報系の学問がうまいこと共通テストで出題されるという「運ゲー」になってきます。今も昔も差をつけるためのテストっていうのはこんなもんなんでしょうね。

これから数年かけて共通テストの様々な問題が出題されていくでしょうから、それを過去問に「試験に慣れる」という訓練も必要かもしれません。わざと難解にしてある文章をどう解読するのかという訓練も多少点数に関係してくるでしょう。ある種の暗号解読です。

戦いは中学生のうちから始まっている

まず高校に入ってから「条件分岐」と「繰り返し」をプログラミングの授業で習うくらいだとちょっと遅いです。

基本的に高校で全くプログラミングをやらなかった高校生がIT系の専門学校で3年くらいプログラミングだけ教えられて安定的に取れるかどうかというのが基本情報技術者です。

つまり最低でも3年くらいプログラミングを学んでいないと厳しい。

高校に入って他の科目の勉強の片手間で大学の情報系の内容を頭に入れるのは相当大変です。なぜならそれは「プログラミングができる人」が2・3年くらいかけて大学で学ぶ内容だからです。

つまりプログラミングの基礎ができる、基礎的なアルゴリズムが作れるくらいのレベルになるのに3年。そこから高校で大学の勉強の先取りと基本情報技術者の午後試験の過去問を解く訓練をするのを想定するとさらに3年。

おそらく中学生くらいの段階で「高校の情報Ⅰ」の内容は頭に入っているくらいのレベルになっていないと厳しい。

高校の「情報Ⅰ」では「基本的なプログラミングができます」くらいまでの勉強をします。しかもそれでも「HTMLとJavaScript」でWebページを作れる、PythonのWebAPIを使って機械学習システムが作れるくらいのレベルを想定しています。

中学生くらいまでは「Scratch」でなんとなくプログラミングができれば許されるわけですが、その年代にPythonの基本的な文法ができる、PythonのWebAPIが使えて、HTMLとJavaScriptでホームページを自分で作れるくらいのレベルじゃないと高校に行ってから共通テスト対策をするのが難しい。

高校生になったら大学の情報科でやる内容を先取りして勉強します。あとは並行して基本情報技術者の午後試験の過去問などで対策します。午前試験の内容とも共通テストは被っているというか内包されているので、午前試験の勉強も行ったほうがいいですね。

まあこのくらいやれば「5割〜6割」くらいは安定して点数をとれるんじゃないでしょうか。残念ながら「難解な問題文」を解読できるかが一般の頭の人には「運ゲー」になってくるので、対策のしようがありません。一生懸命国語の現代文の勉強をして、たくさん読書しましょうくらいしかアドバイスできないです。

暗号解読の入門書。

暗号の進化の歴史と解読の実際について解説している。

共通テストの問題分は一種の暗号文の解読なので教養として読んでおくといいかも。

価格は624円 税込~(2025/04/19時点のKindle)

暗号解読の入門書。上の上巻に対する下巻。

暗号の進化の歴史と解読の実際について解説している。

共通テストの問題分は一種の暗号文の解読なので教養として読んでおくといいかも。

価格は663円 税込~(2025/04/19時点のKindle)

中学生向けにおすすめなのがZ会の通信講座

中学生のうちから中学での技術・家庭の「情報」対策ができて、高校の先取りとしてPythonやJavaScriptを教えてくれる通信教育としてZ会の講座があります。

 

Z会プログラミング講座/資料請求はこちら

 

中学生向けは「教科実践編」とさらに発展的な「コンピュータ活用編」があります。コンピュータ活用編ではプログラミング(Scratch・Python)、ウェブエディタ(HTML・CSS・JavaScript)などは当然ながら網羅されており、その他にサウンド(Sonic Pi)やアニメーション作成(GIMP)、データ分析(Calc・Mathematica®)など色々なITの体験をさせることを狙っています。

おそらく中学の情報でPythonを使う課題が出たときもつまづかないようにということでPythonを入れているように思いますが、高校でゼロからPythonを始めると授業で「できる人のプログラムを写すだけの人」になりやすいので、中学生のうちから高校の先取りをする狙いもあるでしょう。

Scratchと同じ情報処理がPythonで書ければ共通テストの基本的な「条件分岐」と「繰り返し」はある程度できるので、そういう意味でも中学生でPythonが使えるというのは結構いいんじゃないでしょうか。

通信講座なのでパソコンスクールに通うより安価に対策できる傾向があります。

Z会は通信講座大手なのでその意味でもある程度学習効果が安定的に期待できると思います。

もし通信講座やスクールに通わずに独学するならPythonの文法の基礎とアルゴリズムの入門書のプログラムを自分で作ってみるなんてやり方もあります。

Pythonの文法の入門書。

私はこれでPythonを勉強しました。

とりあえず本の指示に沿ってプログラムを作ってみれば一通りの文法がわかる。

価格は2,640円 税込~(2025/04/19時点)

Pythonによるアルゴリズムの入門書。

ソートとか検索とかの基本的なアルゴリズムがPythonで学べる。

全部独学しようとすると挫折するのでわかるところだけ解く。

価格は2,640円 税込~(2025/04/19時点)

高校生向けにおすすめな参考書

高校生向けの共通テスト対策としては「基本情報技術者」試験のプログラミング対策が有効と思われます。

以下の2冊辺りから始めるといいかもしれません。

アルゴリズムについて詳しく解説した本。

全18章542ページの大ボリューム。辞書的な使い方が良いと思います。

価格は3,300円 税込~(2025/04/19時点Kindle)

基本情報技術者のプログラミング関係の問題の対策書。特にアルゴリズムの対策になる。

このくらいは対策しておいて損はない。

全く同じ問題は出ないが試験問題の慣れは重要。

価格は2,200円 税込~(2025/04/19時点)

オペレーションズ・リサーチ系も共通テストで出るようなので、以下の本がいいかもしれません。

超初学者向けにオペレーションズ・リサーチを解説した入門書。

このくらいのレベルでも読んでおけば共通テストで解ける問題は増えると思われる。

釣り銭シミュレーションもダイクストラ法も出てくる。

価格は3,080円 税込~(2025/04/19時点)

プログラミングできる端末なら何でもいいので高校ではPythonを勉強する

Pythonができれば擬似言語によるプログラミングの問題に対応しやすくなります。

サンプル問題のプログラミングに関する問いでは,Python の表記に似た大学入試センター独自の疑似言語である DNCL(センター試験用手順記述標準言語)が使用されている。

〔……〕

Python と DNCL は一対一で対応しているため,生徒も分かりやすいという感想が多い。

井手 広康, 情報Ⅰのプログラミング教育における言語選択に関する考察, 研究発表Ⅱ-3(第17回情報教育合同研究会)

PythonはiPadでも使えます。Google Colaboratoryを使ってください。無料です。

もしもっと本格的にPythonを実行したいなら以下のパソコン関係の記事もご覧ください。プログラミング学習用のパソコンを解説しています。

WindowsにPythonをインストールすれば使えます。

Pythonの文法の入門書。

私はこれでPythonを勉強しました。

パソコンでWindowsやMacにPythonをインストールする方法も書いてあります。

とりあえず本の指示に沿ってプログラムを作ってみれば一通りの文法がわかる。

価格は2,640円 税込~(2025/04/19時点)

複合科目化しているのでテスト勉強だけでは突破できない

最後に色々と共通テスト対策の方法を述べてきましたが、出そうなところだけ対策したから試験は万全かと言われれば「万全ではない」としか言えません。

結局「プログラムは条件分岐と繰り返しを組み合わせたものだ」ゆえに「この2つの要素をちょっと説明すればあとはあらゆるプログラムが作れる」という理論のもと、「あらゆる方面からのプログラム」が出題される可能性があります。

そうなるとテスト対策も大事ですが、常日頃から様々なことに興味を持って、自分でそれをIT技術で解決するような取り組みが必要かもしれません。

実際情報Ⅰや情報Ⅱでは身の回りの課題を情報技術でどう解決するか探求するような方向に重きが置かれていて、プログラミングの基礎を教えたらあとは色々な課題をどう解決するか考えさせるみたいな内容が多いです。

自分で様々なITの経験を積むことでその勘所を獲得して、それができれば共通テストが解けるみたいな理屈のように見えます。

結局常日頃から何らかの課題意識をもって生活してそれをどうすれば解決できるのか調査・実験で明らかにするという経験がベースのスキルとして必要なように思います。

テスト勉強だけでなく、色々なことに興味を持ってその解決を考えるというのが地味に必要かもしれませんね。

まとめ【中学生くらいからPythonを学んでおきましょう】

今回は大学入学共通テストの「情報Ⅰ」に関してどういう勉強をすればいいのかをプログラミングの視点から解説しました。

中学生くらいからPythonが使えるというのが一つの大きな人生のターニングポイントのように思います。

できれば中学生のうちからPythonの勉強をしておくと結構違うんじゃないでしょうか。

プログラミング問題だけ試験で飛ばすというのはもったいないですよ

目次