也不分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.推荐自选项目,至少能完整感受一下流程。网上实际项目的代码多得是,很多模块可以拿来用,看多了自己可能就有想法了。

软件工程M1/M2总结的更多相关文章

  1. 软件工程M1/M2总结及阅读作业总结

    一.软件工程M1/M2总结 写下这篇总结的时候,我们的软件项目尚未完工.虽然尝试申请了延期答辩,但最终未能成功.这意味着,我们的项目能否正常发布已经处于了一个微妙的状态.可能可以,也可能不可以.只能尽 ...

  2. 个人阅读作业 --软件工程M1/M2总结

    软件工程M1/M2总结 写在前面的话: 这学期的软件工程伴着考期的展开逐渐落下帷幕,回顾这学期的软件工程,我感觉我的热情在一次又一次的失落中逐步消耗殆尽,每个人对于这门课的体验都会有所不同吧,可以确定 ...

  3. 【个人总结】软件工程M1/M2总结

    个人博客连接: http://www.cnblogs.com/lwq12061168/p/4094252.html http://www.cnblogs.com/lwq12061168/p/40284 ...

  4. 【个人阅读】软件工程M1/M2做一个总结

    1.以前博客链接 http://www.cnblogs.com/penglinjiang/p/4027850.html http://www.cnblogs.com/penglinjiang/p/40 ...

  5. 【个人阅读】软件工程M1/M2阶段总结

    这次作业是好久以前布置的,由于学期末课程设计任务比较重,我在完善M2阶段的代码的同时又忙于数据库的实现和编译器的实现,一度感觉忙得透不过气来....到这些都基本完成的时候,会看自己以前的阅读心得,觉得 ...

  6. 个人阅读作业——软件工程M1/M2的总结

    临近学期末,本学期的软件工程课也已经结束了,在此我对软件工程课中,我们团队M1和M2开发阶段中,我做的工作做一个总结 我是DEV,主要工作是等着上级给我分配任务,但是很多时候如果这个活我不干,其他人就 ...

  7. 【个人阅读作业】软件工程M1/M2总结

    链接:”看<快速软件开发>的五个问题“ http://www.cnblogs.com/leiyy/p/4027759.html 一.较为明白的问题 1. 在文章的第一个关于Square_T ...

  8. M1/M2项目阶段总结

    1.M1/M2总结 我们这学期完成了学霸项目. 在M1阶段,我们首先进行了分工,完成了一个系统的计划,然后是对学长代码的移植和优化.在优化代码的过程中,我们遇到了不少问题,比如一些代码的冗余以及指向性 ...

  9. T-SQL - 习题02_将数据表year|month|amount查询成year|m1|m2|m3|m4的样式

    时间:2017-09-11 整理:byzqy 题目:有个年度统计表,结构如下: 怎么样把这个表,查询成这样一个结果: 这是在面试过程中遇到的一个关于数据库的题,没有一点思路,不知它考查到的知识点是什么 ...

随机推荐

  1. Python基础知识:测试代码

    1.Python标准库中的模块unittest提供了代码测试工具. 单元测试用于核实函数的某个方面没有问题: 测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求. 通俗的理解 ...

  2. javascript获取DOM对象三种方法

    1. getElementByID() getElementByID()方法可返回对拥有指定ID的第一个对象的引用 2. getElementByTagName() getElementByTagNa ...

  3. tkinter内嵌Matplotlib系列(二)之函数曲线绘制

    目录 目录 前言 (一)对matplotlib画布的封装: (二)思路分析: 1.需求说明: 2.框架的设置: 3.文件说明: (三)各文件的源代码 1.main.py 2.widget.py 3.f ...

  4. node学习笔记_04 express相册

    学习node用express框架做了一个相册展示及上传功能: 1.没有连接服务器,这里全部是操作文件夹 2.安装上传文件的依赖formidable,npm install --save formida ...

  5. jweixin-1.1.0.js微信接口“分享给朋友”文字和图片配置

    在npm官网找到了:微信官方 js-sdk CommonJS 版https://www.npmjs.com/package/weixin-js-sdk 步骤一:引入JS文件在需要调用JS接口的页面引入 ...

  6. golang xorm框架的使用

    1.创建engine engine, err := xorm.NewEngine(driverName, dataSourceName) 上述代码创建了一个数据库引擎,可以在一个程序中创建多个engi ...

  7. Java虚拟机4:Java对象创建和对象访问

    1.对象创建 Java是一门面向对象的语言,Java程序运行过程中无时无刻都有对象被创建出来.在语言层面上,创建对象(克隆.反序列化)就是一个new关键字而已,但是虚拟机层面上却不是如此.看一下在虚拟 ...

  8. python 之 递归

    终于来到了这里,这是一座山,山那边都是神仙 定义:在一个函数里调用函数本身 最好的例子就是,求阶乘 def factorial(n): if n == 1: return 1 elif n > ...

  9. Android Activity学习笔记——Activity的启动和创建

    http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html 最近学习Android相关知识,感觉仅仅了解Activity几个生命周期函 ...

  10. mascara-2(MetaMask/mascara本地实现)-连接线上钱包

    https://github.com/MetaMask/mascara (beta) Add MetaMask to your dapp even if the user doesn't have t ...