// 上一篇:题目设计、点评和评分

// 下一篇:超链接


教学里,建立清晰明确的评分规则并且一开始就公布,对于教师、助教、学生都是重要的。

公布时机

在课程开始的时候,就需要确定并公布评分机制,随着课程展开,需要做的是做细节上的修订和严格的执行。为什么要第一时间公布明确的评分规则? 因为:

  1. 规则不明确,教师就不清楚助教会怎样评分,设计题目的时候对于一个题目的难度、周期和重要检查点会少了一个重要的参照点。
  2. 规则不明确,助教在评分过程中便会拿捏不准,不知道基准在哪,怎样使用工具。
  3. 规则不明确,学生会找借口,寻找规则的漏洞,容易滋生南郭先生。

阶梯分布

那么,明确了评分机制的公布点、修订点以及执行点之后,我们就要讨论评分机制本身如何设计更合理。《构建之法》在【给任课老师和助教的建议】一节里对此有充分的讨论,提出应该建立简明公开的原则:

把每次作业的表现分为N档:

  • 最优秀的几个同学得满分
  • 第2档的同学得1/2的分数
  • 第3档的同学得1/3的分数
  • 依此类推...
  • 迟交的作业0分
  • 不交作业倒扣分

传统的【大家都能及格】的分数分布看上去皆大欢喜,实则对优秀学生极不公平。根据上面的机制,可以在每次作业布置的时候,都重复贴上以下内容:

## Deadline:
2017-3-8 12:00AM,以博客发表日期为准。 ## 评分基准:
- 按时交 - 有分,检查的项目包括后文的N个方面
- 题目要求
- 代码提交
- 博文规范
-
- 晚交 - 0分
- **迟交一周以上 - 倒扣本次作业分数**
- 抄袭 - 0分 ## 题目要求
...
## 代码提交
...
## 博文规范
...
## ...

每次都有明确的截止日期和具体要求,这样就能实现清晰明确的评分规则的目的。 参考下面的实际例子:

http://www.cnblogs.com/happyzm/p/6472120.html

累加映射

例如,具体到软件工程这个课程上,《构建之法》里的分数设计是这样的:

原始总分=
平时成绩
+ 个人成绩
+ 结对项目成绩
+ 团队项目Alpha成绩
+ Alpha阶段个人贡献分
+ 团队项目Beta成绩
+ Beta阶段个人贡献分

总分=原始总分线性映射到百分制到【100..50】这一区间。对于研究生可以考虑映射到【100..60】这个区间。一般来说,这几个不同阶段的分数占比不同,原始总分由如下构成:

  • 个人项目50分(博客+项目代码)
  • 结对项目100分(博客+项目代码)
  • 团队Aalpha满分200分,
  • 团队Aalpha 50分的个人贡献分
  • 团队Beta满分200分
  • 团队Beta50分的个人贡献分

详细展开请参考这份精细的设计:http://www.cnblogs.com/SivilTaram/p/5656582.html

注意:此处建议使用项目,而不是作业,这在概念上是有差别的,项目是持续开发的,有更长生命周期的,是主动性的action。作业则可能是短周期短,被动性的task。因此:

课程有项目 (个人,结对,团队), 项目有作业, 作业分为代码作业,和博客作业。

评分工具

上面的公式,助教可以建立一个Excel表格,通过线性映射公式,自动化计算。例如

学号 个人项目1 结对项目1 案例分析 团队项目Alpha 团队项目Beta 原始总分 总分
001

具体的项目次数由教师、助教协商,例如,有些学校在重要节点之间插入一些适当的工具操作练习。练习比作业的权重小,比如个人项目是50分,练习只有10分。但是练习可以目的明确地训练某个具体工具的使用,比如:

  • 数据库建模工具
  • UML里画一个UserCase
  • Git的操作
  • IDE的安装
  • 思维导图的练习...

单次项目

具体到操作里,教师和助教还会有一些不明的地方:一次作业的内容上如何评分?可以采用和整体一致的方案:针对一次作业的checklist做分类评分后累加映射,我们直接看表格:

学号 题目要求 代码提交 博文规范 工具使用 单次原始总分 单次总分
001

这是一个子表,子表里对单次作业的checklist做分类评分,分类评分的时候,可以累加每个单项分数后计入单次原始总分,线性映射到单次的分数范围(例如,团队Alpha是200分)。同样的,可以通过Excel公式做自动计算工作。教师和助教可以协商checklist的权重。

另外,针对团队项目这样细节比较复杂的,设计单次作业每个单项分数的时候,也可以每个单项按10分去给,然后乘以每个部分的权重,映射到单次分数,可以看作是一个评分放大镜

截断问题

