高校の新教科「情報Ⅰ」の模試があったそうです。

デフォルトアイキャッチ

みなさん、こんにちは。さいたま市のプログラミング教室「ツクリウム」です。

さて、今回は少しずつ迫ってきた2025年度の大学入試で始まる大学入試共通テスト情報Ⅰについです。(情報Ⅰは国公立大学の受験にはほぼ必須です。)

と、いうのもニュースで予備校が情報Ⅰの模試を始めたというニュースを見かけたからです。


【日本初】大学入学共通テスト「情報Ⅰ」体験模試 多くの高校生がプログラミング問題に苦戦

https://kyodonewsprwire.jp/release/202302283375

さて、この記事によると、約10000人ほどが模試を受け、平均点は46.1点で、特にプログラミング部分の点数が平均得点率が30.8%(25点中7.7点)と、実際にプログラムを作ったり穴埋めをする問題で苦戦したとのことでした。

情報Ⅰの模試の結果。平均点46点。プログラミング部分が弱い。
引用:https://kyodonewsprwire.jp/release/202302283375

これについては予想どおりかな、というのが率直な印象です。

なぜなら情報Ⅰの教科書では多少の違いがあっても「全体的にさらっと外観をなぞる」という内容ですし、それに加えて、少ない時間数や足りない教員の状況では、実際に手を動かしてプログラムを作ったり、演習をする時間が圧倒的に少ないからです。そうした状況を考えれば、できないのは当然です。

たとえば紹介されていた掃除機ロボットの問題を見てましょう。これは一部しか紹介されていないのですが以下の通りです。

画像

情報Ⅰの模試の問題
引用:https://kyodonewsprwire.jp/release/202302283375

問題を読んで、要は、ぐるぐるっと回りつつ、徐々に走る長さが大きくなるプログラムを考えればいいのだな、気づくことができれば解けるタイプです。あとは選択式なので、条件を当てはめつつ処理をなぞっては適切な答えを埋めていけば解けます。練習していれば解けるサービス問題です。(ただ、残念ながら多くの高校や予備校ではその解き方を教えてくれるところは少ないのが実情ですが・・・)

問題が一部しか見れず、言語も疑似言語なので、想像するしかないのですが、スクラッチやPythonで書くとこのようなコードになると思われます。

スクラッチのコード

Scratchのコード

Pythonのコード

import turtle

# ウィンドウの初期化
window = turtle.Screen()
window.setup(width=600, height=600)
window.bgcolor("white")

# タートルの初期化
t = turtle.Turtle()
t.speed(1)
t.pensize(3)
t.pencolor("blue")

#変数の初期化
step=30 #基本となる進む長さ(ピクセル)
size=6
x=0
n=0
# 描画処理
while x<6:
    x+=1
    n=0
    while n<2:
        t.forward(step*x)
        t.right(90)
        n+=1
t.forward(step*x)

# 終了処理
turtle.done()

どちらも基本的には同じ処理ですが、Pythonのコードで説明をしますと以下の通りです。

このPythonスクリプトは、Python標準ライブラリのturtleを使って、タートルグラフィックスで図形を描画するものです。

1.まず、import turtleでturtleモジュールをインポートします。そして、window = turtle.Screen()で、ウィンドウを作成し、その幅と高さを設定します。ウィンドウの背景色は、window.bgcolor("white")で白色に設定されます。

2.次に、t = turtle.Turtle()で、タートルを作成します。t.speed(1)でタートルの描画スピードを設定し、t.pensize(3)でペンの太さを設定します。t.pencolor("blue")で、ペンの色を青色に設定します。

3.その後、step、size、x、nといった変数が初期化されます。stepはタートルが進む長さを示し、sizeは図形の大きさを示します。xはwhileループ内で使用され、nはタートルが図形を描画するために必要なカウンター変数です。

4.そして、whileループが始まります。このループでは、xが6に達するまで、以下のコードが繰り返し実行されます。

5.まず、xが1ずつ増加し、nが0にリセットされます。次に、nが2に達するまで、以下のコードが繰り返し実行されます。

6.これにより、タートルはstep*xの長さだけ前進し、90度右に向きを変えます。これが2回繰り返されるため、タートルは正方形の一辺を描画します。この処理が6回繰り返し、渦巻き状に描画します。

7.最後に、t.forward(step*x)でタートルは最後の一辺を描画し、turtle.done()で描画を終了します。
したがって、このスクリプトは、turtleグラフィックスを使用して、青色のペンで渦巻き状の軌跡を描画するものです。
コードの解説

・・と、解説は以上です。

難しいのは二重ループで処理を行うという点だと思います。何もトレーニングや練習を受けずに初見で問題を解くとなるとやはりどうしてもセンスが必要になります。ただ逆にいえば、これは努力さえ積み重ねることができれば満点が取れる問題でもあるのです。

今、様々なAIが生まれ、世の中を変えつつあります。そして、そうしたAIをうまく使いこなすためにはプログラミングができるにこしたことはありません。ツクリウムでは大学入試にもつながるようにPythonコースを設定しています。もし機会があればPythonを学んでみましょう。自分の世界や可能性を広げることができますよ。


入会、または、体験会のお申込み

プログラミング教室「ツクリウム」ではスクラッチやPythonなどを学ぶ、小学生、中学生、高校生、主婦やシニアなどの初心者向けの講座を通学形式やオンライン形式で開講しています。
お問いあわせ・ご入会・体験会のお申込みは下記のリンクからお願いいたします。

画像をクリックするとお問い合わせページにジャンプします。

お問い合わせアイコン

https://forms.gle/nzsFZqiCX