也不分M1/M2了,就从头到尾的梳理一下这学期的软工课吧。
第一节课,老师就稀里哗啦说了一下这学期要怎么搞,什么个人项目啦,结对项目啦,团队项目一二啦,还要组队啊什么的,然后风风火火的组队。
个人项目,词频统计小程序。很快写好了,因为要按照效率评分,开始了恶心的优化之旅。试了试搞多线程,没搞出来。换了下数据结构,效率提高不少。得了本书,还阔以。拿了37/50
结对项目,是个多台电梯调度,每个电梯属性都不一样。先看代码。看懂了助教的代码然后开始写。算法一点都不高大上,模拟了现实生活中人们人所多台电梯调度应该是什么样子的。拿了92/100
团队项目。和室友还有周围寝室的同学组了队。黄金点游戏第二轮次,选了个迭代开发项目,接手学长。
不得不插一句,大学上到现在,学长在我心中的形象一点点塌掉。刚上大一的时候觉得大二的学长好牛啊。上大二的时候觉得大三的学长在学院路肯定更牛了。上大三的时候发现原来不是酱紫的。2/8原则真是无处不在。其他例子不具了,得罪人。
老师告诉我们,你们的学长都整合好了,你接着做就行。嗯,整合好了,我们接着做。
第一周按计划先设计,其实就是看代码吧。心里挺想当PM,队友希望我写代码,那就写代码吧。但是事情似乎就不受我控制了...(虽然受我控制也未必就有好结果)
看了学长代码觉得挺简单了,但是有的代码原样复制了一遍是几个意思呀...增加代码量么...
既然老师说学长们都整合好了,接口我们就不动了吧,把一些信息提取的函数提高一下准确度,再加点新功能。嗯,任务量似乎不大。简单分了分工,分词方面我跟室友一天就搞完了。
不知不觉就到了第四周。联系了爬虫组和网页,发现了,唔,我们处理的是爬虫组的数据不错,可网页组用的是10级学长的数据库。根本没用我们的...感觉有点凌乱,学长是怎么整合的呀?老师是怎么验收的呀?这事儿有点儿不对吧!
然后就到了Alpha阶段验收。什么?团队互评?虽然我对系内团结程度不完全信任,但这个时候大家应该会心照不宣的吧。这个时候罗杰老师出杀招了:不打分给排名。然后,一场博弈论的实践活动就开始了...
验收拿了100分,第三名,比第一名和第二名分别少了100和90分,然后在个人项目和结对项目积累的分数优势就统统木有了...分了分团队贡献分,第一阶段就算完了。
第二阶段前一两周都在忙大作业了,这软工也真的不想管。
跟网页组要来了需求,分析了一下,不难。先抽了一个下午+晚上跟室友写了问答页面信息提取。等第一组数据库到位了,又继续写了写,测了测。我管了算法,室友管了数据库,实现了网页组的需求。
到这会儿这课差不多也就完了。
想起邹欣老师之前在一篇博客回复我,等我写了10000+行代码,对一些软件工程存在的问题就有体会了。我数了数自己的编译大作业,5500+行。
又想起本来是有很多高工的小伙伴和我们一起经历这场磨难的,后来发现人家果断退课了。之人常情啊!高工能退课就是好!要是我能退课,我也退啊!
又想起几天前另一门软工课的同学跟我说,你们的软工课多好啊,起码还写了代码,我们啥都没学到,就一水课。我说,啥啊,你是不知道...
课程的总结到这儿也差不多了,说点不能算题外话的题外话吧。
从我们这一届开始,学院的课程结构开始改革。我们小班,碰上了所有的改革。
从大二上高小鹏老师的计组实验,到大二下王雷老师的操作系统实验,吴际老师的面相对象课,再到大三上杨海燕老师的编译(这个应该不能说是改革,因为已经做了很多届了),再到罗杰老师的软工课。我们是一路当小白鼠当过来的。
现在其中的一只小白鼠要说说感受了!
1.计组课
高老师是用心在改革,各方面的准备都很充分。作业量是大,但是有可行性,一周一个Project,早点动手时间肯定够,考核也很客观公正。虽然也有一些自学的知识,但可操作。高老师是个负责任的老师,每次的实验文档要求都很清晰,我们不会浪费时间在一些无聊的事情上。而且,按照高老师的思路来讲,他的作业是可工程化的,是可以按照一定的方法论去完成的。
后来新闻上看到高老师凭着计组的课改得奖了,这当然要得奖了!
2.操作系统课
这个课是11级的实验班在大三上做了一下,然后我们12级的在大二下做了。虽然我得了90,但我觉得我是水出来的。王雷老师可能比较忙,实验几乎照搬的MIT。其他按下不表
3.面向对象课
按下不表,同学们都懂
4.编译课
中规中矩吧,前面时间放的太松,后面略紧。有什么问题发邮件杨老师都会回复。有一回邮件还是早上五点回的。听说杨老师父亲身体不好,我猜当时杨老师可能在医院看护吧,瞬间就路人转粉了。
5.软工课
感觉出发点和计组课是一样的,想要按照国际一流大学的计算机系(或者软件工程学院?)学生的标准来要求我们。邹欣老师想探索出一条软件工程课怎么上的道路。但可能只有出发点和计组类似吧,其他方面就没法比了。
看了《构建之法》的书,知道原来老师上课PPT的内容都来自这里;又没有很好地掌握上一届学长的团队项目到底什么情况,那老师究竟做了些啥?
当这样的软工课还放在有诸多更值得做的大作业的学期,结果也就...
也不知学弟学妹们能否看到这篇博客。如果你们上的是罗杰老师的软工课,建议如下:
1.牛到可以一个人干8个人或者24个人的活,并且心甘情愿一肩挑的,随便来。
2.学长项目尽量别选,尤其团队合作类的学长项目。
3.推荐自选项目,至少能完整感受一下流程。网上实际项目的代码多得是,很多模块可以拿来用,看多了自己可能就有想法了。