OECDは、OECD加盟国を中心として15歳を対象とした学習到達テストを3年おきに実施しています。読解力、数学的リテラシー、科学的リテラシーの3分野を中心とした試験で、義務教育修了時点で学んだ知識を実生活にどの程度応用できるのかを測ります。
2018年のPISAでは、読解力が中心分野に設定されており、日本は数学的リテラシーや科学的リテラシーの点数と順位は比較的高いものの、読解力の低下が問題視されました。
文部科学省の「新学習指導要領」にも影響を与えると言われている「PISA」には、2021年からコンピュテーショナルシンキング(計算論的思考、Computatoinal Thinking)に関する問題が追加される予定です。コンピュータサイエンス分野に関する学力が重視される国際的な調査はPISAが初めてのことになりそうです。
では実際、どのような問題が出題される予定なのでしょうか?
以下は、2021年のPISA評価に含めることができるタイプの計算的思考の質問を翻訳したものです。
(原文はこちら)
Computer Science and PISA 2021 - OECD Education and Skills Today
https://oecdedutoday.com/computer-science-and-pisa-2021/
問題について、少し解説してみましょう。この問題はタイルを規則的に並べる問題のようです。画面が左と右のペインに分かれていて、タイルを並べる(tiling)ことを目的にし、これを他の人に指示するための作り方(instruction)を完成させるように指示があります。
ユーザインタフェースとしては、ブロック(アイコン)をドラッグ&ドロップすることで操作します。タイルの作り方については、
for x = 1 to 4
のようなスタイルで書かれていることから、どうやら一般的なテキストプログラミングのスタイルを踏襲していることがわかります。日本語の翻訳版では、「行番号 = 1 から 4 までくりかえす」としました。C言語、BASIC言語、JavaScript、Pythonなどのプログラミング言語を利用したことのある人は簡単かもしれません。
ScratchやViscuitなどのプログラミング経験だけの場合は、もしかしたら理解するのに時間がかかるかもしれません。理由は、変数への代入を x = 1 としていることは、Scratchでは次のように要約されてしまうので、わかりにくいかもしれません。
また、if ~ then ルールがブロックプログラミングでは次のようになります。
このように、プログラミング的思考のもととなる計算論的思考に基づく問題が出題される予定です。プログラミング経験者なら、そんなに難しくはなさそうに思いますが、みなさんどうでしょうか?
もし、難しいと思う人がいるとしたら、その理由としては、プログラミング言語ごとの仕様の細かな違いと、変数の使い方にあると思います。実際のPISAに出題される問題が、このようなテキストプログラミングを前提とした問題になるかどうかはさておき、プログラミング教育の現場で学ぶべきトピックやツールの選び方も重要になってきそうです。
私たち研究グループは、このような問題にも対応する形でスキルの習熟度を測るためのプログラミングテストを開発中です。ぜひチャレンジしてみてください。
プログラミング的思考の基本概念である「計算論的思考」の考え方を「わける」「パターン」「アルゴリズム」「ぬきだす」の4つのパートに分けて問題を出題しています。プログラミング経験がなくても取り組める内容なので、ぜひチャレンジしてみてください。
大学教員。「プログラミング教育」をテーマに教育分野における子どもたちの能動的に学ぶ力の育成に力をいれている。CoderDojo Tokushimaを立ち上げ、主に徳島で活動を行っている。過去にプログラミングスクールTENTOを手伝ったり、IT企業での研修などを担当してきた経験も持つ。1児の父。