2017软件工程实践总结
2017软件工程实践总结
从2003年开始教软件工程这门课开始,怎样更有效的推进学生的软件工程实践,一直是我思索的问题。其中尝试过不少手段,包括引入案例、引入项目、分个人分团队等等。始终感觉学生是被动式的接受知识,参与积极性不高,对此我也经常觉得无奈。 15年栋哥开始使用《构建之法》完成实践教学,我就开始关注其效果,并默默地买了一本学习。很快书中的一些方法让我深以为然—这可不就是之前困扰我的那些问题的解决办法嘛!因此今年果断地实施这种授课方法。
学期初觉得自己已经理解构建之法的思路了,所以我就决定本科的《软件工程实践》和研究生的《高级软件工程》两门课都实施新的教学方法。现实很快就给我一个打击—之前联系好的ZYQ因为工作原因无法承担助教工作,没有办法再提供企业助教!然而,这点挫折并不能成为前进的绊脚石。很快我动员了研究生担任助教,自己也承担了部分助教的工作,在周筠老师不断的鼓励下,在刘乾、谢涛还有其他助教团队的帮助下,卞倩虹、李娟和钟鹏快速成长起来,承担起了繁重的助教工作,在此,我对他们表示深深的感谢!当然,困难还是被我低估了。两门不同的课程,包括的知识点和要求各不相同,骤然改变授课手段遇见的问题并不是1+1=2这么简单。经过开学初的一段痛苦的磨合和思索,终于慢慢地摸索出各自的作业内容和体系。
正如K老师所说,敢于选择这门课的都是胜利者。回顾同学们学期末对课程的总结,最多的是“累”但有收获。是的,采用构建之法进行教学,与传统的方式相比,编程的作业量多了很多,本科生在这门课上至少累计了2000行代码量;研究生平均周学时投入60小时,至少累计6000行代码量。有了代码的基础,在课堂上讲解其他的方法才有可能引起学生的共鸣。同学们正是认识到这一点,投入的热情是前几届同学所不具备的。
在这几个月的教学过程中,我也深深地体会到“教学相长”,学生与教师正如健身学员和健身教练:教练制定训练方案,学员努力完成,教练听取反馈,制定新的方案……最后技术和本领落在学员身上!当然这个过程助教功不可没。每次作业布置下去,再积极的学生也会有踌躇的时候,是助教一次次不厌其烦的催交作业,一次次不厌其烦的在qq上回答问题,一次次不厌其烦的在GitHub上当程序、跑程序、评分、点评!
-首先我挺庆幸来到这个班的,别的班由于人数问题或是其他原因,基本助教不搭理人,而我们助教学姐们真的很热情,你有的所有的问题都可以问她们,甚至你遇到的精神问题,你可以问她们。为什么说是精神问题呢?我想大多数参与其中的人有这样的一个感受,如果你不是一个有经验的开发者,多半在开发的途中会遇到的过多的挫折和DeadLine临近的危机感,这种感觉多多少少会让你慢慢失去开发的热情,其实这是一件很可怕的事。我在软工实践总结有说到我们这样的一个心理过程,以及对整个团队氛围和团队向心力的影响。学姐们说的最多的一句话就是:“刚开始都这样,初学者嘛...XXX组比你们更惨...”虽然是不是更惨我不知道,但是突然有了一种我们不是最菜的,感同身受还有人比我更惨,这种好像很“恐怖”的想法。所以,我真的很感谢她们,各种意义上。我希望以后老师能多养几个这样的学姐2333。
-在和助教的交流中,我知道了我与她们的巨大差距。她们能够信手拈来的东西,而我们需要苦苦折磨了一天又一天。一个API就是至少一整个晚上的时间,这是我印象最深的地方。我英语很弱,还不是很擅长看那些英文文档,等等之类。但是开发是一个迭代的过程,这次开发中我学到的东西,我学会的东西,再下次开发中我可以直接利用,从而有更多的时间去学习新的东西,如此以来,你的能力将会越来越强,也能够做越来越棒的东西,可以说每次开发都是一次巨大的提升。从可望不可即到触手可及,到你真的拿到了你想要的东西。
可以说没有助教的辛勤工作,同学们的学习热情就不可能持久,教师的思路就无法落实!再一次对卞倩虹、李娟和钟鹏表示深深的感谢!
教学实施过程中的问题和困扰还是存在的:
- 一是,对学生的分组是否需要干预。这轮教学中采用的是不干预措施,但是出现一个小组的成员非常零散(来自双学位、重修生等不同学院、不同年级),组长每一次组织活动非常困难,这种情况直到团队换人之后才有所改善。
- 二是,对学生的哪些学习数据进行收集。学生学习的数据很多(不仅仅是代码量),有些数据是我们需要关注并收集的,能够为后续教学持续改进提供帮助,需要认真总结和提炼。
- 三是,对学生项目做进一步选择,有的项目是可以进一步扩展的,把这类项目挑选出来,下一届的学生可以在此基础上进行开发,好处是可以让学生体验增量开发,缺点就是如果项目缺少必要的代码和文档,会造成下届学生开发的困扰,因此这项是否实施还在考虑当中。
构建之法从思想和做事方式上影响着我,在这一轮的教学中有所体会收获,更多的还要在今后的教学中实施和调整。“行百里者半九十”,勉之。