inu goya -
一覧 - wncomr (
紹介 - 履歴
- その他 ) ,
wncsf5 , wncsf9 |
wncomrその他のこと |
■隠しコマンド?(2015年5月追加)wncomrにはデバッグ用に起動オプションがあります。t_dat_onを使用するときにバッチファイルから自動でデバッグできるように使用しているもので、通常使用することはないと思いますが、コンソール版とGUI版で結果を比較するときに使用できます。 wncomr [/s /e /r:ファイル名 /w:ファイル名 /x:ファイル名 /1 /2 /3 /4 /5 /6 /7 /8 /9] /s 起動後採点開始 /e 採点後終了 /r: 読み込むファイル(ScanToolsが出力するDAT) /w: 書き込むファイル1(○×まで入っているファイル) /x: 書き込むファイル2(点数と名前だけが入るファイル) /1 1番めの解答 /2 2番めの解答 (中略) /9 9番目の解答 気になる人は使ってみてください。 ----以下はデバッグで使用していたバッチファイルの中身---- @echo off setlocal rem OPT1にtdat_onに渡すパラメータ set OPT1=5A rem ■■■■rndテスト1 tdat_on %OPT1% > 0000001.dat tdat_rnd 0000001.dat > 0000001.txt tdat_cfg r1 copy wncomr.$$$ wncomr.cfg copy wncomr.$$$ womrcon.cfg timeout /s wncomr /r:0000001.dat /w:0000001.csv /x:0000001.asc /1 /s /e timeout /e womrcon /1 0000001.dat > 0000001.con timeout /s womrcon /1 /c 0000001.dat > 0000001.cov timeout /e fc /b 0000001.txt 0000001.asc if not errorlevel 1 goto ok_1 echo rndテスト1が一致しませんでした。 pause goto end :ok_1 fc /b 0000001.asc 0000001.con if not errorlevel 1 goto ok_2 echo rndテスト1 conが一致しませんでした。 pause goto end :ok_2 fc /b 0000001.csv 0000001.cov if not errorlevel 1 goto test2 echo rndテスト1 covが一致しない. pause goto end rem ■■■■rndテスト2 :test2 tdat_on %OPT1% > 0000001.dat tdat_rnd 0000001.dat > 0000001.txt tdat_cfg r2 copy wncomr.$$$ wncomr.cfg copy wncomr.$$$ womrcon.cfg wncomr /r:0000001.dat /w:0000001.csv /x:0000001.asc /2 /s /e womrcon /2 0000001.dat > 0000001.con fc /b 0000001.txt 0000001.asc if not errorlevel 1 goto ok_2 echo rndテスト2が一致しませんでした。 pause goto end :ok_2 fc /b 0000001.asc 0000001.con if not errorlevel 1 goto test3 echo rndテスト2 conが一致しませんでした。 pause goto end rem ■■■■rndテスト3 :test3 tdat_on %OPT1% > 0000001.dat tdat_rnd 0000001.dat > 0000001.txt tdat_cfg r9 copy wncomr.$$$ wncomr.cfg copy wncomr.$$$ womrcon.cfg wncomr /r:0000001.dat /w:0000001.csv /x:0000001.asc /9 /s /e womrcon /9 0000001.dat > 0000001.con fc /b 0000001.txt 0000001.asc if not errorlevel 1 goto ok_3 echo rndテスト3が一致しませんでした。 pause goto end :ok_3 fc /b 0000001.asc 0000001.con if not errorlevel 1 goto end echo rndテスト3 conが一致しませんでした。 pause rem ■■■■■■■■end :end endlocal ----ここまで--------- 当時、自動でデータ検証するツールを作っていたようで最近資料が見つかったので掲載します。 おそらく、 tdat_onがScanToolsが出力するデータを模倣してランダムに作成 tdat_rnd ランダムに模範解答を作成して採点(tdat_rnd.$$$を出力しそこに模範解答も入れる) tdat_cfg r9 tdat_rnd.$$$をwncomr.$$$の9番目解答に作成(rはrnd,aはand,oはor,tはtan) timeout /s timeout.cfgにOSの時間をスタート時間として記憶(自分で作成したのか記憶が無い) timeout /e timeout.cfgから開始時間を読み出しスタート時間から現在のOS時間を引いて画面に出力 あとはOSに標準で付いている機能を使用したはず。 発見したtdat_on系のソースリストをみたらよく考えて作られていますな。 2006年に一連のツールを作成しているのですが、今だったらようつくりません。 たしか、作るきっかけは1問に対して10点を配点しなければいけない事例が発生したのでwncomrを1問99点配点可能にバージョンアップしなくてはならず、その時内部構造を大幅に改造しなければ対応できないことがわかりました。さすがに、何年も動作実績があったので内部を改造というのはあまりおこないたくなかったのですが、これで最後の大幅な改造だろうと思ってそのまえに自動テストツールの開発をせねばいかんなと。 説明書にも書いてあったと思うのですが、テストツールの作成がかなり難航しています。そして、いざ完成して実行してみたら潜在的なバグまで発見するという効果がありました。さらに、あまりにもtdat_on用に開発した採点システムが高速だったのでコンソール版として提供するにいたったわけです。 残念ながら、高速採点アルゴリズムはGUI版には搭載していません。 そのかわり、GUI版とコンソール版はアルゴリズムが違うため比較して完全に一致しない場合はどちらかにバグがあるということがわかりました。 |
■OpScanについて米Scantron社が製造販売している光学式マーク読取装置(OMR)で最上位機種がセンター試験に使用されていると担当の方から聞きました。職場では1996年にOpScan3を導入(確かオプションつけて百万超えた)し、2001年にOpScan6(3600)を追加購入(これは二百万位だったと思う)そして2011年にOpScan6(5000)に更新(これは二百後半だったと)しています。制御用にScanToolsを購入しているのですが、これが10万位するので決して簡単にテストをマークシート化するとはいきません。もちろんマークシートも専門の印刷会社から購入(一度に1万枚購入しているので単価も10数円)。うちの場合1度に千枚から二千枚採点するので人件費と時間を考慮すればそれ相当なのかもしれません。単純に人間が1人分採点を行う時間が2分として1000人分採点すると2000分(約33時間)としてOMRは1秒で1人ですから1000秒(約17分)差が2000-17=1983分節約ということになります(私的な見解です)。テスト回収後17分後には点数がでてきて、クラス別の平均点やなんかを作成するのも考慮しても1時間ほどで結果がでてしまう。2016年あたりから都立の入試でマークシートを導入しはじめているようですが、やはり専用機と専用紙でないと採点がうまくいかないと思われます。 もしかすると、採点の業者に頼んだ方が安く済むのだろうか。 |
■womrform2a(生徒得点配布印刷2)womrformは5人分を1枚に印刷していたので、配るときにカッターで切り分けるという面倒な作業が必要でした。当時(2003年)は用紙の節約や再利用促進をしていたのでこれでよかったのですが、2020年になって担当する人がカッターで切る作業が結構大変そうなのでA4用紙1人1枚というwomrform2を製作することにしました。前に製作していたwomrformから設定項目を引き継いだ。 A4用紙1枚で1人というと、例えばA4用紙1枚1円であれば1000人で1000枚・千円として、5人1枚だと200枚・200円ということです。これに、人件費予想を入れてみます。200枚を5人分割する作業に1枚30秒(1分2枚)で100分。時給1000円だと1000*(100/60)=約1666.7円。コスト的にも切る作業を入れなければ666.7円節約となりますな。 (切る作業を100分やったら精神的に他の作業が滞りそう) womrform2がwomrform2aになっているのは当初 .NET Core 3.1で開発を行っていたのですが、Windows 7等の旧システムで稼働させる必要があったため互換性を考慮して .NET Framework 4に移植したためです。単純に設定変更とはいかなかったので別バージョンとなったのです。 ※womrform2aは都合上現在未公開(契約上事業所先行のため) |
wncomr ( 紹介 - 履歴 - その他 ) , wncsf5 , wncsf9 |
一覧 |
先頭頁に戻る |
[20230330] |
©wnc develop |