トップ > ライブラリ > 計算機 > Webラーニング > 気象予報士過去問ドリル(学科編)

計算機・気象予報士過去問ドリル(学科編)

 現在工事中です。図をクリックすると拡大表示します

 国家資格である気象予報士試験の学習を支援するため、自習用を目的とした過去問等の試験問題 をWeb環境下で学習するシステムの雛型を開発した。開発に当たり、データベース機能はMySQLを採用し、 Web表示などスクリプト言語としてPHPを採用し、学習支援システムのプロトタイプを開発した。

 気象予報士試験では、学科試験の5択問題が出題され、また実技試験では論述式問題が 出題されている。約20年にわたる過去問題があり、毎年ほぼ2回実施され、現時点ではおよそ41回 の蓄積がある。学科試験には一般知識を問う問題と専門知識を問う問題があり、それぞれ 15問、合計30問の5択問題が出題される。

 学科試験問題は気象予報士試験の開始当初から5択問題が出題され、コンピュータを利用したマークシート 方式を利用し、採点を行っている。一方、実技試験は穴埋め問題や論述問題が多い。学科試験の5択問題は Webラーニングの教材として取り扱いやすく、データベース機能による問題の管理や受講者の成績管理など を実施し易い。

 ここでは、これら学科試験の過去問と市販の受験対策図書に見られる模擬問題等を含め、データベース化 を行い、Web上で学習できる、自習用のWebラーニングシステムを開発したので、以下紹介する。自習用であり 問題の採点や成績管理はそれほど充実したものとはなっていないことに注意されたい。

【注】数式表示にはMathJaxを利用しています。IE8以下では表示が遅くなる可能性があります。FireFox などIE8以外のブラウザを利用下さい。

学習支援システムの構築

 フリーソフトを用いた学習システムのテストを別ページで実施した。oq-producerとかWeb問題作成ツールを利用して 気象予報士試験の過去問を実際に適用した。しかしながら、試験問題をHTMLファイルに埋め込む方式であり、自由度があまりない欠点がある。

目的とする学習支援システムとは

 ここで筆者が目的とする学習支援システムというか、ツールの持つべき要件を再掲示したい。

先頭に戻る

学習支援システムの基本構想

 気象予報士・学科試験の問題に見られる多択問題(気象予報士では5択)、および多択問題中に見られる 正誤問題(○×問題)、実技試験問題に一部見られる一問一答問題および穴埋め問題を対象とし、これら過去問 をデータベース化し、上述した目的・機能を備えた学習支援システムを構築する。

 データベースを導入することにより、文字列検索などが自由に行える。また分野を表すフィールド、難易度 を表すフィールド、採点情報・過去の成績などの履歴をフィールドとして持つことで、問題の 抽出・選択に自由度をもたすことができる。
 また毎年実施される試験問題を、データベースに追加することで更新・拡張することも可能となり、過去問の 一元管理が可能となる。

 データベースソフトとして、フリーソフトのMySQLを採用した。採用理由は特にないが、Wordpressなどブログ管理 にも利用されており、たまたま筆者の自宅PC環境でインストールしていたため、これを採用した。

【注】本Webページ(xxx.so-net.ne.jp)では、データベース機能(MySQL)をサポートしていないので、 ここで作成したドリルを実行することはできない。ここではその概要を紹介するに留めている。

 同様に、Webページを記述する言語として、スクリプト言語PHPを採用し、MySQLとの連携を図り、ページ出力の 自由度を確保した。また見掛けを統一するためのCSS(Cascade Style Sheet)を利用し、Webページのスタイル を統一・表示するよう考慮した。

先頭に戻る

