目录
存在主要问题
1)书写这种练习博客的步骤几乎都不对,建议按照以下步骤:
- 题目介绍(简单介绍题目内容、要求,或给出题目链接)
- 源码地址(github源码链接、或其他位置链接)
- 实现步骤
- 需求分析(再简单的系统也有需求、也要分析)
- 功能设计(有哪些功能,每个功能怎样实现,有图更好)
- 难点攻克(有没有难点,有的话,怎样攻克该难点)
- 编码实现(编码实现不是指“贴代码”,每段代码前后需要进行详细说明)
- 测试(测试截图,测试结果)
- 心得(做完此次练习后的体会,学到了哪些知识点?)
2)博客正文中所有源代码必须使用“代码样式”,Java代码使用Java代码样式,C代码使用C代码样式(此次作业很少人用到代码样式),看起来很不舒服;
3)命名要规范。无论类名、函数(方法)名、(成员)临时变量名、源文件名,统统使用规范命名方式,比如定义一个圆形类,请使用“Circle”,不要使用“Yuan”。负责计算的文件使用Calculator.cpp,不要使用class1.cpp;
4)要有代码注释。无论类、函数(方法)、成员变量都得要有注释,关键代码也要有注释;
5)截图时请截取局部即可,不要全屏截图,那样看不到重点,而且一般显示器显示不全;
6)提交源码必须整个项目文件夹全部上传,不要只上传一个源文件(比如test.c)。整个项目上传后,别人下载下来编译一下即可看到效果;
7)博客排版问题非常大,各级标题要与正文区分开来,字体、粗细要有区分;
8)部分学生题目没做完,只实现了一部分要求。
(其它具体小问题、在博客点评中已说明)
学生成绩
博客中有些同学写的实在是太简单,内容太少了,所以没有点评,直接给出分数。只要有内容的,我都给了分数,并没有给0分。
学号 |
分数 |
1162 |
8 |
1032 |
8 |
1184 |
4 |
1164 |
6 |
1165 |
6 |
1166 |
6 |
1167 |
7 |
1168 |
7 |
1170 |
1 |
1171 |
9 |
1172 |
5 |
1173 |
5 |
1174 |
5 |
1175 |
4 |
1176 |
7 |
1177 |
2 |
1178 |
4 |
1179 |
6 |
1180 |
7 |
1181 |
6 |
1182 |
8 |
1183 |
7 |
1184 |
1 |
1185 |
6 |
1186 |
6 |
1187 |
6 |
1188 |
8 |
1189 |
8 |
1190 |
8 |
1191 |
9 |
1192 |
5 |
1193 |
2 |
1194 |
8 |
1195 |
8 |
1196 |
6 |
1197 |
5 |
1198 |
5 |
1199 |
7 |
1200 |
9 |
1201 |
6 |
1202 |
1 |
1203 |
8 |
1016 |
4 |
1026 |
7 |
建议
感觉教会学生排版、格式 是当务之急。
第二次作业模式是同学之间结对编程,我在博客中只对同一组中第一名学生的博客进行了点评。点评完后,发现存在主要的几个问题:
存在主要问题
1)github提交源码几乎没有一个组正确,大部分都是只提交一个源码文件(比如.java、.c文件),甚至有人将代码放在txt文件中提交了。这个问题希望老师在上课的时候给同学演示一遍怎样提交源码,让学生有个直观的感受,可能我们在博客中说,学生没有概念;
2)这次同学们的博客质量明显上升了一个档次,无论是排版还是内容上,都比上次要好很多,进步很大。但是还有几个建议:
- 大多数同学过分强调程序的运行结果,并没有注重“实践过程”的展示。这主要体现在:大部分学生贴程序的运行截图,几乎不写他们是怎么去实现的;
- 博客中不提倡将全部代码全部贴进去,只需要将部分关键、重要的代码贴进去即可,并进行相应的说明和解释。这样让别人更能理解你的思路,很多学生要么一行代码没有,要么将全部代码往上一粘贴,还不给注释,这样看不到重点;
- 贴在博客中的代码必须要使用代码样式,不能直接像文字一样粘贴进去;
3)命名规范还需要注意,不能随便取a、a1、bba这样的名字;
4)既然是结对编程,每个人分工应该再写详细一点。比如加上两个人在协作过程中遇见了哪些问题,最后怎样解决的,这个几乎每组都没有。
总的来说,这次普遍质量要高于第一次,进步非常大。:)
具体点评内容,可以参见每个小组中第一个成员博客后面的评论。
建议
让学生尽快学会github上源码管理。
(持续更新)
第三次作业是一个团队项目作业,要求3~7同学组成项目团队,实现一个小型项目。具体要求见:http://www.cnblogs.com/qluZhao/p/4508794.html。我负责点评23-44号项目组的博客,在每组的博客中我大概都留了一些建议。
首先需要明确的是,无论从技术上还是工作任务量上看,本次作业确实要比前两次复杂一些。下面是我总结的一些问题:
存在主要问题
1)上两次作业的重点是编码和测试,这两个方面也是学生在课堂上接触最多的,有直观的印象。“可行性分析”、“需求分析”、“画功能设计图”、“画用例图、时序图”这些相对来讲,可能对于学生们更陌生,因为如果没做过实际项目,他们是体会不到这些工作的实质性意义,所以做完提交的内容显得非常不专业。需求分析、用例图、类图做得几乎都不合格。
2)个人认为,本次作业提交方式更适合采用上传附件的方式(博客中简要文字介绍一下即可)。本次作业中很多文档不是用一两段文字、上传几张图片就能完事儿的,而是要求分块、分级去写,这样一来,格式显得非常重要。可能很多同学不太擅长在博客园发表博客,所以上传的文章很多没法看。很多同学直接从Visio画图软件中截完图贴上来(图片还处在编辑状态),图片分辨率太小看不清,正文内容还不分级别(没有标题)。我认为,软件工程中很多文档应该在一些专业文档中完成,比如使用word/excel等,应该严格要求学生们的文档格式。一个计算机专业的学生连word/excel格式都不会调,真的说不过去。如果这种事情做不好,“软件工程”构建大法学得再好,也只能是虚的。
3)目前同学们已经提交的博客中,制定测试计划、给出设计类图这两部分普遍都不合格。团队组建及项目启动做得还好。利用NABCD模型进行竞争性需求分析每个组也都认真去写了(除了个别抄袭以外),但是写得内容还存在很多问题,大多数只停留在字面意思上,有的甚至字面意思都没理解到,比如NABCD中的"4.C竞争",有的同学分析自己在完成了项目后,对自己Java能力有很大提升,他把这个当作系统的竞争优势。在利用NABCD模型进行竞争性需求分析这块有以下问题:
- 说实话,要让学生想出一个非常具有创新性的项目出来,可能很难。他们能想到的大多数软件系统市面上都已经有成熟产品,所以在写“C竞争”这块时,都很吃力,没什么优势可写。但是作为一个作业来讲,哪怕自己做的系统没有什么竞争优势,我觉得同学们也应该按照正确的方式列出1、2、3来,而不是写一些模棱两可的套话;
- 在写“N需求”这块,也是套话太多。并没有类似“实地调研”的报告出来。
总之,在利用NABCD模型进行竞争性需求分析这块,感觉同学还并没有理解它实质性的用处,要知道,一个项目产品能否成功启动、后期能否成功推广产生利润,这一环节起到很关键性的作用。
[2015.6.15更新]
4)6.14号大部分学生提交了“面向对象程序设计”这部分博客。最大的问题有以下:
- 前面需求分析、竞争性分析包括设计都太理想化,到最终的代码实现特别简单。完全是把课堂上的一个小程序拿过来应付一下,跟前面做的工作脱节了,没有考虑前面已完成的工作;
- 经过之前两次作业的训练,学生到现在还没有掌握github源码管理;
- 完成一个项目后,将实现过程(编码实现)总结一下,写到博客中去。这样的一个任务,感觉大部分学生还并没有了解应该怎么做。学生们需要学的东西还有很多。
[2015.6.22更新]
5)6.21绝大部分学生均提交了最后的“运行及总结”这部分博客。有以下几点问题:
- 从最后的运行结果可以看到,和预料的一样,几乎没有可以拿去实际使用的项目系统。但是我认为,作为一个大作业,历时一个多月,凡是自己认真动手、动脑子去做了,哪怕最后用不了,还是值得鼓励的。我自己本科毕业4年,还是知道一点点情况的,学生做出来的东西几乎都用不了。这种情况避免不了,我们要做的就是多练习,日后能够短时间内适应真实的项目。
- 做完一个项目后,将自己在项目过程中遇到的一些问题以及怎样去解决的记录下来,这一点很少有人写到。总结这块还是跟前面一样,套话太多。
- 整个项目基本结束了,就我个人而言,有几个组还是做得比较好的。其中我认为最好的应该是这组http://www.cnblogs.com/bbker/(23~44组中选出来的)。可以看到,这组每篇博客均是用心去写的,没有官腔套话,这组编码能力也还行,最后做出来的东西虽然也可能用不上,但是我能感觉到这组成员确实是自己动脑子、认真对待了这次作业。
各组成绩
(有疑问的同学可以联系我)逾期未缴作业的重新补交没用。
序号 |
团队博客名称 |
NABCD[3*10] |
程序代码[4*10] (注意这部分包含提交博客和提交到github的源码) |
运行及总结[3*10] |
逾期未缴作业[-1*10] |
总分 |
说明 |
23 |
15 |
30 |
25 |
70 |
主要问题: 1)NABCD各项理解均有误,套话太多,没有自己的话。并缺少D项内容。 2)代码解释很详细,但要注意排版。github代码提交不正确。 |
||
24 |
10 |
10 |
20 |
40 |
主要问题: 1)需求分析并没有按照NABCD格式来。 2)没有源代码,只有界面截图。 |
||
25 |
25 |
25 |
25 |
75 |
主要问题: 1)NABCD基本理解正确,但是C项(竞争)还是不太具体。 2)代码没有上传至github,博客中只有截图,没有关键代码解释。 |
||
26 |
25 |
32 |
28 |
85 |
主要问题: 1)NABCD理解基本正确。C项(竞争)还是没有说服力,作为一次作业,整体上还是比较好。以后这种文档用语请使用书面用语,不要口语化。 2)源码解释非常详细。github提交源码还是有问题,具体方法参见之前助教@沉默的代码 的一篇博客。 3)大文件传输怎么解决 |
||
27 |
0 |
15 |
0 |
-10 |
5 |
主要问题: 1)NABCD部分有抄袭行为。 2)源码提交正确,但博客中并没有给出关键代码说明。 3)运行总结博客没有提交。提交后请联系我。 |
|
28 |
20 |
25 |
25 |
70 |
主要问题: 1)NABCD虽然每项给出的内容说服力不足,但是理解基本到位。 2)源码没有提交。 |
||
29 |
0 |
0 |
0 |
0 |
没有正常提交博客 最后的运行总结涉嫌抄袭 |
||
30 |
10 |
20 |
20 |
50 |
主要问题: 1)NABCD理解错误。 2)博客中代码没有说明,全部复制粘贴。也没有提交到github。 |
||
31 |
15 |
15 |
20 |
-10 |
40 |
主要问题: 1)博客排版格式很好,但对NABCD的理解不太准确。 2)设计部分详细,但是我看不到源码在哪里?源码提交后请联系我。 3)看不见运行截图 |
|
32 |
12 |
25 |
15 |
52 |
主要问题: 1)需求分析没有按照NABCD格式。写得比较详细。 2)没有提交源码。 3)总结部分涉嫌抄袭 |
||
33 |
5 |
15 |
25 |
45 |
主要问题: 1)NABCD理解错误,而且还不完整。 2)博客中源码没有注释,全部赋值粘贴,也没有提交。 |
||
34 |
5 |
0 |
10 |
-10 |
5 |
主要问题: 1)NABCD理解错误,还没写完整。 2)博客没有按时提交。提交博客后请联系我。 3)没有运行截图。 |
|
35 |
10 |
25 |
25 |
60 |
主要问题: 1)需求分析没有按照NABCD格式。 2)源码没有提交。 3)总结中应该列出遇到的一些问题,怎么解决的 |
||
36 |
15 |
15 |
25 |
55 |
主要问题: 1)NABCD理解有偏差,没有D项。 2)源码提交不正确,博客中也没有对关键代码进行说明解释。 |
||
37 |
10 |
25 |
20 |
55 |
主要问题: 1)需求没有按照NABCD格式,套话太多。 2)不应该使用控制台输出结果 |
||
38 |
25 |
30 |
15 |
-10 |
60 |
主要问题: 1)博客中贴进去的代码最好给出详细说明。 2)将总结补上。联系我。 |
|
39 |
10 |
20 |
5 |
35 |
主要问题: 1)NABCD理解有错误。 2)代码没有上传。 3)总结部分涉嫌抄袭。 |
||
40 |
20 |
20 |
10 |
50 |
主要问题: 1)代码没提交,设计和实现不一致 |
||
41 |
5 |
25 |
25 |
55 |
主要问题: 1)NABCD理解错误,缺少D项。 2)代码没上传。 |
||
42 |
20 |
15 |
5 |
40 |
主要问题: 1)NABCD理解基本正确,缺少C项。 2)代码没上传。 3)最后做的跟前面需求分析不一致 |
||
43 |
15 |
15 |
5 |
35 |
主要问题: 1)NABCD部分内容跟前面团队有重复 2)代码没上传。 |
||
44 |
20 |
28 |
20 |
68 |
主要问题: 1)NABCD理解基本正确,缺少D项 2)代码提交还是有问题。 |
建议
[2015.6.22更新]
经过3次作业训练,源码提交、博客排版等这些基本简单技能同学们几乎都没有完全掌握。我觉得这两个是今后网上教学的最基本前提,如果学生连这两个技能都没学会,网上教学很难推进。
任何一次作业,凡是自己动手、动脑子去做的,均可以得不低的分数,都值得鼓励。那种抄袭、自己不动手去做的均给零分或者低分。我建议老师们鼓励学生多自己动手,哪怕做得不好,也不要抄。
[1]各位同学请抓紧时间下载软件工程自我评测表,填写后提交至 zhouzhi@syxysoft.com。这里是模版。
[2]本次最优团队博客(23~44组)是:http://www.cnblogs.com/bbker/
我是4月底受周筠老师邀请做软工助教的,抱着共同学习共同进步的心态,我很欣然地同意了。但我本科毕业才四年,我很清楚记得我读书时周围学生的学习态度是怎样的(虽然这可能跟学校有点关系),所以当时觉得助教在网上辅导这件事推进会很困难,但后来两个月里我发现在大家的共同努力下,推进效果还是很明显的。
刚开始辅导的是贵师大的学生,发现他们基础还可以,后来由于某些不可抗力因素,换到了齐鲁工大的学生。点评第一次作业的时候,说实在话,我觉得跟贵师大的差别还是蛮大的,基础普遍不太好,无论是从博客排版还是代码格式上,均不太理想。记得当时我还跟周筠老师反馈过,她让我耐心一些。后来点评第二次作业的时候,发现大部分学生的进步非常明显,可能赵老师在第一次作业结束后在班上总结了几位助教的建议,学生们有所收获。总之,第二次作业让我看到了希望。再后来就是团队作业,我在前面点评总结中也说过了,可能这次作业难度较大,跨越时间较长,涉及的知识广,所以最后完成的效果并没有达到我的预期。当然这不是重点,重点的是很多学生涉嫌抄袭,应付了事。学生们这种行为不仅会让教软工这门课的老师失望,也更会让我们这些助教失去激情。(当然涉嫌抄袭的学生是少数,大部分学生虽然完成质量有待提高,但是都是自己动手去做的)
还有一个我搞不太明白的是:为什么三次作业过去了,博客排版、github代码管理等这些简单技能,作为软工学生大部分人硬是没有掌握呢。我不认为这些有技术难度,因为凡是上心想去做好的学生这两件事肯定可以做好。一打开博客,格式错乱,几乎不忍直视,源码提交还用txt...
总地来讲,我很享受这学期的网上助教点评,虽说小部分学生的表现不是很积极,但是大部分学生还是做得不错,很多私信我咨询问题,值得鼓励。有做技术的前辈指导,对于在校学生来讲,我觉得是一件来之不易的事情,希望童鞋们好好珍惜,我那时候读书很少碰到这样的机会,很多问题上论坛问,最后也石沉大海了 :) 同时,感谢赵老师、周筠老师、邹欣老师、飞龙大哥助教、曾助教,一起共事很快乐,再接再厉额! :)