Google Apps Scriptで、小テストをぼこぼこ作る①

GASで小テストを自動作成したい①(データベース作成)

はじめに

Googleの提供する、Google Formで、小テストができるんだよ! しかも自動採点までできるぜ! みたいなことを知ったのは数年前で、でもまあセキュリティの問題とかで使う機会はないなあ、とか思っていたのですが、この状況を受けて、けっこうG Suiteとかも導入される学校も増えてきたようで、もし参考になるなら、と思って書きます。

とりあえず、ぼくはプログラミング初心者なので、たぶんもっとよいコードの書き方はあると思いますけど、逆に言えば素人でもこういうことはできるんだなあ、くらいに緩く読んでもらえれば幸いです。

あと、続くのかもわかりません。

気が向いたら、追記していく予定です。

やりたかったこと

  • いちいちGoogleFormで質問作るのはだるいので、スプレッドシートにデータ入れて、そっから勝手に小テスト作って欲しい。
  • 定期的にランダムにテストを作成して欲しい。
  • できれば自動採点してフィードバックまで勝手にやってほしい。(これは現状難しいことがわかった)

GoogleFormで質問いっこずつ作るのはかなりだるい

GoogleFormで小テストを作ること自体は、そんなにハードルが高くないです。

たとえば公式の説明をよめば、簡単にできると思う。

参考 Google フォームでテストを作成、採点する

あと、解説したサイトの情報とかも参考にすれば良いと思う。

参考 Google フォーム で小テストを実施&集計する方法 参考 自動で採点・結果通知もできる!GoogleフォームでWEBテストを無料作成する方法

ただ、これ、いっこいっこ質問を作っていくのはだるいんですね。

特に、点数の設定とか、解答の設定とかするのだるい。

そんなわけでGASを使って自動化しよう!

ということになります。

考えた手順としては、

  1. Googleスプレッドシートに問題リストをデータベース形式で作成
  2. Googleスプレッドシートから小テストのフォームを作成
  3. 事前に用意している小テスト用のフォルダに保存

といったぐあい。

GASを使うのは、2と3です。

GASについては、この本を買って適宜参照しました。

ただ、実際には1のデータをどうするのか、っていうのがいちばん問題になるところかもしれない。

この問題データの準備がまじでたいへん。

どっかにデータが転がっていればいいのですけど、データにも権利関係のことがあるので、何をどう使うかってのは少し考えないといけません。

ただ今回は、これはあるものとして話を進めます。

さて、この記事は1の話だけです。

とりあえずデータベースをつくる

問題のデータベースを作るために、必要な項目を1行目の各列に入力していきます。

こんな感じにしました。

ランダム数値問題ID問題形式番号補足フィードバック正答選択肢1選択肢2選択肢3選択肢4

表の形式だと見にくいかもしれないので、以下、箇条書きで列挙しときます。

  • ランダム数値
  • 問題ID
  • 問題形式番号
  • 問題文
  • 補足
  • フィードバック
  • 正答
  • 選択肢1
  • 選択肢2
  • 選択肢3
  • 選択肢4

ランダム数値

これは問題の順番を入れ替えて、今回の小テストに使う問題を上から順にランダムに並べ直すために使います。

=RANDBETWEEN(1,1000)

が入力されています。

並べ替えについてはGASで操作します。

問題ID

まあ、あってもなくてもいいんですけど、たまに最初の順番に並べ直したい時もあるかもしれないので、通し番号でふっとくと便利なんじゃないかな。

まあ、問題が偏ってるとかもわかるかもしれない。

あと、すでに出した問題かどうかを判定するのにも使おうと思えば使えると思う。ぼくはそこまでやろうとは思わないけど。

問題形式番号

GoogleFormでは、回答の方法がいろいろあります。

記述式とか、選択式とか、グリッドもできちゃう。

だから、この問題は記述式として作りたい、とか、この問題は選択式として作りたい、みたいなのにも対応できるようにしてます。

問題文

これは質問文。このへんもやや悩ましい。

説明というのがGoogleFormでは設定できるので、ぼくはそっちのほうに設問を書き、質問の方には問題文を書く、という対応してみました。これがいいのかは正直よくわからん。

補足

これは説明の部分に入る文章。

上に書いたようにぼくの場合は設問を書く場所として使う。

フィードバック

これは解答を採点して送信する時とか、解答後即時フィードバック設定をすると自動で付けてくれる解説みたいなもんです。

たんに「正解!」とか、「天才!」とかを正答なら出して、誤答なら「残念!」とか出してもいいと思う。(というか選択肢問題についてはきほんそうしている)

でも、記述式とかのときには、いちいちフィードバックを個別の採点のときに入れるのは面倒なので、ここに入力したものがそのまま送られるようにしておく。

正答

正答を書く。

この後の選択肢の正解と同じ文字列にしとく。

選択肢

選択肢。

きほんは単一解答で作成しようと思うので、ラジオボタンになる。

データベースの項目をなめちゃいけない

こういう表を作るときには、この後の運用を考えてきちんとつくらないといけないです。(まあこれは当たり前なことだけど)

Excelとかも、何やらよくわからないセル結合とかされた、思いつきの表みたいなのが量産されることが多いですけど、きほんはデータベースの形式で作成する、というのを徹底していくようにすると、だんだんどういう項目を列に作らないといけないかってのを自然と考えるようになります。

ということで、今回はこんな感じで。

あんまり張り切りすぎると息切れしちゃうので、のんびり更新していきます。

もし更新まで待てない! という人は、以下のサイトを参考にしてください。

ぼくはこのへんを見ながら作りましたので。

参考 Google Apps Script(GAS)&Googleフォーム&スプレッドシートでよく使うコード 参考 GASでGoogleフォームを作成する最も簡単なスクリプト 参考 <GASで小テスト作り> その1 Googleフォーム 参考 Google Formでクイズして、自動で答え合わせして、メールまで送っちゃうお

あとリファレンスだいじ。困ったら読む。

参考 Reference overviewGoogle Apps Script

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA