2022秋软工实践 第二次结对编程作业

温雷蕾 2022-10-02 20:31:27

背景

栋哥对大家第一次结对编程作业的原型设计感到很满意,为了尽快让同学们使用上软件,于是栋哥花一晚上时间开发了一个点名小程序。但是在上线运行过后,发现了一些问题:

  1. 大多数老师习惯在每次上课后或下课前的一小段时间内进行点名。
  2. 如果采用全点的方式,在这段时间里,后端服务器需要处理大量的请求,拥塞导致响应速度变慢,给点名小程序带来极差的使用体验。
  3. 采用随机抽点的方式,能够有效减少并发量,但是无法保证点名的质量,难以有效抓出没有到教室的同学。

所以栋哥急需大家设计一个算法来解决这个问题,要求能够最小化向后端发送的请求次数,最大化抓出缺勤同学的数量。

具体要求

定义5门课程,每个课程班级人数为90人,一学期共20次课。每门课程均有5-8位同学缺席了该学期80%的课,此外每次课程均还有0-3位同学由于各种原因缺席。

参数定义:

  • 请求次数:定义在一次点名中,获取一位同学是否到达课堂的情况为一次请求
  • 有效点名:一位同学缺席该课程的一次课,算法在这次课上抽点到该同学,视为一次有效点名,一次课可包含多次有效点名。

评价标准:

img

输入

五门课程的全部人员到勤信息

输出

E、五门课程的抽点方案

要求

  1. 最大化E,该标准将作为确定本次作业作业得分的主要依据之一
  2. 输入的数据,另外编写生成程序随机实现。
  3. 为输入输出设计标准化、通用化、可扩展的接口,能为该智能匹配程序模块后期可能的整合入系统提供便利。
  4. 输入输出的格式,如采用文本文件或数据库的方式输入,可自由讨论确定。
  5. 可为智能抽点算法额外的添加一些合理的辅助搜索信息,如绩点等,可自由讨论确定。
  6. 代码具有规范性。
  7. 实现的程序语言不做限制性要求。

说明:仅就上述内容,实现一个单独的程序模块。不需要和之前的原型整合在一起。

提交作业要求

本次依然通过github进行完成,请结对的同学在一个仓库中提交代码,包含:

  • 符合题目要求的数据集生成器,生成的数据需要以文件形式保存。
  • 符合题目要求的算法,能够读入所生成数据并输出具体要求中要求的输出结果。
  • 在README文件中清楚的介绍如何搭建环境以及运行代码,方便助教进行检查。

此外,需要攥写一篇博客,包含:

  • 给出你认为的是重点或难点功能、编程思考,至少2点。
  • 给出照片1张,包括结对的2位同学、工作地点、计算机,可选项包括其他能表达结对编程工作经历的物品或场景。
  • 结对感受,以及两个人对彼此结对中的闪光点或建议的分享。
  • 给出至少2项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件。
  • PSP 和学习进度条 参考:http://www.cnblogs.com/vertextao/p/7469789.html
  • 给出 GitHub 仓库地址和 commit 记录。
  • 【可选】给出程序模块运行的视频演示链接。

得分标准(共50分):

项目分值
数据集生成8
算法设计(创新性等)15
算法实现($E$值、结果的稳定性等)15
代码的模块化(易于整合入系统等)7
开发规范5
...全文
3210 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengwei7 2022-10-09
  • 打赏
  • 举报
回复

.............

173

社区成员

发帖
与我相关
我的任务
社区描述
高校教学社区
软件工程 高校
社区管理员
  • fzusdn
  • mastertime
  • Eleven955
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