データベースの管理

 過去問をはじめ、オリジナル問題をデータベースにアップロードするとき、ブラウザ上で一問毎に 新規作成・登録するのでは作業効率が劣り、また間違い修正作業などが面倒になる。またブラウザア上 からデータベースを追加・変更・修正する管理ページを作成するには手間がかかり過ぎる。

 そのため、データベースのソースとなる過去問を、MS-Excel上のワークシートに記述し、保存し、 これをMySQLの機能を用いインポートすることを想定した。
 実際には過去問の文章をすべてテキスト・ファイルに変換する。このとき注意項目として以下を考慮する。

 そして問題文を識別する分類コード、正解、正誤履歴などのフィールドもMS-Excelシート上に 記述する。MS-Excelを利用することにより、複数セルへのコピー・ペーストが慣れた操作で実行 することができ、一問毎MySQLから入力するのに比べ大幅に省力化することができる。

 データベースの構造自体を変更する必要が生じたとき、MS-Excelファイルの列を追加するだけで 対応でき、不慣れなMySQLのデータベース作成を単純化することができる。

 出来上がったMS-Excelシートを、CSV(Comma Separated Value)ファイルに変換し、さらに漢字コードを UTF8(MySQLなどLinux系ソフトで標準的に利用されている漢字コード)に変換し、 MySQLの外部ファイル実行機能を利用して、CSVファイルを読み込ませることにより、データベース が簡単に構築できる。
 MySQLデータベースを新規作成(create)し、データを読み込む操作を記述したファイル(sk_wdrill.txt) の例をリスト1に掲げる。
 MS-ExcelのワークシートをCSVファイル出力し、UTF8に変換したファイルを"LOAD DATA …"コマンド で読み込みしている。こうしたCSVファイルが複数あるときは、LOADコマンドを連続して記述すればよい。

リスト1:MySQLデータベース作成のための外部実行ファイル
(略)
#
#   File:  sk_wdrill.txt     (UTF-8で記述しています)
#      mysql>source sk_wdrill.txt;
#
-- データベースを新規作成
#DROP DATABASE sample1;
#CREATE DATABASE sample1;

-- 既存データベースを表示
SHOW DATABASES;

-- データベースsample1に接続
USE sample1;