评分规则会遇到边界问题,在实践中会有下面两种特殊情况,特别是存在一些特别拖后腿的同学的时候:

  1. 总分是负分
  2. 总分很低,虽然不是负分,但分数太低,如果以这么低的分数作为 MIN ,则总体分数会集中到80以上。

这两种情况如果也参与映射,显然不合理,要怎样解决呢?在教学讨论中,@SoftwareTeacher建议如下:

第一种方式,在不改变映射规则的基础上,存在如何抛弃那些特别低分的同学的问题, 以及各种项目得分比重是否合理的问题。教师和助教可以根据具体情况决定,例如:

  1. 原始总分是负分的直接不参与线性映射,直接映射为0分。
  2. 原始总分很低的,和其他同学明显存在间断的,也不参与线性映射,在0-50分之内选取合适的范围映射。

第二种方式,改变映射规则,改为先映射, 再累计的评分方式。具体来说,是这样的:

  1. 规定个人项目占10分, 结对项目占20分,团队的alpha/beta 各占35 分。 加起来就100 分了。
  2. 现在我们把所有人的个人项目的原始分(可能有多个个人作业)做单变量的线性映射:
    • 最高分 -> 10 分
    • 其它分数按 【最高分/10分】的比率来映射(负分就映射到0 分)。【score=orign_score*max_orign_score/10 】
  3. 把各个阶段的分数映射完之后,再加起来。

这个做法也有优缺点(Pros and Cons):

  1. 好处是不太用考虑 “从哪里截断原始分的映射” 这个问题。这个转换没有下限, 所以不用考虑原始分的下限应该在哪里。
  2. 坏处是这样通常最好的同学不会得100 分(除非他每一项目都是最高分),而且在课程中不能看出大家映射的得分, 没有能够给大家直接的感觉,以及显示大家你追我赶的数据。

以上两种针对截断问题的解决方法,提供给教师和助教在课程开始设计评分规则的时候选择。

评分展示

助教在截止日期时,及时发布评分博客,评分博客由多个部分构成,例如下面这个组合:

  • 题目:给出教师布置题目的原始链接
  • 项目完成情况:简要说明总共多少人,提交的人数,未提及的人数
  • 总得分映射到百分制的排名:这是一个根据映射分做的柱状图,也即到目前为止的得分排行榜
  • 得分情况:包含了每次项目原始分,累加原始分,最后映射分的一个表格
  • 评分标准:详细列出本次项目的评分标准
  • 助教想说:助教针对本次项目提交情况的综合分析和建议
  • 评分明细:本次项目评分明细的子表

完整的例子请参考:http://www.cnblogs.com/schaepher/p/6582306.html

其他课程

有的教师认为只有软件工程课程才适合这样评分。其实,如果是编程语言课,除了在环节设计上不同之外,其他的设计都是同样适用的:

  • 简明公开
  • 累加映射
  • 严格执行

checklist

首先,分数的设计机制,也能倒推在题目的设计上。设计题目的时候,教师和助教就需要对那些模糊的地方进行细化,对难度超过学生水平的地方做拆分,否则学生因为觉得模糊或困难而都不做作业,或随便应付,便无法达到有效训练的目的。

其次,设计checklist的时候,要有区分度。不能所有的条目都平均分配,这就涉及到对一个环节里哪些知识点、哪些方法是重要的,是突出强调。以及,设计这些条目的目的是什么?还是一样的道理,条目设计要有阶梯分布,检查的时候要注重形式和内涵的契合,例如,要求用思维导图,但是要看他用思维导图解决了什么问题,是否为单个环节的最终目标服务,设计的条目文本最好也能恰当表达这层意思。

第三,要回归相关课程的本质。例如对于软件工程,“还是要回到软件工程的本质, 例如画 UML 图, 有什么用? 画了有人看么? 给谁看的? 代码变了,UML 要跟着变么? 软件工程最后的产品是代码, 那么中间产生的各种文档的目的是啥?”(--xinz)。这样在设计checklist和评分的时候,可以有的放矢。

技术支持

最后,博客园的班级博客在评分工具,在技术上也许可以对此建模,提供工具支持。

