注:本次成绩排行榜是针对结对项目二的点评分数

作业要求

http://www.cnblogs.com/easteast/p/7604534.html

评分细则

(1)有贴生成得最“好”的数据链接(5'),并详细解释了"数据生成"程序的原理与所考虑的因素。(10')
(2)数据建模及匹配程序的思路及实现方式方面,给分点主要在几个方面:是否有清晰明了的框架图或结构图(10’),算法的理论基础或源自的相似问题,对原始算法做出的改进等(10'),建模时考虑了哪些因素,是如何把这些因素综合进算法的(10')。
(3)代码规范方面只要给出结对时采用的代码规范,比如变量与方法的命名,接口约定等均可得分(5')
(4)结果评估方面,主要从三方面评分:是否提出了合理的评价结果的方式,比如从学生满意度,社团满意度等多重指标都可(8'),是否从得到的结果预测与评估算法的局限性(6’),是否针对不同输入数据的场景进行了实验,观察算法的稳定性与通用性(6')。
(5)已经尝试过结对编码,你一定很多话要说。请发表结对感受,以及两个人对彼此结对中的闪光点或建议的分享。(10‘)

作业情况总结

本次结对项目是所有个人作业里整体质量最差的一次,满分100分的情况下整体平均分只有48分。小于60分的同学占整体的2/3,唯一一个上80分的同学是陈翔同学。综合大家在博客里的抱怨来看,本次作业没有完成好主要有几个原因:(1)结对作业的日期放在了国庆假期,但很多同学很早就制定好了出行计划,没办法与小伙伴结对编程。许多组作业开始的时间很晚,所以质量不佳。这个助教也与栋哥商量过,明年会尽量避免这种情况。(2)许多同学一开始不知道作业采用的JSON格式是一种通用数据格式,于是自己编写了Parser,花了很多无用功;(3)大部分同学在编程方面花费了许多时间,但在题意的理解上却没有下功夫。这个题目并不是一个板上钉钉的唯一解问题,而是一个开放性的问题。它的本意就是希望大家在综合考虑现实世界的情况下,用数据生成程序生成一些与现实世界分布相近的数据。举个栗子,现实世界中不同部门热度不同,所以会大概率出现80%的学生选择20%的部门的情况,这是在数据生成部分应当考虑的。在生成模拟现实世界的数据后,同学们再设计一套匹配的算法去优化一些参数,这些参数可以是部门的满意度,可以是学生的满意度,也可以它们的加权和。因为存在着学生志愿与部门渴求的矛盾性,匹配程序里面一定会有一些权衡,这也是我们希望同学们重点去阐述与在博客中描述的部分:如何处理这些需要权衡之处?怎样的优化目标是好?为什么说这样的优化目标就好,有数据佐证吗?希望同学们可以从这里得到一些新的启发,对这个问题有一次全新的认识。

本次结对项目大部分同学都是用部门挑选人的方式来遍历挑选,挑选主要参考因素权重计算的分值。对于这样做的小组我有一个统一的问题要问:这样的算法是稳定的么?是不是先挑选人的部门更有利呢?这样做的小组可以思考一下。有一部分小组采用的是稳定婚姻算法的改良版来完成作业,从最终评估的结果来看效果并不理想。第1组的同学采用了网络最大流最小流的方法来完成作业,算法思路很有意思,可惜程序运行不出来结果,有兴趣的老师或同学可以点击下方小组链接查看。

本次作业也无疑对测试提出了很大的挑战:开放性的问题也就意味着我们不能用传统的标准答案来衡量大家匹配算法的好坏。而实际上,我们最终采用的是群体决策结果为评价标准的做法。选择一份对现实世界建模做得较好的输入文件,收集所有小组程序运行结束后的输出文件,这样就得到了每位同学对于每个部门招到哪些学生的期望。将所有同学的结果合并为一份结果,按照出现次数从高到低排序,就得到了小组们群体决策下每个部门录取同学的优先级。再然后,利用理想录取优先级表对各个小组的实际匹配结果进行打分,打分的具体公式受信息搜索领域MRR(Mean Reciprocal Rank)的启发,用如下公式表示小组在部门\(i\)的匹配得分:
\[score_{ij} = c / rank_{term_{ij}} ( j =1,2,..n) \]
其中\(term_{ij}\)指小组匹配结果中第\(i\)个部门录取的第\(j\)个同学,\(rank_{term_{ij}}\)指该同学在理想优先级表中所处的位置,\(c\)为常数。

这个公式显式的意义是:如果大家都觉得同学A应该被部门B录取(\(rank_{A}\)很低,因为优先级很高,靠前),小组匹配的结果中部门B确实录取了同学A,那么匹配程序的得分应当高些;如果大家都觉得同学A不应该被部门C录取(\(rank_{A}\)很高,因为优先级很低,靠后),小组匹配的结果中部门C却录取了同学A,那么匹配程序的得分应当低些。

本次项目测试选择的是陈翔同学设计的输入文件(需要下载验证的同学下载后更改后缀为txt即可),在此也强烈推荐他的博客,博客的结构、匹配的方法和建模的思路都非常值得大家学习。当然也有不少同学在本次项目测试中得到了低分甚至0分,助教复核过了所有程序,列出各个组出错的原因如下:

分组 出错原因
1 死循环,没有错误信息
2 Json格式不对
4 所有都是unlucky boy
5 没有Github项目地址
8 没有输出文件
9 java.lang.UnsupportedClassVersionError: main/Main : Unsupported major.minor version 52.0
11 没有输出文件
19 所有都是unlucky boy
25 没有test.exe
27 所有都是unlucky boy
28 项目崩溃,停止运行
29 运行崩溃
31 输出的是空白,没有实质内容
32 崩溃退出
33 无可执行文件

得分明细

分组 学号 12.1 12.2 12.3 12.4 12.5 12.6 12.7 总分
1 500 10 18 5 8 5 0 0 46
1 908 10 18 5 8 5 0 10 36
2 102 10 18 3 5 6 3 0 45
2 409 10 18 3 5 6 3 0 45
3 118 6 8 1 3 2 0 0 20
3 509 6 8 0 1 4 0 5 14
4 106 11 20 5 12 8 5 0 61
4 634 6 15 5 0 5 5 0 36
5 433 0 10 4 0 10 0 0 24
5 109 0 4 0 0 4 0 0 8
6 308 15 25 5 12 10 5 0 72
6 113 15 18 5 10 10 5 0 63
7 142 15 22 4 10 8 7 0 66
7 216 15 21 4 10 8 7 0 65
8 209 15 26 5 20 10 5 0 81
8 316 15 22 5 16 10 5 0 73
9 245 12 23 5 10 6 0 0 56
9 210 10 18 1 12 5 0 0 46
10 212 9 22 2 10 6 20 0 69
10 240 9 17 2 10 7 20 0 65
11 220 9 10 5 5 2 0 0 31
11 344 9 10 5 5 2 0 0 31
12 232 8 22 4 8 7 13 0 62
13 243 12 15 5 11 6 0 5 44
13 642 12 14 5 11 6 0 5 43
14 306 0 0 0 0 0 14 0 14
14 314 0 0 0 0 0 14 0 14
15 339 8 12 2 3 4 16 0 45
15 309 7 12 0 3 4 16 0 42
16 310 9 17 5 6 7 13 0 57
16 124 9 17 5 6 7 13 10 47
17 312 12 18 2 10 8 10 0 60
17 340 12 10 2 0 8 10 0 42
18 315 13 20 5 12 5 11 0 66
18 332 13 20 5 12 5 11 30 36
19 324 14 25 5 5 6 5 0 60
19 411 14 25 5 5 6 5 0 60
20 328 4 18 2 0 4 12 0 40
20 337 0 15 2 2 3 12 0 34
21 331 7 17 3 8 8 11 0 54
21 430 7 13 3 8 8 11 0 50
22 333 9 22 5 10 2 13 0 61
23 517 15 18 5 10 4 11 0 63
23 336 15 12 5 10 4 11 0 57
24 427 6 18 4 1 8 14 0 51
24 341 6 12 4 1 5 14 15 27
25 404 8 21 5 16 8 0 0 58
25 443 8 21 5 16 8 0 0 58
26 412 8 9 5 0 8 0 0 30
26 414 8 9 5 0 8 0 0 30
27 424 13 20 5 12 6 5 0 61
27 513 13 20 5 12 6 5 10 51
28 442 15 25 5 17 10 0 0 72
28 522 15 25 5 17 10 0 0 72
29 506 13 20 5 10 6 0 0 54
29 529 8 12 4 3 3 0 0 30
30 541 12 22 5 14 10 11 0 74
30 512 10 14 5 6 5 11 0 51
31 641 10 10 5 3 4 0 0 32
31 513 6 10 5 3 4 0 0 28
32 537 12 20 5 0 9 0 5 41
32 518 10 20 5 0 9 0 5 39
33 533 10 12 5 0 7 0 0 34
33 538 10 12 5 0 7 0 0 34
34 610 11 16 5 6 4 20 0 62
34 609 8 12 5 6 3 20 0 54
35 614 10 19 5 9 10 10 0 63
35 627 10 17 5 9 8 10 0 59
36 626 12 18 4 7 8 18 0 67
36 643 12 18 4 6 8 18 0 66
37 631 10 18 5 8 7 11 0 59
37 629 10 14 5 8 7 11 0 55
38 630 12 15 5 6 6 11 0 55
38 644 12 15 5 6 6 11 0 55
125 0 0

注:各项对应内容:

  • 12.1:好的数据与生成原理(15')
  • 12.2:数据建模匹配程序思路与实现(30')
  • 12.3:代码规范(5')
  • 12.4:结果评估(20')
  • 12.5:结对感受(10')
  • 12.6:项目测试得分(20')
  • 12.7:扣分,这里主要是指因为博文的高度重复而导致的扣分,以先发博客的人为原创作者为准。

得分排行榜

[福大软工] Z班 第12次成绩排行榜的更多相关文章

  1. [福大软工] Z班 第2次成绩排行榜

    作业链接 http://www.cnblogs.com/easteast/p/7469291.html 评分细则 本次个人项目分数由三部分组成,分别是 (1)博客 - 20分,分数组成如下: 在文章开 ...

  2. [福大软工] Z班 第6次成绩排行榜

    作业要求 http://www.cnblogs.com/easteast/p/7668890.html 作业评分 本次作业从引言(5 ') . 用户场景(15 ').类图(10 ').界面原型(15 ...

  3. [福大软工] Z班 第13次成绩排行榜

    注:本次成绩排行榜是针对华为软件云评测博客 作业要求 http://www.cnblogs.com/easteast/p/7772637.html 评分细则 (1)寻找软件的bug,功能的评测与黑箱测 ...

  4. [福大软工] Z班 第4次成绩排行榜

    作业要求 http://www.cnblogs.com/easteast/p/7511234.html 评分细则 (1)博客--15分,分数组成如下: 随笔开头,给出结队两个同学的学号.PS:结对成员 ...

  5. [福大软工] Z班 第11次成绩排行榜

    注:本次成绩排行榜是针对团队Alpha阶段冲刺博客的得分统计 作业要求 http://www.cnblogs.com/easteast/p/7749181.html 评分细则 在团队Alpha阶段刚开 ...

  6. [福大软工] Z班 第1次成绩排行榜

    作业地址 http://www.cnblogs.com/easteast/p/7403491.html 作业要求 (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? ...

  7. [福大软工] Z班 第5次成绩排行榜

    作业链接 http://www.cnblogs.com/easteast/p/7613070.html 作业要求 团队项目--选题报告 1)发布博客: 一个团队发布一篇随笔,内容为团队的选题报告,选题 ...

  8. [福大软工] Z班 第7次成绩排行榜

    作业要求 http://www.cnblogs.com/easteast/p/7668887.html 评分细则 本次作业评分较为简单,只包含了两个方面的得分,一个是团队任务的计划(10'),一个是采 ...

  9. [福大软工] Z班 团队Beta阶段成绩汇总

    Beta敏捷冲刺得分 队伍名 1 2 3 4 5 总分 Dipper 10 10 10 10 10 50 SWSD 9 9 9 9 7 43 五成胜算 10 10 10 10 10 50 人月神教 0 ...

随机推荐

  1. Spring Boot 设置静态资源访问

    问题描述 当使用spring Boot来架设服务系统时,有时候也需要用到前端页面,当然就不可或缺地需要访问其他一些静态资源,比如图片.css.js等文件.那么如何设置Spring Boot网站可以访问 ...

  2. Cookie 用法

    //Cookie:是一个客户端状态保持机制,(网站的数据是存在客户端),与隐藏域与ViewState对象都属于这种客户端状态保持,Cookie中存储的是关于网站相关的文本字符串数据.Cookie的存储 ...

  3. C# string数组转int数组

    用法 //字符串数组(源数组) string[] sNums = new[] {"1", "2"}; //整型数组(目标数组) int[] iNums; //转 ...

  4. C#设计模式之十八状态模式(State Pattern)【行为型】

    一.引言 今天我们开始讲“行为型”设计模式的第六个模式,该模式是[状态模式],英文名称是:State Pattern.无论是现实世界,还是面向对象的OO世界,里面都有一个东西,那就是对象.有对象当然就 ...

  5. JavaScript黑客是这样窃取比特币的,Vue开发者不用担心!

    如果你是JavaScript或者区块链开发者,如果你有关注区块链以及比特币,那么你应该听说了比特币钱包Copay被黑客攻击的事情.但是,你知道这是怎么回事吗? 总结 比特币钱包copay依赖event ...

  6. Github被微软收购,这里整理了16个替代品

    微软斥资75亿美元收购以后,鉴于微软和开源竞争的历史,很多开发者都感到惊恐.毕竟,互联网上最大的一块可以自由的净土被微软染指,宝宝不开森.如果你真的担心微软会对Github有所动作,那么这里我列举了1 ...

  7. [小知识点] react 性能

    场景: jsx 绑定方法 方法有3种 1: // 在html中,使用箭头函数,自动绑定this class SearchHistory extends React.Component {      c ...

  8. 今天学习了flex布局

    前言:这个网站详细讲了水平.垂直.水平垂直的css方法.https://css-tricks.com/centering-css-complete-guide/ 布局的传统解决方案,基于盒状模型,依赖 ...

  9. memcached 源码阅览 一

    想要快速了解memcached内部原理么?那么赶紧离开本页,这会耽误您的时间. 不知时隔多少时间,今天受了些刺激,在码农路上开始犹豫起来,但是想想自己也没其他本身,就只好放下王者荣耀,重新看看技术内容 ...

  10. 有序列表ol,无序列表ul,定义列表dl

    ====================非常重要=================无序列表ul中有一个type属性四个属性值type="disc" 实心圆点(默认) type=&q ...