[2018福大至诚软工助教]个人项目1测试结果

[2018福大至诚软工助教]个人项目1测试结果

零、测试前提

  • 本次测试使用的测试程序链接:https://github.com/ChildishChange/zcxyAutoTest
  • 本次测试亓老师仓库内的所有代码:https://github.com/qixjing/MathExam2018
  • 本次测试的流程为
    • clone 代码仓库
    • 检查文件夹、java文件命名是否标准
      • 不标准则不加入测试
    • 编译java代码
      • 编译失败不加入测试
    • 检查是否引用了 Scanner
      • 引用则不加入测试,若有引用了但是未使用的同学,请在博客下留言
  • 本次测试的数据如下:
    10 
    100
    10 1
    100 1
    10 2
    100 2
    

一、自动测试结果

仅测试了提交作业的同学,点击表头内相应项目可针对该项目进行排序。有任何问题,请在博客下评论。

格式为:

我的学号是:xxxxxxxx
我的问题是:xxxxxx
班级 学号 后四位 合乎规范的提交 编译失败 未使用命令行 两次commit 四次commit 可运行文件 提交规范 未空行分开 有等于 实验1 实验2 得分
1 211601233 1233 2 0 0 5 5 0 -5 0 -2.5 5 10 17.5
2 211601253 1253 1 0 1 5 5 0 0 - - - - 10
2 211611302 1302 1 0 0 5 5 0 0 0 -2.5 10 10 27.5
1 211614269 4269 1 0 0 5 5 0 0 -2.5 0 10 10 27.5
1 211614331 4331 1 0 0 5 5 0 0 0 -2.5 10 10 27.5
2 211614354 4354 1 0 0 5 5 0 0 0 -2.5 10 5 22.5
2 211605240 5240 1 0 0 5 5 0 0 -2.5 -2.5 5 5 15
2 211605242 5242 1 1 - 5 5 -20 0 - - - - -10
1 211406242 6242 1 0 0 5 0 0 0 0 0 0 0 5
1 211406285 6285 2 1 - 5 5 -20 -5 - - - - -15
1 211606301 6301 1 0 0 5 5 0 0 0 -2.5 5 5 17.5
1 211606302 6302 1 0 0 5 5 0 0 -2.5 0 10 0 17.5
1 211606303 6303 1 0 0 5 5 0 0 -2.5 - 5 5 17.5
1 211606305 6305 1 0 1 0 0 0 0 - - - - 0
1 211606306 6306 1 0 1 5 5 0 0 - - - - 10
1 211606308 6308 2 0 1 5 0 0 -5 - - - - 0
1 211606310 6310 2 0 0 5 5 0 -5 0 0 0 0 5
1 211606313 6313 1 0 0 5 5 0 0 0 0 10 5 25
1 211606317 6317 1 0 0 5 0 0 0 0 0 0 0 5
1 211606318 6318 1 0 1 5 5 0 0 - - - - 10
1 211606319 6319 1 0 1 5 5 0 0 - - - - 10
1 211606320 6320 1 0 0 5 5 0 0 0 0 10 0 20
1 211606321 6321 1 0 1 5 0 0 0 - - - - 5
1 211606324 6324 1 0 1 0 0 0 0 - - - - 0
1 211606325 6325 1 0 1 5 5 0 0 - - - - 10
1 211606328 6328 1 0 1 5 5 0 0 - - - - 10
1 211606329 6329 1 0 0 5 5 0 0 -2.5 -2.5 0 10 15
1 211606330 6330 1 0 0 5 0 0 0 0 -2.5 10 10 22.5
1 211606331 6331 1 0 1 0 0 0 0 - - - - 0
2 211506332 6332 2 1 - 5 5 -20 -5 - - - - -15
1 211606333 6333 1 0 1 5 5 0 0 - - - - 10
1 211606334 6334 1 0 1 5 5 0 0 - - - - 10
1 211606335 6335 1 0 0 5 5 0 0 -2.5 -2.5 10 5 20
1 211606340 6340 2 0 1 5 0 0 -5 - - - - 0
1 211606344 6344 1 1 - 5 5 -20 0 - - - - -10
1 211606348 6348 1 0 0 5 5 0 0 0 0 5 0 15
2 211606349 6349 1 1 - 5 5 -20 0 - - - - -10
2 211606350 6350 1 0 1 5 0 0 0 - - - - 5
2 211606351 6351 1 0 0 0 0 0 0 0 0 0 0 0
2 211606352 6352 1 1 - 5 0 -20 0 - - - - -15
2 211606354 6354 1 1 - 5 0 -20 0 - - - - -15
2 211606356 6356 1 0 0 5 5 0 0 -2.5 -2.5 10 10 25
2 211606357 6357 1 0 1 5 5 0 0 - - - - 10
2 211606359 6359 1 0 1 0 0 0 0 - - - - 0
2 211606360 6360 1 1 - 5 5 -20 0 - - - - -10
2 211606361 6361 2 0 1 5 5 0 -5 - - - - 5
2 211606364 6364 1 0 1 5 0 0 0 - - - - 5
2 211606367 6367 1 1 - 5 5 -20 0 - - - - -10
1 211506368 6368 1 1 - 5 5 -20 0 - - - - -10
2 211606368 6368 1 1 - 0 0 -20 0 - - - - -20
2 211606369 6369 1 0 0 5 5 0 0 0 0 10 0 20
2 211606370 6370 2 0 0 5 5 0 -5 0 0 0 5 10
2 211606372 6372 1 0 1 0 0 0 0 - - - - 0
2 211606373 6373 1 0 0 0 0 0 0 0 0 10 0 10
2 211606374 6374 1 0 1 5 5 0 0 - - - - 10
2 211606375 6375 1 0 1 0 0 0 0 - - - - 0
2 211606376 6376 2 0 0 5 5 0 -5 0 0 5 5 15
2 211606377 6377 2 0 1 5 5 0 -5 - - - - 5
2 211606379 6379 1 1 - 0 0 -20 0 - - - - -20
2 211606381 6381 1 0 1 5 0 0 0 - - - - 5
2 211606382 6382 1 0 1 5 5 0 0 - - - - 10
2 211606383 6383 1 1 - 5 5 -20 0 - - - - -10
2 211606387 6387 1 0 1 5 5 0 0 - - - - 10
2 211606388 6388 1 0 1 0 0 0 0 - - - - 0
2 211606390 6390 2 0 0 5 5 0 -5 0 -2.5 0 10 12.5
1 211606445 6445 1 0 0 5 5 0 0 0 0 0 10 20
2 211606457 6457 1 0 1 5 0 0 0 - - - - 5
211617246 7246 1 0 0 5 5 0 0 -2.5 -2.5 10 10 25

