バーチャル情報入試シンポジウム2020春 on YouTube Live(ニューシン2020)

情報入試の実践例 大阪電気通信大学 プログラミングAO入試の導入

大阪電気通信大学 長瀧寛之先生

プログラミングAO入試導入の経緯

大阪電気通信大学では、2020年度入学試験(2019年10月実施)から、プログラミングAO入試を導入しました。実績はまだ1回ですが、導入の経緯や試験環境の話を中心にお話しいたします。

 

まず、プログラミングAO入試を導入した経緯です。本学が社会に対して果たすべき責務の一つとして、「情報通信分野のエキスパート人材の育成」があると捉えており、それを問う入試として通常の学力試験では評価できないような、やる気や適性、情報処理に関する知識・技能などを総合的な視点から測る入試が必要だと考えました。

 

 

こうした背景には、本学が以前から情報教育の強化を重視していることがあります。

 

目に見えるところでは「情報リテラシーの教育の充実」という表現になってしまいますが、その他にも、情報活用能力を高める支援や環境整備を、学部・学科に関わらず進めています。

 

 

同時に、本学ではICT社会教育センターを設立しており、これまでに蓄積してきた情報教育のノウハウや研究成果などを、例えば小中高のプログラミング教育などに社会還元していくという取り組みも始めています。このような経緯から、情報教育の強化という目的の延長上として情報に関する「とがった人材」、特にプログラミング能力に長けた人材の発掘を目的に、このプログラミングAO入試を導入しました。

 

具体的に、期待する受験者については、本学の学びを熱望し、かつICT関連分野に強い関心があることを前提として、特にプログラミング作成の経験とセンスを持っている人材を選抜したいと考えています。ですから、入試そのものに関しても、ここをきちんと測ることができる試験にする必要があります。

 


MoodleとBitArrowを使ったCBTで実施

プログラミングAO入試は本学の3学部5学科で募集することになりました。試験会場は大学のキャンパス内です。

 

 

下図が昨年行った2020年入学試験の概要です。

 

実技と面接を行い、面接では熱意や勉強してきた内容、プログラミングに関する能力や知識を、受験生と教員の対話を通して見極めます。実技をどのような内容にするかを検討した結果、情報の基礎知識の問題を前半に出し、後半はプログラミングの問題を出すことにしました。この試験の出題方式を、コンピュータベースで行うことにしました。

 

 

試験のプラットフォームには、一から新規の試験システムを構築するのではなく、既存のシステムの中からMoodleを採用し、試験用にカスタマイズすることにしました。Moodleは、様々な大学で採用されている学習支援・授業支援のシステムです。

 

基礎知識の問題は、Moodleの「小テスト」の機能を利用して、自動採点形式で出題します。

 

プログラミング問題は、Moodleにはプログラミングに関する機能がないため、本学で開発・公開しているWebプログラミング環境のBitArrowを使用しました。

 

 

Moodleの機能を活用して基礎知識の定着を確認する

具体的な基礎知識の問題に入ります。

 

高校の共通教科「情報」の範囲内から、情報科学の基礎知識、特にプログラミングにつながる分野の基礎知識がきちんと身についているかを確認する問題です。

 

自動採点のため、選択式や単語の記述式の問題形式で構成し、またCBTならではの問題形式も必要に応じて活用します。

 

 

例えば、模擬試験問題の中から、現在ネット上で公開しているものを一つご紹介します。

 

 

これは論理回路、もしくは論理演算の問題です。実際の試験問題では、下にある選択肢の絵の部分がドラッグ・アンド・ドロップできるようになっています。

 

これはMoodleがもともと提供している「ドラッグ&ドロップイメージ問題」形式をそのまま活用しました。今回はランダム問題などには踏み込めてはいませんが、ペーパーテストではできない、CBTならではの試験問題を実現しています。

 

プログラミングでは言語そのものより論理構成やアルゴリズム設計の能力を問う

次にプログラミングの問題です。

 

これは、問題文に対する解答をプログラムとしてその場で作成しなさい、という問題を複数用意しました。

 

 

プログラミングは、この答えを求めなさいと言われて答えをぽんと書くというより、実行と修正を繰り返しながら題意を満たす、つまり目的に沿ったプログラムを作るのが本筋であろうと考えます。それを実際に試験で行えるようにしようと考えました。

 

言語については、入学試験要項には「C言語系」と表現しました。これは、基本的にはC言語をベースにしつつも、単にC言語の知識を求めるのではなく、あくまでプログラミングという論理構成やアルゴリズム設計などができるかを問うものにしたかったからです。

 

ですから、本当に問いたい部分以外では必要な関数や命令等は全て問題文中で説明し、求める知識と関係ないところは予めひな型を用意して、それを基に修正できるようにしました。

 

具体的には、下図のような問題です。今年度の入試ガイドにも例題として載せています。

 

例えば「『1からnまでの整数の中で、3では割り切れるが5では割り切れない数が何個あるかを求めるプログラム』を作ってはみたものの、うまく動かない。どうしたらよいか」というものです。要するに、制御構造にある間違いを探し、修正して目的に沿うプログラムにするというものです。

 

 

