我们实践了十年的“做中学”,迎来了第一次较大的改进:根据《构建之法》的设计,在原有团队项目的基础上,引进了个人项目和结对编程。由于我们这门“做中学”实际上是三门课程合起来的一个创新课程:《软件工程导论》、《软件设计与实现》和《软件文档写作》,所以创新课程的成绩会极大影响学生的奖学金评比和保研。学生因此从奖学金和保研两个方面考虑都会全力以赴。具体考核方式上,由于是第一次引入个人项目和结对编程项目,这两个项目的分数占比和邹欣老师建议的有所降低:三个项目(50%),其中 个人项目(10%) 结对编程项目(10%) 团队项目(80%); 一个期末考试(50%)。
具体计算方法是:个人最终成绩=个人项目分+结对编程项目分+个人贡献系数*团队项目分+期末考试分。除期末考试分外,原始成绩进行归一化后计入。 个人贡献系数:开发人员为1,即百分之百享受团队分;非开发人员,为考试中关于团队项目设计题得分比。 每周一篇优秀博客评比,每篇优秀博文奖励博主期末成绩100分制的1分。 15%的优秀个人项目、结对编程项目、团队项目,每个成员奖励期末成绩100分制的3分。
个人项目:功能实现,5分;编程规范5分。功能缺失和编程不规范,扣分。80%以上相似者,涉及两人,同扣5分;三人及以上者,每增加一人,多扣1分,多人同扣。
结对编程项目:功能实现,5分;编程规范5分。帮助对方提升和自身提升者,奖励1-5分。该奖励分以(个人项目+结对编程项目+奖励分)<10分为限。
团队分扣分规则: 团队成员考勤,迟到、早退或缺席,每次扣1分; 文档迟交或文档敷衍了事,每次扣0.5分; 按照需求文档,功能缺失,每个扣5分; 测试报告中的bug每个扣1分;验收时其他bug扣3分。
中间有些环节,进行针对性的考察,如课堂作业录制视频当场提交等,待后续慢慢分解。