二、表格含义

标记项:
表格中以下每项内容为标记

  • 合乎规范的提交
    • 1 文件夹命名、java 文件命名符合规范,不需要修改
    • 2 文件夹命名、java 命名经过助教手动修改
  • 编译失败
    • 0 编译成功
    • 1 编译失败
  • 未使用命令行
    • 0 使用了命令行参数
    • 1 未使用命令行参数

得分项:
表格中以下项目内容为该项得分

  • 两次commit - 满分5分
  • 四次commit - 满分5分
  • 可运行文件 - 程序可运行得0分,不可运行倒扣20分
  • 提交规范 - 合乎规范的提交一项为1得0分,为2倒扣5分
  • 未空行分开 - 生成的out.txt中,题目与答案若未使用空行分开,扣2.5分
  • 有等于 - 生成的out.txt中,题目若有=符号,扣2.5分
  • 实验1 - 是否通过了实验1的测试
  • 实验2 - 是否通过了实验2的测试

三、问题与建议

  1. 同学们在做作业的时候,请严格按照要求,完成规定项目,不要做自选项目

    例如:

    • 个人目录名称为PSPXXXX(有两位同学学号后四位与他人重复,因此使用了完整了学号,这是我们出题者考虑不周)
    • 提交java代码,java文件命名为MathExamXXXX.java
      • 我看到很多同学有 MathExam_1.java,这样是不符合规则的,我的测试程序没有那么智能,它不明白这是什么意思。
    • 明确要求使用命令行参数
      • 作业中没有要求说可以使用 Scanner 从标准输入中读取,那就不要用;作业里也没有要求 “在一次运行中,可以给用户多次机会输入”,那就不要为了所谓的 “用户体验” 来添加这个功能。测试程序就是作业程序的用户,作业程序这样做,测试程序的体验很差。
    • 明确要求生成的题目中不含“=”符号
    • 题目与答案之间空一行分开
    • 输出到文件且输出文件名为out.txt
      • 有几位同学输出的文件名为outXXXX.txt,这就导致我的测试程序找不到你生成的.txt文件,尽管里面的四则运算是对的,但我很抱歉,你的程序不能通过测试。
        ...

    不按照要求,随便做自选项目,结果就是程序不能通过测试。

    我们在设计API时遵循“契约式编程”的规则。我们在布置作业完成作业与测试作业的时候,也是这样。

    作业就好比是一个约定好的API规格,学生负责维护这个API,教师/助教就是这个API的调用者。

    我们都不希望在调用“日期”接口的时候,得到一个“当前时间”的返回值对吧:)

  2. 做作业之前,一定要先弄清楚你需要干什么

    承上一个观点,大家随意做自选项目,我觉得是因为并没有把作业看清楚。我看到很多同学在博客里写:

    一看到题就开始敲代码,早期没有设计好,给后期埋了很多坑

    现在大家都知道分析与设计的重要性了,希望大家在接下来的作业里能有所改观:)

  3. 作业要求应当更加明确。应在与自动测试相关的部分明确限制,不能让学生自定义需求

    • 乘除法只能用乘法表
    • 最多只能生成30个算式
    • ....

    这些自定义的需求给自动测试带来了一些问题,同学们对这些标准的设置不一样,最终也很难。

  4. 可以在翻转课堂上第一次使用 Git 与 Github。

    • 可以让大家在课堂上实操Git与Github,并在下课前PR一个小文件,比如自我介绍。这样就可以避免大家在提交作业时不敢动鼠标提交作业、fork错了别人的代码等等。
  5. 作业流程可以规定得更详细。

    这次作业在布置时我对大家如何完成的设想是这样的:

    • git clone 作业仓库
    • 新建个人文件夹
    • 在文件夹中创建 java 文件
    • 完成实验1,中途可能有几次commit/push
    • 还是这个 java 文件,继续写代码,完成实验2,中途又是几次commit/push
    • pull request

    从一些同学的java文件我能猜出来,他们可能是 “完成了实验一,之后新建了一个java文件,写实验二”,很可惜这些代码都测不到,如果作业写得详细一些,这些事情应该会少发生了吧。

posted on 2018-09-23 15:04  ChildishChange  阅读(400)  评论(11编辑  收藏  举报

导航