软工+C(2017第2期) 分数和checklist的更多相关文章

  1. 软工+C(2017第1期) 题目设计、点评和评分

    // 下一篇:分数和checklist 如何设计题目 教学中的一个问题是老师出题太简单了,题目设计一开始上来就不紧凑,我认为一个好的课程应该上来就给你紧凑感,而不是先上来"轻松2-3周&qu ...

  2. 软工+C(2017第3期) 超链接

    // 上一篇:分数和checklist // 下一篇:Alpha/Beta换人 注:平常看文章,总有能和构建之法,软件工程相关的链接,增量记录,也可以通过在其他人博客的交流中使用相关的超链接,在使用中 ...

  3. 软工+C(2017第5期) 工具和结构化

    // 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 工具/轮子 软件工程/计算机相关专业的一个特点是会使用到众多的工具,工具的使用是从程序猿进化到程序员的一个关键要素.软件工程师 ...

  4. 软工+C(2017第4期) Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

  5. 软工+C(2017第8期) 提问与回复

    // 上一篇:野生程序员 // 下一篇:助教指南 在线上博客教学里引入了第三方助教,助教在每次作业期间尽力完成"消灭零点评"的目标.然而紧接而来的问题是:学生对博客作业点评的回复率 ...

  6. 软工+C(2017第6期) 最近发展区/脚手架

    // 上一篇:工具和结构化 // 下一篇:野生程序员 教育心理学里面有提到"最近发展区"这个概念,这个概念是前苏联发展心理学家维果茨基(Vygotsky)提出的,英文名词是Zone ...

  7. 软工+C(2017第7期) 野生程序员

    // 上一篇:最近发展区/脚手架 // 下一篇:提问和回复 怎样做足够好的软件?我们就差一个程序员! 没有什么软件工程的理论的时候,程序员们凭借自己对编程的热爱,凭借着:"这是一个可以自动化 ...

  8. 软工+C(2017第9期) 助教指南

    //上一篇:提问与回复 [备注]:请优先阅读 Handshake/点评/评分 三部分. 0x00 Handshake 了解<构建之法>作者参与软件工程改革的一些背景: http://www ...

  9. 软工+C(9): 助教指南,持续更新...

    上一篇:提问与回复 下一篇:从命令行开始逐步培养编程能力(Java) 目录: ** 0x00 Handshake ** 0x01 点评 ** 0x02 评分 ** 0x03 知识储备 ** 0x04 ...

随机推荐

  1. 605. Can Place Flowers种花问题【leetcode】

    Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, ...

  2. windows 2008 VPN(PPTP/L2TP)搭建

    PPTP和L2TP只差一步配置,现在苹果已经不支持PPTP,所以只能使用L2TP连接.废话不多说,下面开始搭建: 1.PPTP VPN 配置 新安装好的OS,进入系统,首先添加角色 勾选添加网络策略和 ...

  3. MySQL数据库 —子查询,联合查询

    一 使用IN关键字的子查询 1.查询游戏类型是'棋牌类' 的游戏的分数信息 游戏分数表中并未包含游戏类型信息 思路一:采用链接查询 思路二: 分两步进行,首先找到所以'棋牌类'游戏的编号,再以这一组编 ...

  4. php创建多级目录完整封装类操作

    创建多级目录函数中调用创建指定下的指定文件的函数: public function create_dir($dir,$mode=0777) { return is_dir($dir) or ($thi ...

  5. S7-200PLC间的PPI通信

    一. PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从.通信开始由计算机发起,PLC予以响应. 1).计算机按通信任务,用一定格式,向PLC发送通信命令. 2).PLC收到命令后, ...

  6. MFC加载PNG图片并实现双缓冲

    因为PNG包含Alpha通道,所以不同于BITMAP,在MFC中使用CImage类对其进行处理,通常使用load和draw成员函数. 所以标题的论述可以进一步解释为,使用CImage实现双缓冲. 通常 ...

  7. 菜鸟的Xamarin.Forms前行之路——按钮的按下抬起事件的监控(可扩展至其他事件)

    提问:监控按钮的点击事件,可以通过按钮的Click事件,或者Command绑定,那么如何监控按钮的按下与抬起,或者移动,长按,双击等事件? 解决方法:各个平台自定义渲染依赖注入. 共享项目PCL: 1 ...

  8. 菜鸟之路Vue----一

    Vue api 学习笔记之 全局配置 1.Vue全局配置 Vue.config是一个对象,它包含了Vue的全局变量配置. #silent  用来取消 Vue 所有的日志与警告,其值值类型为布尔值(Bo ...

  9. VMware Workstation 12 Pro 之安装林耐斯Ubuntu X64系统

    VMware Workstation 12 Pro 之安装林耐斯Ubuntu X64系统... -------------- Linux依照国际音标应该是/'linэks/——类似于“里讷克斯&quo ...

  10. Android 开发者,如何提升自己的职场竞争力?

    前言 该文章是笔者参加 Android 巴士线下交流会成都站 的手写讲稿虚拟场景,所以大家将就看一下. 开始 大家好,我是刘世麟,首先感谢安卓巴士为我们创造了这次奇妙的相遇.现场的氛围也让我十分激动. ...