1. トップ
  2. ズームイン
  3. ユーバーの「Scratchで小・中学校のプログラミング」Vol.42 <スクラッチで2026共テを解説1>

2026年1月29日

ユーバーの「Scratchで小・中学校のプログラミング」Vol.42 <スクラッチで2026共テを解説1>

ユーバープログラミングスクールの中村里香代表による、小中学校のプログラミング授業で使ってほしいプログラミング言語Scratch(スクラッチ)の学習動画第42回。
今回は、2026年度の共通テスト「情報Ⅰ」のプログラミング問題を2回に分けて解説します。

共通テストのプログラミング問題を見てみよう

1月18日、共通テスト「情報Ⅰ」の試験が行われました。今回も「大問3」にプログラミング問題が出題されました。今年のテーマは「文化祭のゲーム展示における待ち時間」で、昨年同様、課題解決のためのシミュレーションが題材となっていました。

問1で問題の前提条件を整理し、問2と問3で設計を進めながら擬似言語によるプログラムの穴埋めで完成させていく構成です。「Scratchで共通テストの基礎固め1-4」で扱ったように、配列、繰り返し処理、条件分岐、関数などが出題されました。

※実際の出題内容は、大学入試センター等の公式サイトで確認してください。
1回目となる今回は、前提条件の整理(問1)と待ち時間を求めるコード(問2)をScratchと擬似言語を比較しながらポイントを説明したいと思います。

ゲーム展示の待ち時間を整理する(問1)
はじめに出題の前提として、昨年度の文化祭で展示を行ったゲームでの待ち時間を整理しています。図1は1人目から3人目までの体験時間と待ち時間を表しており、体験時間は3分であることが読み取れます。表1は1人目から6人目までの到着時刻、開始時刻、終了時刻、待ち時間を表しています。「?」 の部分は伏せられていて、「ア」「イ」「ウ」の値が出題されています。

また、2人目以降の待ち時間は、「エ」より遅く到着した場合は「オ」、そうでない場合は「エ」、待ち時間の算出は「来訪者の開始時刻」と「オ」の差という説明がありました。


終了時刻は、開始時刻に体験時間(3分)を加算すればよいので、3人目の終了時間は、「開始時刻6+体験時間3」で9(「ア」)です。

5人目の開始・終了時刻を考えると、到着時刻は11分で、直前の4人目の終了時刻13分より早いため開始時刻は13分となります。よって、開始・終了時刻にはそれぞれ 13 と 16 が入ります。6人目も同様に 16 と 19 です。

重要なのは、問題文にある条件『「エ」より遅く到着した場合は「オ」、そうでない場合は「エ」。待ち時間は「本人の開始時刻」と「オ」の差』の読み替えです。

• 『直前の来訪者の終了時刻(「エ」)』
• 『本人の到着時刻(「オ」)』

この2つの値のうち、「大きい方の値」が本人の開始時刻になり、そこから「本人の到着時刻(オ)」を引いた値が待ち時間になるというルールを、表の数値で把握することが第一歩です。

つまり、待ち時間は「本人の開始時刻-本人の到着時刻」なので5人目は「13-11」で2(「イ」)、6人目は「16-12」で4(「ウ」)だとわかります。


2人目以降の待ち時間を求める(問2)
問1での前提整理を元に問2で出題されたのは、「2人目以降の来訪者の待ち時間を求めるプログラム」の完成です。
はじめに使用する変数と配列(Scratchではリスト)、関数を以下の通り整理しました。関数は日本語表記ですが、本文の説明を読めばその役割が理解できるようになっていました。


擬似言語による出題

擬似言語を用いて、昨年度の来訪者6名分の到着時刻を配列 「Touchaku」に代入し、それぞれの開始時刻と終了時刻を求めて、配列「Kaishi」、「Shuryou」に代入するコードの穴埋め問題です。
(07) では変数 「i」 で添字を2から順に増やしながら (08)〜(10) の処理を繰り返します。これは「2人目、3人目…6人目」のデータを順番に作っていくことを意味しています。

