\(OO\)助教的工作结束了,在这一学期中,我主要负责对作业进行测试,对指导书进行检查,讨论区管理,部分数据构造,以及完成随班助教的工作。
测试
指导书检查
每次指导书公开前我都会先把指导书看一遍,指出一些有问题的地方,并给出一些自己的修改意见,保证每次的指导书没有重大的错误出现。不过由于指导书较为复杂的逻辑,尽管作出了不少修正,仍然可能会有或多或少的一些细小问题存在,毕竟助教团看指导书主要是我和负责写指导书的两个人,而看指导书的同学的有上百人。并且他们有充足的时间能够对指导书进行更加深入的研究,而助教阅读指导书的时间会比较少,因为指导书完成的时间也比较晚。而\(jml\)单元还涉及到对\(jml\)规格的检查,所需要的时间更多。
我认为在新的一年的\(OO\)工作中,指导书的完成\(ddl\)应该至少定为公开前一周,而读指导书的助教应该派更多的人,要追求不出现重大错误,尽可能减少细枝末节的错误。
作业测试
公测开始前会对公测正确性进行测试,主要使用标程和助教团完成的程序,此时也需要对标程进行压力测试,来确定每个数据点的时间限制应该设置为多少。有一次仅凭经验设定了时间在测试的时候发现完全不够,因为评测机的时间和本地有一定的差别,而当时指导书已经发布,不得已发公告进行修改。
强测开始前会找一些同学(尽可能涵盖较广的范围)的程序来对强测进行测试,简单的观察得分情况,检查数据的正确性,重点关注一些比较厉害的同学没有得分的数据点,确定是标程的问题还是同学的问题。
公测和强测比较重要的一点还有就是数据的强度,公测不宜过强,强测也应该给互测留下一定的空间,公测只需要做一些很基本的测试即可,强测则需要尽量考虑到各种边界情况/特殊情况,可以再对第一版强测进行测试以后找一些高分同学在本地对拍来加强数据,当然要是能在网站上搭一个供助教对拍的页面就更好了。
互测因为有时候会有特别的数据限制,互测开始前也需要对互测进行测试,比如不允许超过2000行,就测试一下2001行的数据能不能交上去,还要测试一些正确数据会不会被判断为错误交上去。不过经常有同学会问为什么某某数据交不上去,而助教用肉眼进行判断又会比较困难,使用测试课程的互测只能知道数据是否被判定为合法,不知道是同学错了还是\(spj\)错了,这里我希望明年的互测能反馈出一个不合法的理由,也有利于及时发现错误。
在测试的时候,有一次因为放假放忘了时间导致我忘记了对公测进行测试,而那次公测又恰好出现了问题,还好发现及时没有造成太大的影响。我认为最好可以有一个人在\(ddl\)前一天开始提醒,提前开始\(push\)。测试什么的也应该及早进行,而测试也依赖于开公测/强测/互测,所以这些也应该提前开,而且至少应该提前一天,不能到\(ddl\)才开,这会导致测试时间紧张,发现问题后修复的时间会很少,有几次就不得已往后延了开启公测的时间,这样会给课程带来一些负面影响。
讨论区管理
讨论区主要是我进行管理,蓝头也给我提供了不少的帮助,感谢蓝头。
主要做的是回答同学们的问题,给优质的帖子加精,让无意义的帖子沉底,对讨论区的内容进行一些引导,有时候也可以参与到同学们的讨论中,调动同学们的积极性。
在这里主要讲一些管理讨论区中遇到的问题:
第一、二单元的是大家发帖最积极的两个单元,而这时也有一个问题就是水帖严重,课堂问题的答案发个帖子,一种相似优化策略能出现多个帖子,导致讨论区十分的冗余,可能会影响其它帖子的寻找,这个问题在后来我每次开一个汇总帖,并且发公告禁止了重复发帖后出现了极大好转,最后汇总得分的时候也是对这些重复帖子进行了手动去重。建议把禁止重复发帖加入最开始官方规则。
第三单元的时候,有一篇帖子印象很深刻,因为质量十分的低,主要是讲了利用\(Floyd\)算法来打表,不过夸张的是,作者直接把这个巨大的表发到了讨论区,我想翻下一条回复要往下滑十多秒,而且作者的\(Floyd\)算法是错的。我认为以后的讨论区可以禁止直接发数据/详细代码,这会让一些同学成为伸手党,而更多鼓励同学们分享思路。
第四单元的时候有个最明显的问题就是同学们提的问需要和出题人沟通,因为负责管理讨论区的我不知道标程是怎么写的,是如何对某种情况进行处理,我的理解可能和出题人的理解不同,当时又正值烤漆,大家的回复可能会比较慢,这就导致了回复问题的效率低下,因为经常要和出题人沟通也导致时间花费较多,感觉职能比较割裂。我认为明年不应该让一个人一直负责讨论区,而是划分成小组,每个小组负责一个单元的一条龙服务,指导书,数据,讨论区,测试等全部由一个小组负责,如果不擅长出数据可以设置一个顾问之类的来帮忙。
还有就是我希望明年可以加这样一个功能,每个帖子后面显示一个未读条数,就像\(QQ\)和微信收到未读消息那样,或者就显示该帖子有新的回复就行。因为有时候同学们的提问可能在已经解答过的帖子之后,或者在某个帖子跟帖的位置提问,或者说提问没有打提问标签,导致我没有及时发现这些问题,从而让有些同学吐槽问题解答不及时。而每次挨着把所有帖子都点开然后从头翻到尾看有没有新问题也比较耗时,尤其是前两个单元帖子数目极多。有时候同学们对楼主的提问,对某个问题的回复,其它同学也可能忽略掉,还有就是有几次我采访一些强测翻车的同学(做错误总结),他们错的问题有时候是讨论区已经解决的,但是他们没有看见导致出错。
最后要反思的是有一次发公告打了错别字,\(orzzz\),通知一定要多检查几遍,而且要注意一下语气,公告、通知之类应该官方、正式一点。
数据构造
我主要负责了\(pre2-task6\),第一单元第一次作业,第四单元的数据构造。
\(pre2-task6\)主要采取利用正则表达式随机和手动构造一部分数据。
第一单元第一次作业因为觉得过于简单在构造数据时有些放松导致数据弱了一些,再简单的题也有可能会有人在边界情况/特殊情况下犯错。
第四单元的数据构造比较麻烦,目前没有找到一些比较好的自动化生成数据的方式。主要采用的是\(C++\)生成\(Java\)代码再用\(starUml\)转为\(Uml\)图和手造。遗憾的是四单元的数据受到题目限制,尽管在出数据时尽可能的涵盖了所有可能的情况,大部分同学也能轻松\(AC\)。我的感觉就是出数据极费时间,而题目却不难,三次的递进关系不明显,可以考虑换题或者合并为两次作业。
随班助教
作为一名随班助教,要做好课程组和学生沟通的桥梁,及时完成老师布置的任务,及时解答同学们的问题,在适当的时候给予一些引导。平时要做好平时分的统计,同时要关注一下班上优秀的、积极的同学,多和他们沟通一下,特别是有意向报名\(OO\)助教的同学,也算是提前了解一下,给自己找好接班人23333。
最后
最后,很荣幸能够成为一名\(OO\)助教,在这一年的工作中认识了不少厉害的同学和学弟,看到大家对\(OO\)的评价越来越好也是发自内心的感到开心(只要你夸OO我们就是好朋友)。
唯一遗憾的是某\(login\)同学的女装至今没有兑现,希望下一届助教们再接再励,早日\(push \space login\)完成女装大业,也祝\(OO\)这门课越来越好!