-- 現在のデータベースを表示
SELECT DATABASE();
-- テーブルを新規作成
DROP TABLE sk_wdrill;
CREATE TABLE sk_wdrill (
(略)
-- テーブルを表示
SHOW TABLES;
-- テーブルの構造を表示
DESC sk_wdrill;
--
-- テーブルのインポート
-- 先頭の1データ分(1行)を無視する  先頭の行のみ変な文字列がはいる
-- ダミーのデータをコピーしておく
--
LOAD DATA LOCAL INFILE 'kakomon1_ver20_utf8.csv' INTO TABLE sk_wdrill
  FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' 
  IGNORE 1 LINES
  ( no1,n_type,n_class1,n_class2,n_class3,n_class4,
    no_trial,no_succ,no_fail,point_pct,a_history,n_field,n_level,
    seq_no,question,answer,descrip,a_time,
    ans_sel1,ans_sel2,ans_sel3,ans_sel4,ans_sel5 );

SELECT no,n_type,answer,descrip FROM sk_wdrill WHERE seq_no=12;
--
-- レコード数を得る
--
SELECT COUNT(*) FROM sk_wdrill;
--
(以下略)

 なお、リスト1で先頭の"#"および"--"はコメント行を示しています。
 また外部実行ファイルを実行させるには、リスト1中にコメントで示しているようにmysqlプロンプトから source xxxx; (xxxx: MySQLコマンドを記述した外部実行ファイル名)を実行すると、記述された コマンドが逐次実行されます。
 MS-DOSのバッチコマンドに似た使い方をすることができます。

 データベースの各フィールドの解説はしませんが、"question"フィールドに5択問題文と5つの選択肢、 正解を表示するための仕掛けが一式保存されています。
 一連のMySQLコマンドが正常終了したら、データベースが構築されたことになります。
 読み込ませたCSVファイルを出力した、MS-Excelのワークシートがデータベースの原本になり、 これをオリジナルとして一元管理します。

先頭に戻る

過去問ドリルの紹介

 上で作成したデータベースから、データを抽出し、必要な並べ替えを行うWebコードをPHPで記述し、 ほぼ基本機能は完成しました。
 データベースの全フィールドの出力・表示機能、一括履歴クリア機能などは別途PHPコードで作成して いますが、以下学習支援システムである、ドリル機能に的を絞って内容を簡単に紹介します。

学科ドリルの起動

図1:学科ドリルの起動画面

 データベースから、問題文を抽出し、シーケンシャルに表示するのかランダムに表示するのかなど のトップページを図1に示します。別に市販するわけではないので体裁についてはそれほど 凝った造りにはなっていません。
 3種類の問題文抽出方法が容易されています。先頭は内部のレコード番号を直接指定する方法で、 1件のみ抽出・表示することができます。
次の抽出方法は、年度別(または回数別)に、一般知識問題 かまたは専門知識問題かまたはすべてかを、また前回間違えたか未着手な問題のみを抽出する方法です。 この場合には該当するものが複数ある場合は該当する数が出力されます。「ドリル開始」ボタンでは シーケンシャルに(データベースにヒットした順番に)出題されます。また「ランダム開始」ボタン をクリックすると、データベースでヒットした順番を、ランダムに並べ替えて出題されます。

図2:問題文の表示と解答

 最後の抽出方法は、詳細ソートでデータベースの各フィールド毎に抽出できるよう考慮しています。 まだドリルを使い込んでいるわけではないので、指定方法が過剰スペックになっているかもしれません。

 ドリルとは関係ありませんが、気象予報士試験の受験参考書などにある例題が、過去問にあるのか否か を、この詳細ソートを用いて文字列検索で探すことができます。

先頭に戻る

問題文の表示・解答

 「ドリル開始」または「ランダム開始」をクリックすると、さっそく問題文の表示画面が開き、 図2の画面が表示されます。
 図の例では抽出された問題が30問あり、そのうちの第1問目が表示されています。左側が問題文と 選択肢を表示し、右側に解答欄が表示され、5択問題で5つのラジオボタンが表示されています。

図3:解答の正誤表示(正解のとき)

 問題文中の下から3行目に試験問題の出典が記述されています。
 また下から2行目に「正解」のリンクが張られており、マウスをこのリンク上に乗せる ことにより、正解の番号を表示させることができるよう設定しています。
 サンプルとして、ここ「正解」にマウスを乗せてみてください。 チップスとして、正解のメッセージが表示されます。
HTMLタグを用いて、<a href="#dummy" title="正解:マウスを文字の上に乗せました">正解</a>と記述すると、 マウスを置いたとき titleパラメータで指定した内容がチップスとして表示されます。マウスでクリックすると #dummyというラベルにジャンプしますが、#dummyは未定義ですので、実際にはジャンプしません。
 最後の行は、今までのこの問題のトライアル回数と正解頻度を表示していますが、いずれも 0回であることを表示しています。

 解答欄の、正解と思われるラジオボタンをクリックし、「採点」ボタンをクリックする と正誤が次のページに表示されます。「クリアボタン」は選択肢をクリア(初期設定に戻す) 操作をします。

先頭に戻る

問題の正誤表示

図4:解答の正誤表示(誤答のとき)

 問題の解答が正解した時には、図3に示すように、解答欄に○印が 表示されます。また誤答したときには図4に示すように、×印が表示され、正解が表示されます。

 複数の問題が抽出されたとき、問題文の下のボタンで「次の問題」ボタンで次の問題に とりかかることができます。また今までの解答を保存しないで検索画面(図1)に戻ること もできます。

 選択された問題すべてのドリルが終了すると、結果を保存するか否かを選択し、保存する ときには、正誤の履歴がデータベースに保存されるます。

図5:○×問題の連続表示

 正誤の履歴は、次回の問題文表示でトライアル回数や正解頻度の表示に利用されます。また 検索画面で、正解率が何%以下の問題といった問題のソートにも利用されます。

先頭に戻る

穴埋め問題の連続表示

 学科試験にはないが、実技試験に良く出題される穴埋め問題を、○×問題としてデータベース に取り込んだ例を図5に示す。
 穴埋め問題では、正誤の解答をすることはできないが、正解をリンクで隠すことにより ドリル形式を保つことが可能となっている。
 図5の穴埋め箇所に「§」マークがリンク表示されていて、マウスをこのマークに乗せると 正解がチップスで表示できるようになっている。

図6:一問一答問題の連続表示

 同様に、学科試験では見られないが、実技試験ではときどき出題される記号の意味を 答える問題がある。こうした文章または文字列で解答するときのを図6に示す。 これら問題は筆者のオリジナル作成問で、国際式天気記号など図とか略号の意味を答える 一問一答問題も、データベースに取りりれることが可能である。

 一問一答問題の場合、正解が文字列として埋め込まれているが、解答するときには埋め込まれた文字列 の一字一句を間違いなく解答しないと不正解となるなど欠点がある。
 自習用のシステムであり、知識を自習して身につけるという使い方であれば正誤の成績 にこだわる必要性は少ないと思う。

先頭に戻る

学科試験対策ドリルの現状

 気象予報士試験(第1回から最近の第41回まで)で出題された一般知識および専門知識の 過去問題をとりあえず、データベース化した。

 ただし、その多くは単純にOCRソフトによりテキストファイルに変換しているため、見落とした変換間違いが 残っている可能性が高い。また古い過去問のうち、カラー画像に入手困難なものがあり、白黒コピーからの スキャン画像となり、鮮明度に欠けたり、識別不能なものがある。

 正誤問題、穴埋め問題、一問一答問題では、各種受験参考書に記載されているオリジナル問も データベース化した。また著者のオリジナル問(前出の天気記号や略号問など)もデータベース化 している。実技試験対策として、こうした国際天気記号を覚えることは合格するには必要と考えている。
 また気象庁のホームページにある技術情報で、用語の意味とか観測手法など種々情報があり、こうした 情報も試験対策として身につけておく必要があり、一問一答問題として取り上げ、データベース化している。

 これらドリルを作成したのはいいのだが、受験準備として実際にドリルを運用し、活用する機会がないことが懸念材料の一つである。
 今後、時間が許す限り活用を目指したい。

先頭に戻る

今後の課題

 気象予報士試験のうち、学科試験用のWebラーニング・ツールを独自開発した。また実技試験の論述式問題に対しては、 学習支援システムを構築したいが、その形態をどうすべきか悩ましいところがある。  すわなち、実技試験では多くの図表を用いて、解答を論述したり、作図したり、種々の解答 形式があり、これらすべてに対応するWebツールは実際は不可能と思われる。
 例えば、紙ベースの試験のように、トレーシングペーパーとコンパスを使った作図問題では パソコン上で解答するよう、ラーニングシステムを構築することは、不可能ではないにしろ、 かなりハードルが高く、簡単ではない。
 また論述問題にしても、文章で解答するとき、キーワードが含まれているかどうかなど 正誤判断が非常に困難になる。

 一方、穴埋め問題も毎回出題されているが、これについてはドリル形式でサンプルを作成したので ある程度の対応が可能である。また記号の意味を問う、天気図から値を読み取りなどの問題もそれほど ドリル化は不可能ではないと思う。

 実技試験問題をWebブラウザで取り扱う上で、数多くの図表を交互に参照しなければならないこと があり、別ブラウザで図表を表示させておき、問題文を読むなどの工夫が必要になる。
 トレーシングペーパーやコンパスを用いた作図問題については、問題文と正解をWeb表示 するに留め、過去問のWebラーニング教材にしたサンプルを目下作成している。
 こちらを実技試験の過去問サンプルはこちらを参照されたい。

先頭に戻る

Literature Cited

 関連ファイルのダウンロードは、こちら(未リンク)で取り扱っています。

先頭に戻る