添字(そえじ)とは
配列の後ろについている [i] は添字で「i番目の人のデータ」の指定という意味です。
例えば「i」に2が代入されている時、Kaishi[i]は、配列「Kaishi」の2番目の値を指します。
・ Kaishi[i] :本人(i番目の人)の開始時刻
・ Shuryou[i-1] :1つ前の人(i-1 番目の人)が体験を終えた時刻
この「本人 i」と「1つ前の人 i-1」という関係性が分かると、穴埋め問題は解きやすくなります。添字については、以前の記事「共通テストの基礎固め1-4」でも解説しているので、合わせて確認してください。


Scratchのプログラム

この出題をScratchのブロックに置き換えたのが次の図です。Scratchなら「何番目(配列の添字)」を扱っているかが視覚的に分かりやすいと思います。


Scratchで解く

前提(問1)で整理したことをブロックに当てはめてみましょう。

• 開始時刻: 「本人の到着時刻(Touchakuのiばんめ)」と
「直前の来訪者の終了時刻(Shuryouのi-1ばんめ)」の最大値
• 終了時刻: 「本人の開始時刻(Kaishiのiばんめ)」+「体験時間(taiken)」
• 待ち時間: 「本人の開始時刻(Kaishiのiばんめ)」-「本人の到着時刻(Touchakuのiばんめ)」


擬似言語を完成する

Scratchで確認したコードを擬似言語に置き換えれば、解答の完成です。
• (08) 開始時刻: 最大値( Touchaku[i], Shuryou[i-1] )
• (09) 終了時刻: Kaishi[i] + taiken
• (10) 待ち時間: Kaishi[i] – Touchaku[i]


今回の手順で、ゲーム体験における待ち時間の計算が完成しました。 プログラミング問題の攻略で重要なのは、まずは問題文を理解して前提条件を正確に整理すること(問1)です。この基礎的な部分が、その後のアルゴリズム構築のベースとなります。

次回は、出題の核心となるシミュレーション(問3)を解説します。 ゲームの体験時間を1分から15分まで変化させながら、最長待ち時間を比較します。二重ループの構造や、条件判定をScratchでどのように可視化し指導に活かすか、そのポイントを扱いたいと思います。

授業での活用:Scratchによる基礎固めの有用性

Scratchはゲームづくりだけでなく、子どもたちのアイデアの表現、発表、調べ学習など、さまざまな教育活動で活用できるツールです。

難しく見える共通テストの問題も、実は以前の記事(第37回〜40回)で扱った基礎知識と読解力がベースとなっていると思います。

特定のプログラミング言語の構文を暗記していることよりも、「提示された課題に対して、どのような手順で解決策を導き出せるか」という本質的な思考力が問われています。

プログラミング言語のトレンドは時代とともに変化しますが、論理的な思考のプロセスは普遍的です。Scratchのように学習コストが小さく、文法の壁に阻まれることなく試行錯誤できるツールを用いることで、子ども達は「ストレスなく学びを重ね、解決法を思いつく力」を養うことができるのではないかと考えます。

この2回の解説を通して、基礎の積み重ねが難しい課題の解決につながっていることを改めて実感いただけたら嬉しく思います。

スクラッチの使い方
スクラッチで共テ情報の基礎固め1
スクラッチで共テ情報の基礎固め2
スクラッチで共テ情報の基礎固め3
スクラッチで共テ情報の基礎固め4

<筆者プロフィール>
ユーバー株式会社 代表 中村里香
2017年4月、すべての子どもが楽しく学べるプログラミング教育を目指し、ユーバー株式会社を設立。プログラミング教室運営、クラウド型学習サービス「うさプロオンライン」の提供、教材開発、講師育成支援、体験イベントの開催などを行う。環境に左右されない学びの機会を届けるため、教育現場や企業と連携し活動中。

ご質問・お問い合わせ info@yuber.jp 中村宛(ご質問は該当記事のURLを添えてください)

関連URL

「うさプロオンライン」

ユーバー

自律的な学習者への第一歩に 自己効力感の向上 活用事例多数紹介 すらら 活用事例のご紹介
Benesse 言葉の力をつける漢字指導ウェビナー 途中参加・退席自由 参加無料 2/6(金) 18:00~ Zoom開催
株式会社TENTO

アーカイブ

  • ICT要員派遣はおまかせ!ICTまるごとサポート 詳細はこちら
  • 事例紹介作って掲載します。 ICT教育ニュースの楽々 事例作成サービス