下図が実際の画面です。

 

このようにプログラミング環境が提供されて、この状態で、ソースコードを修正します。修正と実行、確認を繰り返して、最終的に問題解答としてのプログラムを作るという問題にしました。

 

 

提示されたものを修正するだけでなく、一から作らせる問題もあります。例えば秒数を入力すると、時間・分・秒を表示するプログラムを作る、といったものです。一部が抜けている状態を提示して、ここにソースコードを追加するという設問です。

 

 

もちろん、既にソースコードに記載されているところを修正しても構いませんが、例えば、『#include <stdio.h>』などという、C言語に特有の部分の入力を求めているわけではありません。よって、修正不要なところは予め書いておき、問いたいところだけを提示する形にしました。

 

実行環境は、BitArrowの中の「簡易C」を使用しました。これは、基本はC言語ですが、動作は微妙に異なるものです。ここには独自の描画用のライブラリが用意されており、これを使用して図形を描画する問題も用意しました。

 

※クリックすると拡大します

 

 

例えばこれは、線を1本引くプログラムがスライドに示された形であるならば、40本の直線を引くためにはどのように拡張すればよいかを問う問題です。

 

※クリックすると拡大します

 

BitArrowの自動採点機能を使って採点を支援

BitArrowには、ベータ版として開発されたものとして、自動採点の機能が搭載されています。これは現時点では一般には公開されていません。今回の試験では、この機能を使って採点担当者を支援する形をとっています。

 

                                                                                                                                    (再掲)
(再掲)

 

具体的には、想定される入力と出力を複数指定しておき、それを全てクリアしていれば○、クリアしていなければ×、と表示します。この結果とともにソースコードがどうなっているのかを合わせて確認し、最終的に人間の目で総合評価するという形にしました。

 

実施にあたっての問題もいくつか存在します。

 

まず、既存のシステムを流用しているため、その機能があまり試験に特化していないという点です。これはいろいろ検討し、運用でカバーしようということになりました。

 

 

試験本体は、小テストの機能を持ち、試験に耐える制御が可能なMoodleをベースにし、プログラミングの環境へはMoodleの問題の中にリンクを張っておいて、解答はBitArrowの画面につなげる形にしました。BitArrowは時間制限の機能がないので、試験時間の終了は他のペーパーテストと同様に試験監督者が現場で告げ、不正行為がないか確認する形にしました。

 

この試験は初めての試みということもあり、まずは周知する必要がありました。

 

具体的には、出題方法についての情報提供を可能な限り行うために、模擬試験問題をオープンキャンパス前の7月と8月に公開しました。

 

基本問題とプログラミング問題のレベルや必要な知識や問題の出題形式が分かるよう提示しています。解答は書いていないため、知りたい人はぜひオープンキャンパスに、と誘導しました。実際に、オープンキャンパスでは問題の解説を行うと同時に、MoodleやBitArrowを使った試験の体験イベントを実施しました。

 

 

試験会場の設置や運営にも工夫が必要。

本試験は大学の一般的な演習室で実施しました。廊下の窓ガラスには画面が反射しないよう、また他人の画面が見えない位置に座席を配置しました。

 

そうすると写真にあるこの大きさの教室でも40人くらいしか入れませんが、人数をたくさんというよりも本当にとがった人材を選抜したいと考えて始めたことですから、その程度の人数であることは想定通りで、実際の運用でもこの環境で十分でした。

 

 

こちらが試験の流れです。本試験前には、操作練習の時間を30分設けました。配布資料に従って、まずは模擬試験のような環境で操作練習をしてもらい、Moodleでの回答方法やBitArrowでのプログラミング作成方法を体験し、操作上のトラブルや疑問点を解消する時間を事前に十分持ちました。

 

また、万一に備えて紙の試験用紙も準備しましたが、今回は幸い使用する必要なく試験を終了することができました。

 

 

これらを踏まえた結果と、今後の展望です。

 

受験結果としては、情報通信工学部の情報工学科が1名、総合情報学部のデジタルゲーム学科が2名、合計3名受験して3名合格となりました。

 

 

人数としてはもう少し受験してほしかった部分はありますが、導入1年目ですので、評価は今後していきたいと思います。ただ、残念なことに新型コロナウィルスの影響で合格した学生はまだ大学に来ることができていないという状況が続いています。

 

しかし、せっかくプログラミングAO入試で入学した学生たちなので、これからの4年間でプログラミングの能力を育成、支援していきたいと考えております。

 

今後は、次年度入試についても実施する予定でおりますが、広報や周知の部分をいかに強化していくかを考えていきたいと思います。

 

 

■大阪電気通信大学 2021年度プログラミングAO入学試験についてはこちら

https://www.digib.net/2021/S/2_12282_DS1/HTML5/pc.html#/page/18

 

■プログラミングAO入学試験 模擬問題はこちら

https://www.osakac.ac.jp/_files/news/files/OpenCampus0721.pdf

https://www.osakac.ac.jp/_files/news/files/OpenCampus_0801-v3.docx.pdf