【转】标准化试卷标记语言

转自王垠 yinwang.org

标准化试卷标记语言

(写另外一篇博文的时候发现跑题太多,所以现在把它独立出来另外写一篇。)

我本科的时候给我爸设计了一种“标准化试卷标记语言”(他是中学英语老师)。当时我写了一个1000来行的 Perl 脚本,可以把这种简单的标记语言转换成美观的 LaTeX 格式文档,并且带有友好的 Tk 图形界面。题目可以包括选择题,填空题,改错题,…… 这种语言的特点是,题目和答案都放在一起,所以出题的时候很直观。经过处理之后,答案与题目分离,并且被放到答案表里正确的位置上。这样出题的人就不会把答案放错位置,也不用担心如何排版。

比如,选择题的格式是这样:

# Our teacher told us that there ______ no end to learning.
   A. was    B. is *        C. has            D. had

每道题开头都是一个 #,正确答案后面加一个 *。在处理的时候这些 # 都会被变成题目编号,而有 * 标记的答案选项,会被放到答案表里面。

最有意思的是改错题。因为改错题是一个英语段落,某些行有错,但每行最多只能有一个错。所以我的设计是,在普通的段落里插入这样的记号:

This is an |extraordinary|extrordinary| sentence...

用以“引入错误”。左边是正确的方式,右边是错误的。这里使用 | 是因为这个符号不会在普通的英语文章里出现。| 的左右两边都可以是空白,用以表示“插入”与“删除”。比如:

I don't know how to play |the|| piano.

这样的题目显示出来之后是这样:

I don't know how to play piano.

然后答案里会显示:

在 play 和 piano 之间加 the

如果两个都不是空白,那就是“修改”,就像上面的例子。最后我会根据这些标记的位置把段落排版,让每行上面最多只有一个错。为了让段落的行看起来均匀,我使用了一种类似 TeX 的动态规划断行算法。它先算出多种断行方案的“难看程度”,然后从中选出最好看的一个。

现在回想起来,我那时候的设计其实是相当先进的。怎么就没想过把它做成产品卖给教育部呢,也许因为觉得这种技术会制造出更大量的题海,祸害更多的中学生 :-P 跟我的语言相比,现在一些 blog 系统用的 markup 语言(比如 markdown)真是小巫见大巫了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文本是发在知乎里的一篇帖子,因为知乎开始限制字数,感觉挺不舒服的,现在搬到了简书上来,感兴趣的也可以去知乎上点个...
    张生_Alex阅读 10,951评论 1 19
  • 走在大街上,如果我们随便问一个人“你想成功吗?”都会给出肯定的答案,这其中也许很多人并不明确自己的目标是什么,但就...
    贪痴舍阅读 490评论 3 3
  • 躺床上正酝酿着午休、一阵雨哗哗的下来,砸在窗上啪啪的响,小宝蹭的跳下床自言自语的说“看看下雨还打雷吗?下三天...
    Anne惠阅读 412评论 0 1
  • 我站错了位置,看错了角度。犯了很大错误。不应该这么聪明,女人应该有的糊涂我没有。一次次的伤心失望为何还不能死心。为...
    情不知所起21阅读 83评论 0 0