题目
作业完成情况
班级共29人,本次作业 27 人提交,2 人未提交。
未提交原因为:忘记在博客园班级博客里提交,但博客有准时提交。
总得分映射到百分制的排名
得分情况
博客
Coding
个人项目1
结对项目1
案例分析
结对项目2
总分
映射到[50-100]
5.2
8.5
9.75
5.1
28.55
89
3.2
9.5
6
3.81
22.51
76
6.6
9
4.75
2.81
23.16
77
1
8.5
3
3
15.5
61
7.4
8.5
10.5
4.63
31.03
94
4.6
8
11
3.5
27.1
86
6.4
8
11.5
4.44
30.34
93
2.6
8.5
8.25
2.69
22.04
75
5.2
8.5
13
1.94
28.64
89
5.6
10.5
13.5
3.88
33.48
100
4.4
10.5
6.5
1.63
23.03
77
4.4
10.5
-2
1.44
14.34
58
4.6
2.5
7.75
0.31
15.16
60
6.6
10.5
4.5
1.38
22.98
77
7.2
10.5
6
5
28.7
89
3
0
7.25
0.31
10.56
50
5.2
10
3
2.63
20.83
72
5.8
9
4
6.25
25.05
81
5
9
3
2.56
19.56
70
4.4
8.5
6
5.25
24.15
79
5.4
9
-1
2.06
15.46
61
4.6
9
6.75
3.31
23.66
78
5.6
6
4.75
0.94
17.29
65
4.4
7
4
0.94
16.34
63
4.8
9
4.75
2.31
20.86
72
5.6
7.5
5.75
2.94
21.79
74
1.6
2.5
11
0.31
15.41
61
3.2
9.5
9.25
5
26.95
85
1.4
11
4
1.94
18.34
67
评分标准
需求分析(1分)
需求分析(特指测试)应该覆盖的点为:
整数和分数的加减乘除
式子格式错误
大的数据
分母为 0 错误
提醒用户
作业要求原文:
通过单元测试代码,测试加减乘除功能。
通过单元测试代码,测试计算类对于各种参数的支持:
a. 输入是有错误的,例如 “1 ++ 2”,
b. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,
c. 或者是 “ 248 / 0” 怎么办?
d. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?
e. 那么如果真的计算结果是 “-1” 又怎么处理呢?
需求分析评分标准:
照抄作业上的要求得0分
用自己的话说,但说不全的得0.5分
用自己的话说,并且说得比较全的得1分
描述单元测试的每个环节(2分)
测试用例及结果总分为 1.5 分
有给出测试用例,但没有覆盖需求分析各个点的,扣0.5分
没有给出结果的,扣0.5分
给出结果,但不是全部结果的,扣0.25分
遇到的问题及解决方案总分为 0.5 分
如果说出遇到的问题及解决方案的,得0.5分
如果说出遇到的问题但没有给出解决方案,得0.25分
如果没有遇到问题但没有说“没有遇到问题”的,不得分
代码覆盖报告(1分)
没有给出截图不得分
代码有错误处理,给出截图是 100% 得 1 分
代码没有错误处理,给出截图是 100% 得 0.5 分
给出截图不是 100% ,但没有说明为什么 ,得 0.5 分
给出的截图是测试类本身的覆盖率,而不是被测试类的覆盖率,得 0 分
覆盖报告的工具无法正常运行:给出解决的进度及请求帮助得0.5分;只尝试解决的得0.25分。只说明无法正常运行得0分
小结(1分)
是否发现了程序计算模块的问题
是否给予改进
小结评分标准:
如果没有发现问题,但没有明确说明“没有发现问题”的,该部分得分不超过 0.5 分
如果发现问题但没有给予改进,得 0.5 分
有说发现问题,且给予改进。但没有说对哪部分进行了改进,得 0.5 分。
看以前代码的感受(1分)
良好的设计
编码规范
必要的注释
评分标准:
说设计重要,但没有说明之前的设计有哪些缺陷的,扣 0.25 分
除非之前的设计很好,或者同学明确指出他们认为之前的设计没有问题。如果是这样,不扣分。
说代码规范重要,但这次作业代码不规范的,扣 0.5 分
如果明确说能看懂之前的代码,不扣分。
如果给出两人的代码规范文档,并且不符合规范的部分没有在文档上给出相应要求。如果是这样,不扣分。
说注释重要,但这次作业代码没有合理的注释,则扣 0.25 分
结对,两个人的 commit(0分)
两人对同一个文件修改过
commit 评分标准:
出现以下情况任意一种的,Coding部分得分减一半。
两人各自上传一整份代码(文件名相同)
测试代码的文件和模块化的文件只有一个人commit
这部分在详细分数中,数字 1 表示符合要求,数字 2 表示不符合要求
fork 助教的代码(0分)
已经提供给同学们四个版本的空壳函数,分别为 JAVA,C++,Python,C#
评分标准:
没有 fork 则 Coding 部分得分 再 减一半
这部分在详细分数中,数字 1 表示符合要求,数字 2 表示不符合要求
将计算相关的代码放到新创建的 Calculator 类
如果将生成表达式的方法或者其他跟计算无关的代码写到Calculator里,得0分
将 Calculator 类的代码模块化(0分)
加减乘除放在同一个方法用分支处理,得0分。
以下为测试部分
没有出现Assert的,测试部分得0分
正确的输入能否达到预期(0.5分)
每个方法如果只有一个测试用例,得0分
错误的输入能否提示用户(0分)
包含需求分析中给出的所有例子,得 1 分
没有包括所有例子, 得 0.5 分
没有错误处理,得 0 分
大数字的处理(0.5分)
没有测试 32768 级别或以上的数据则得 0 分
除0运算、分母为0(0.5分)
各 0.25 分
混合运算测试(0.5分)
没有对混合运算测试得 0 分
混合运算输入后进行处理,或者提示用户无法处理,得0.5分
覆盖所有路径(0分)
包含全部错误处理且覆盖率 100% 得 1 分
没有包含全部错误处理且覆盖率 100% 得 0.5 分
没有包含全部错误处理且覆盖率没有 100% 得 0.25 分
没有错误处理且覆盖率 100% 的 0.25 分
没有错误处理且覆盖率没有 100% 则 0 分
小数的位数可控(0.5分)
当结果为小数时,要能够控制只保留两位小数作为输出。如果不能控制,得0分
助教说
很抱歉这次这么晚才发分数出来。我最近波动较大,影响到了助教的助教工作,很抱歉。
记一次失败的面试
这是我最近写的一篇博客,希望这个惨痛的经历能够对你们有所帮助。也希望同学们在即将到来的人生分叉口上,能够谨慎做出选择,避免陷入我这样尴尬的境地。
本次作业其实题目本身就有问题,很多地方都没有说清楚。同学们的得分也因此普遍较低。
这次细化了评分标准,把很多细节列出来。如果同学们对自己的分数有异议,可以向我提出,我会在仔细比较之后给出合适的处理。
还有一篇 作业博客高分指南 ,有兴趣的同学可以看看。
评分明细
Blog
Blog部分总分
Coding
设置测试数据完善性
Coding部分总分
基础分总分
最终得分
基本信息
需求分析
单元测试环节
覆盖报告
小结
看以前代码感受
照片
commit记录
fork
Calculator 类
模块化
正确的输入
错误的输入
大数字
除0运算、分母为0
混合运算测试
覆盖所有路径
小数的位数可控
互动迭代及其他
博客\分数
0
1
2
1
1
1
0.5
6.5
0
0
0.5
1
0.5
1
0.5
0.5
0.5
1
0.5
6
12.5
1
13.5
0
0.5
1
0
0.5
0
0.5
2.5
1
2
0.5
1
0.5
0.5
0
0.25
0
0.5
0
1.6
4.1
1
5.1
0
0.5
1
0
0
0
0.5
2
1
2
0.5
1
0.5
0.5
0
0.25
0
0.5
0
1.63
3.63
1
4.63
0
0.5
1
0.5
0
0
0.5
2.5
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
2.81
1
3.81
0
0.5
1
0.5
0
0
0.5
2.5
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
2.81
0
2.81
0
1
1
0.5
0
0
0.5
3
2
2
0
0
0
0
0
0
0
0
0
0
3
0
3
0
1
1
0.5
0.5
0
0.5
3.5
2
2
0
0
0
0
0
0
0
0
0
0
3.5
0
3.5
0
0.5
1.5
0
1
0.5
0.5
4
2
2
0
1
0.5
0
0
0
0
0.25
0
0.44
4.44
0
4.44
0
0.5
1.5
0
0
0
0.5
2.5
2
2
0
1
0.5
0
0
0
0
0.25
0
0.44
2.94
0
2.94
0
0
1
0
0
0.75
0.5
2.25
2
2
0
1
0.5
0
0
0
0
0.25
0
0.44
2.69
0
2.69
0
0
1
0
0
0
0.5
1.5
2
2
0
1
0.5
0
0
0
0
0.25
0
0.44
1.94
0
1.94
0
0
1.5
0.5
0
0.75
0.5
3.25
2
2
0.5
0
0.5
0.5
0
0
0.5
0.5
0
0.63
3.88
0
3.88
0
0
1.5
0.5
0
0
0
2
2
2
0.5
0
0.5
0.5
0
0
0.5
0.5
0
0.63
2.63
0
2.63
0
0.5
0
0
0
0.25
0.5
1.25
2
2
0.5
1
0
0
0
0
0
0
0
0.38
1.63
0
1.63
0
0.5
0
0
0
0
0.5
1
2
2
0.5
1
0
0
0
0
0
0
0
0.38
1.38
0
1.38
0
0
0.75
0
0
0
0.5
1.25
2
2
0
0
0.5
0
0
0
0
0.25
0
0.19
1.44
0
1.44
0
0
0.75
0
0.5
0
0.5
1.75
2
2
0
0
0.5
0
0
0
0
0.25
0
0.19
1.94
0
1.94
0
0
0.5
0.5
0
0
0
1
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
1.31
-1
0.31
0
0
0.5
0.5
0
0
0
1
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
1.31
-1
0.31
0
0
0.5
0.5
0
0
0
1
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
1.31
-1
0.31
0
0
2
0.25
0.5
0
0.5
3.25
1
2
0.5
0
0.5
0.5
0
0.5
0
0.5
0
1.25
4.5
0.5
5
0
0
2
0.25
1
0
0.5
3.75
1
2
0.5
0
0.5
0.5
0
0.5
0
0.5
0
1.25
5
0
5
0
0
0
0.25
0
0
0.5
0.75
2
2
0.5
0
0
0
0
0
0
0.25
0
0.19
0.94
0
0.94
0
0
0
0.25
0
0
0.5
0.75
2
2
0.5
0
0
0
0
0
0
0.25
0
0.19
0.94
0
0.94
0
0.5
1.5
0.5
1
0
0.5
4
2
1
0.5
1
0.5
1
0
0.5
0.5
0.5
0
2.25
6.25
0
6.25
0
0.5
1.5
0.5
0
0
0.5
3
2
1
0.5
1
0.5
1
0
0.5
0.5
0.5
0
2.25
5.25
0
5.25
0
0
1
0.25
0.5
0
0.5
2.25
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
2.56
0
2.56
0
0
1
0.25
0
0
0.5
1.75
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
2.06
0
2.06
0
0.5
1
0.5
0
0
0
2
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
2.31
1
3.31
0
0.5
1
0.5
0
0
0
2
2
2
0.5
0
0.5
0
0
0
0
0.25
0
0.31
2.31
0
2.31