冷雨里的冰可乐

冷雨里的冰可乐中午,雨下得很密集。向龙把车停在校医院,告诉我和ZHUMAO,车后备箱里有两把伞。一把是小女孩用的遮阳伞,无论是尺寸还是挡雨的能力。这把伞向龙自己用,大约能遮住他的脑袋合部,左右肩各露出一部分在雨里浇着。另一伞也是小女孩用的遮阳伞,除了颜色,和前一把没有区别。我和ZHUMAO两个人打。后来我和向龙两个人打,后来向龙和ZHUMAO两个人打。从校医院冲到6路车站,雨越来越大,已经不能再向前冲了,我们躲在广告牌子侧面。头顶上有伞,上半身有广告牌子挡风,但是膝盖以下很快就全透了。然后又向前冲。雨水顺着伞流下来,滴到鞋里。冰凉。终于进了麦当劳,向龙仍然坚持要了冰可乐,然后开始冻得脑门子疼。我是热的朱古力,ZHUMAO是咖啡,我俩开始取暖。吃完以后向龙去唱红歌,我和ZHUMAO把鞋和袜子都脱下来晾空调边上,对着热风吹。下午有个报告,离线电驴。我跟ZHUMAO合作,黄同学、张同学、牛同学一起实现的。向龙唱完红歌也回来听。报告内容结束以后,领导表示了赞许,然后撤了。领导离开后,甚至离开前,大家就开始狂欢似的讨论--或者说功能修订。硬生生把一个玩乐性质的小东西改成了非常有商业前途的产品,而且还是容易实现的。我喜欢这种极其热烈的气氛,它让我想起两件事。一件是,我在人事处工作的时候,有次接完电话,王老师说:"小杨也不内向啊,挺能白话的啊。"那个电话,可能就是打给ZHUMAO的。在技术人员之间,还是有很多共同话题的。在你面前沉默的原因,大抵上是他说的你不懂,你说的他不感兴趣吧。另一件事。我刚刚离开图书馆的时候,有一次telnet回去解决什么问题,突然发现是在以前工作的两台机器上。看着以前还没有完成的建设,尤其是那些荒废了的,我感慨万千,当天还写了日记。那种感觉,就像看到一片废墟。但是此后几年,我看到很多新的服务开通了,越来越强大的功能。后来觉得,失去的那些,也不算什么,因为有了更好的。这就像,我离开图书馆和网络中心,但是最终以某种方式回来了;我本科专业电子学,虽然学得一团糟烂,之后又学了烂糟的很多别的东西,但是最终也以某种方式回来了。破坏了一些旧的东西,然后另一些新的东西在这片废墟之上成长起来,可能更加繁茂。只是当时,恐怕只关注了那些不如意。今天很冷,雨很大。但是,很多年以后,我们中活着的那些人,会这样回忆起今天的大雨:我们会互相嘲笑此时的窘迫,打趣当时几个男人搂在一起,然后说,"我们那时候设计的啥啥多优秀,看现在这些毛头小子,真是不行啊"。非常投入地回忆,就像老一辈非常投入地声嘶力竭地唱红歌一样。其实,今天,就是未来的回忆。就像大学的记忆,更久远的记忆。只是,我们经常忘记这一点,总认为应该在今天把最讨厌的那些事情做完,然后在未来,在无限美好的未来,专心致志地去做自己喜欢的和应该做的事情。直到死前的那一天,还在奢望着明天。或者将来,让孩子去完成自己的遗愿,而本人还是打麻将去吧。而最美好的回忆,正在发生,然后结束。

互联网缩短了你的注意力 zz

互联网缩短了你的注意力"对着一部电脑无事忙",陈奕迅老师曾经这样说。他指出了我们使用电脑的两个问题:一,很忙;二,效率很低。通常我们会在电脑上同时打开多个窗口,处理多件事情。听会儿歌,看会儿视频,和N个人聊天,遇到好奇的东西用搜索引擎查询一下,时不时刷新邮箱、微博或者
SNS网站查看新消息,个别勤奋的朋友可能同时还在更新空间、博客或日志,也有命苦的朋友在苦逼的赶稿、写论文。当我们在电脑上手忙脚乱时,一边还开着电视——其实我们是在看电视,顺便上网处理些事情。日本地震了,作为地球上第二大国家的子民,我们理应看看电视新闻,关心一下生活在水生火热中的日本岛国人民。当然有一部分朋友因为要看非诚勿扰或者回家的诱惑妻子的诱惑等等,暂时无暇顾及地球人民的安危,也是完全可以理解的。反正就是很忙。而且正事一点都没干。你有数过知道自己同时在处理多少件事情吗?你知道半小时内自己的注意力来回切换了多少次吗?20次,还是40次?每分钟注意切换4次研究人员发现,人们的注意力在27.5分钟内切换了120次,平均每分钟多于4次。也就是说,你的大脑在一分钟内要换档4次,每换一次挡都意味着要重新去熟悉并理解一套新的视听觉刺激。研究人员Brasel与Gips招募了42名波士顿大学学生做被试。他们平均34岁,应该不是普通学生(不知什么来历,但是反正大龄也没有坏处,不
是么),因此他们代表年龄稍大的成年人而非学生群体。(鉴于被试特殊的身份以及有限的样本量,将实验的结果推广到更广泛的群体时要谨慎,除非在对其他群体
的研究中也得到了同样的结果)研究者在实验室显眼的位置摆放了一台电视和一台电脑,并且都打开着。被试不需要完成特别的任务,只要在实验室里随意使用电脑或者观看电视,但是他们的所有举动都会被摄像头记录下来。被试在实验前后分别填写了一份调查问卷。实验结束后,研究者分析了录像和问卷,发现了下面的结果:被试花在电脑上的时间比观看电视更多。被试盯着电脑超过1分钟的次数仅占总共看电脑次数的7.2%;盯着电视超过1分钟的次数更少,只占了总数的2.9%。被试严重低估了自己注意力在电脑和电视间的切换频率。在27.5分钟时间内,他们的注意力在电脑和电视之间平均切换了120次,但是他们自己在问卷里填写的注意力切换只有17次。人们以为自己在多任务情境中并没有那么三心二意,这实际上低估了多任务情境对注意力的影响。年轻人注意力更短暂研究者又招募了两批被试——年轻学生和年纪更大的学校工作人员——进行实验。招募这样两群被试,一方面可以验证在不同年龄人群中能否得到和前一个实验同样的结果,另一方面可以比较年轻和年长的人之间是否有差异。实验的结果是这样的:年轻学生比工作人员更喜欢在多任务情境中工作,他们认为自己在多任务情境中仍然有较高的效率,而工作人员认为自己在多任务情境中效率很低。
在年轻学生与各类信息媒介的日常接触中,46.28%发生在多任务情境中。而工作人员的这一比例只有22.73%。
实验发现,年轻学生注意力在不同媒介之间切换更加频繁,注意保持更短暂,仅维持2.3秒。学校工作人员的注意平均保持时间是3.1秒。这个实验发现人们对信息的消费习惯存在年龄差异。年轻人习惯同时通过多种媒介获取信息,并且乐在其中。而年长的人认为这会影响他们的效率,很少这么做。研究人员总结道:多任务情境中人的注意是碎片化的:保持时间短暂,切换频繁且迅速。同时人们倾向于高估多任务情境中自己的注意力集中程度。
我们使用电脑时大部分时间都在进行多任务操作,习惯使用Alt+Tab频繁切换窗口。如果我们分配给每项任务的注意过于短暂,有可能导致任务完成质
量下降。在现实中,确实有一些人经常感慨自己"效率太低",多任务环境可能是其中一个原因。但是不要怪电脑太强大,你换台单任务的iPhone或者iPad也没用,因为互联网上的信息实在是太疯狂了。
作者系 Psyleaks 成员参考资料:S.Adam Brasel, James Gips. (2011). Media Multitasking Behavior:
Concurrent Television and Computer Usage. Cyberpsychology, Behavior,
and Social Networking. doi:10.1089/cyber.2010.0350.原作者:John M Grohol来源: How Well Do You Multitask Between the TV and the Computer?

宽容是一种恶

宽容是一种恶我们一般认为宽容是一种善良。考试的时候,当你抄袭被发现的时候。某位四十左右的女老师警告你,呵斥你,但是,她最后没有处理你。你认为这是宽容,是对你的帮助。某次考试,你自知不能及格,找到主考老师痛哭流涕。她警告你,呵斥你,但是最后给了你令你满意的分数。你认为这是宽容,是对你的帮助。淘宝上买了东西,发现不符合店家宣传的。你吵了,他退了款,你给了"好评"。你认为这是你对他的宽容,是对他的帮助。快递到了,打话你,说他不能上楼,因为种种原因。尽管你购买的是送货上门服务,你还是下楼去取了东西。你认为这是你对他的宽容,是对他的帮助。你认为,以上都是宽容,是美德。其实,宽容是一种恶。我们来看另一个例子,似乎与以上的完全不同。传说facebook(那种不存在的东西)上推出一款服务,暗恋。你可以选择你暗恋的人。如果她也暗恋你,那么facebook就会告诉双方。很浪漫是吧。还是传说,一位中国哥们很聪明(似乎这种聪明在传说中只有我国国民才能具有)。他选择了暗恋所有的异性。这样,他就轻松地知道了谁暗恋他。很聪明吧。只是传说而已,我们似乎不必当真。而且,这个故事很多个听说过了,一笑。可能心里还在想,这哥们,是挺聪明的啊。他的聪明,毁掉了整个规则。这个暗恋的功能,不再有效,因为每个人都会像他这样做。他的聪明的恶果,是导致整个系统的崩溃。这与刚才那些宽容的故事相同么?是的,没有任何分别。那位监考老师对你宽容了,但是她破坏了考场的规则,损害了除了你以外,所有同学的利益; 那位主考老师对你宽容了,但是她破坏了评卷公平原则,损害了除了你以外,所有同学的利益。当你宽容了淘宝作假的卖家的时候,你破坏了"好评"这一规则。从那时起,淘宝上卖家们开始全变成了五钻的,然后他们开始不在乎买家的评价了。当你想争取合法利益的时候,他说:我好评有的事,怎就你这么特呐,亲?当你宽容了快递公司的时候,你破坏了服务与付款对等的原则。从那时起,快递公司开始要求别人下楼,要求别人到某个特定的,对送货人特别方便的地点取货。你可能还在想,你方便了送货的人员,是与人为善。你可能没有注意到,我上面一段写的根本不是送货人员,而是"快递公司"。你的钱,用来购买送货服务的钱,交给了快递公司,而不是送货员。这不是你和送货员间的私相授受,而是商业行为。你的行为,也给了某些送货员,那些想把货送到顾客手中而不是楼下或者校园里某个地方的送货员压力。如果他坚持送货上门,就太特了。宽容,如同暗恋所有人一样,破坏了规则。很多年前,有选论文的同学问,"老师,你有没有代码给我用啊。""没有。""别的老师都给了啊。"毕业论文,是要求学生在教师的指导下独立完成的。我当然可以给你代码。就像有些父母在孩子一两岁的时候替他穿衣服,在三四岁的时候还这样做,在五六岁十来岁的时候还是一如既往地替孩子穿衣服。那么,这父母去世以后,孩子独立生活在这个世界上,却没有独立生活的经验和能力。这种善良多么残忍。那么,当父母为你选定一个媳妇的时候,你抗拒。你真的觉得自己有资格抗拒么,有能力自己独立做主么?权利和义务是对等的。当我尊重你的时候,我尊重你的工作,尊重你的能力。当然,我还尊重你的选择。如同某位老师所说,"学生有权利不上课的。"当然当然。我也从不点名,除了教务处检查要求我点名的的时候。但是,我一直保留了给学生不及格的权利--这是教学要求我评估学生成绩这一义务的必然结果。而这一结果,不像有些同学认为的,是学生自己承担,而是你我共同承担的。你以为我如实给出成绩不会有结果么?所有破坏规则的,无论动机如何,善良宽容,抑或为自己谋利,其结果是没有区别的,那就是破坏规则。想辩解的同学,这句话的简化版是,所有破坏规则的,其结果是破坏规则。破坏规则的结果是契约精神不再不效,世界和他人的行为不可预测。如果你想说,这点宽容不过是。。。防微杜渐,千里之堤溃于蚁穴,勿以善小而不为勿以恶小而为之,这些可不光是劝人为善的。从量变到质变,那是积累每个细小的"不过是"的结果。所以,我们不原谅开车撞了人还捅人的,我们不原谅某些官员。所以,不宽容。不宽容那些大家共同仇恨的,也不宽容那些宽容,它们为害更深。不宽容,如何行动呢?几年前我买床垫子的时候,一位老大爷年龄的负责送货。付款时说明送货到门。大爷到了楼下希望,或者要求我和他一起抬上去。我的答复是:不行。确实,这只是举手之劳。如果不是我买的,可以帮任何人这个忙。确实,你的年龄够老大爷了,在公交车上,我十有八九会让座。但是,你应该跟你的公司沟通。如果我付了款,而公司通过你提供的服务不足,说明有人从中渔利。这是不公平的。而且,我负有不污染社会环境规则的责任。不宽容,如何行动呢?今天申通短信我,去篮球场取东西。快递到家的时候,都是送到家里的,没有一次要求我去小区区委会某处取货。我听说了学校的快递都是这样的,因为学生人多。但是学生的每一个人付款都并不比单独的住户少,理应享有相同的服务。而且,申通的这个短信错了。他说在篮球场,其实却是"华侨"的篮球场。作为了一个付款因此需要得到服务的人,我没有义务知道"华侨"的意思,也没有义务知道篮球场的位置。更没有义务去在规定时间内取。以前,他们说的是"浴池"。就像吉林大学的领导们发邮件通知的时候说"系办""系里""学校",但是却从来不愿意,或者认为不必指出是"吉林大学XX学院"一样。他们都是领导,认为当他们说话的时候,别人有义务明白他们指的是什么。这些并非不言自明的。东北师大有两个校区。每个校区都有浴池。我家附近还有若干。我知道桂林路附近还有个刚黄了的。高校教师通常都有若干合作的单位。当提到管理机构的时候,够爷爷奶奶辈的多的是。东北师范大学是个小学校,每次邮件都写全称,"东北师范大学XX处""东北师范大学XX学院"。也没有人把我们学校看贬了。你凭什么就认为我只生活在你的世界之中。所以,不宽容。曹操说的:英雄,当然你来当。小人,我来。你继续显示宽容,这种显得有毛病的事,我来做。从小事做起。以后所有的申通快递我都拒领,原址退回。除非按所付款提供服务。宽容是一种恶,原因是:平等,公平,远比显示宽容重要。

《现代软件工程》:师生的关系是什么? zz

http://www.douban.com/note/151154706/ 《现代软件工程》:师生的关系是什么? 2011-05-17 05:57:02

 

http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html现代软件工程讲义 0 课程概述 这门课的教学方案在这里. 根据学生和学校的具体情况, 可以进行调整。 师生关系首先要明确的是, 在这门课中的师生关系是什么样的. 大学目前的师生关系是怎样, 什么样才是理想的师生关系? 我们先看一些例子:Retailer / customer (餐馆/食客)?一些学生说, 我既然交了学费来上学, 就像交了钱去自助餐厅一样, 想吃多少, 想吃什么, 都是我决定. 如果不喜欢, 就去下一个餐厅好了。 上课能这样么? 在饮食行业, 顾客拍拍屁股就可以离开一个餐馆. 在一些学校里, 是有不同的老师上类似的课程, 同学们可以根据老师的介绍和师兄师姐的提醒选择适合自己的老师。 但是在学校里, 学生必须要在一定时间内作出选择 (必修课), 老师掌握着最后给学生多少分, 学校掌握着毕业证。 所以不能把餐馆/食客的关系照搬过来。 学生们非但不能成为有主动权的顾客, 反而会被人以分数/学位/毕业证相要挟, 成为下一种关系中的弱者: Boss / employee (老板 / 雇员)?在学校里, 很多学生把自己的指导老师叫做 "老板", 学生变成打工仔或打工妹。 不光有大老板, 还有小老板, 因为大老板太忙, 平时都是小老板在管理。 在一些学校, 博士生要延期一年才能毕业成为了众多潜规则之一. 学生虽然是"雇员", 但是并没有雇员的权利。 Baby-sitter / babies (保姆 / 幼儿) ?还有一种情况, 老师像保姆一样, 为学生操办一切, 把课程内容煮成婴儿食品, 一勺一勺地喂给同学. 同学们有什么问题, 都去找老师搞定。 学生把老师反复咀嚼过的东西再咀嚼一遍, 这种模式也许可以叫做 Learning by re-chewing. 这个模式和这门课的 "做中学" (Learning By Doing) 有很大的区别。 Buddies / Buddies (哥们 / 哥们) ?还有一种情况是, 老师和学生心照不宣一起混, "你对我好, 我就对你好". 这里有一条新闻:http://edu.163.com/10/1106/10/6KQ4JC8800293L7F.html 部分大学课堂师生心照不宣一起混"老师与学生一起应付",这并非大学生们学习之余的调侃之语,而是不少大学课堂的真实写照。Stranger / Stranger (路人甲 / 路人乙)?很多学校有巨大的新校区, 老师对着百人左右的课堂宣讲幻灯片, 下课后就开车回老校区或市区的家里. 老师不认识学生, 也未必有精力了解具体学生的情况. 双方形同陌路。 Prison Guard / Prisoner (狱警 / 犯人)?还有一种情况是老师想方设法让学生来上课, 点名, 突然考试, 指纹打卡, 等等. 学生则想方设法逃课。 学生视上课为坐牢, 巴不得早一点解放。 说了这么多, 我心目中理想的师生关系是什么? 是"健身教练 / 健身学员" 的关系。

 

大家可以从各种各样的健身馆中看到这样的关系, 像健身,减肥,瑜珈等等。 在这种关系中, 是谁想提高自己水平? 是那些学员, 这些学员的想法得足够强烈, 他/她才会花钱去参加这样的健身活动。 在健身活动中, 谁要做各种运动, 流汗呢? 是学员。 谁在这个活动中对别人指指点点, 鼓励别人更加努力? 是教练。那为什么教练可以这样做? 因为教练有下面的资源:教练的资质, 教练本身应该在所教的项目中是很有经验的身体力行者。 如果我光看了很多瑜珈的书籍和录像, 或者得到某老师的PPT (如果瑜珈老师用PPT 的话), 我然后就照本宣科去教瑜珈, 虽然我讲的话和一个资深瑜珈教练的话没什么区别 – "现在开始练习冥想, 要尽量让自己内心安静下来,要保持呼吸均匀, 把精神集中在体内 …" 可以肯定留在我这个班里的学生不会很多。教练有一套训练计划和各种练习方法, 教练(场馆) 有仪器, 工具, 设备, 不是每一个人都打算在家里放一套各种重量的哑铃和杠铃。教练可以随时指出学员锻炼的进步和不足。教练(场馆) 能召集到有一群相似基础的队友, 这在有些类型的锻炼是很重要的。教练和学员的关系如果确定, 就很好办了。 每一个来学习的学生, 都是想学好软件工程这门技术才来的。 各人的先天条件不同, 目标也未必相同。 有些同学想成为世界一流的程序员, 那老师就会以世界一流的标准来要求学生。谁要在这门课中写代码, 做实验, 找需求, 修bug?是学生, 不是老师。 谁要看各种与软件工程相关的书籍, 博客, 并定期汇报? 是学生。 谁给各个学生设计练习, 回答疑问? 老师。 如果学生的努力低于他自己目标的要求, 谁会批评这个学生? 老师会。 有些学生说 - 老师, 你讲的特别好, 我特别想提高, 但是我太忙了, 所以没时间写程序, 我就是来听听。。。 这种情况放在健身学员的类比中会是这样: 教练, 你讲的特别好, 我特别想减肥健美, 但我太忙了, 没时间练, 所以我办了卡, 就是来听听。。。[这种学员还真的有, 据说健身场馆的很大一部分利润是来自于那些办了年卡但是很少来的人] 教学方法那么软件工程课一般是怎么教的呢? 我在这一篇文章里也提到:软件学院的小慧老师对阿超抱怨,软件工程这门课看似容易,实际太难教。小慧说:我是按照经典的瀑布模型来讲课的,本来以为会是高屋建瓴,一泻千里,但是实际情况是这样的:需求分析:学生们都不懂企业的需求是什么,上课睡觉。设计阶段:学生们画了许多 UML 图,用设计工具画了不少矩形框,菱形框,如此而已实现阶段:学生们开始讨论非常细节的问题,UML 图早已经扔到一边。稳定阶段:学生们中十分之一的人开始写代码,其他人不知道在干什么.代码大部分情况下都不能工作,所有设计好的种种黑箱和白箱测试都无从开始。发布阶段:这个只有一天时间,就是最后检查的那一天,同时还有人在调试程序.维护阶段:课程结束了,同学们对自己的产品没有任何维护,放假了!最后大部分同学们都说这门课特别没用,自己根本没学到什么本事,然后下个学期,新的一批学生进来重复这一过程。。。我在文章中建议, 软件工程的教学应该考虑让学生一直能保持有具体的事情做, 而且做了之后能看到效果。 不要在学生刚上课的时候就要求写一个需求分析, 学生上哪里分析去? 如何看到效果? 所以在《现代软件工程》 这门课中, 我安排了个人项目, 两个结对项目, 让大家充分有时间把个人技术和一对一的合作技术做好, 然后再开始团队项目。 一个理想的流程应该是这样:开始维护以前同学开发出来的程序,理解程序。找bug,改bug,重构小部分代码,以满足用户的需求。一部分同学可以开发测试用例在现有版本的基础上做增量开发理解需求 (这个时候理解了客户需求是什么)设计开发回归测试 (用到上面开发的测试用例) 负担问题很多学生一听说我给他们安排的学习计划, 第一个反应往往是 - 负担太重了! 让我们回到健身馆, 如果一个体质正常的青年想健美, 教练安排他举杠铃, 他会说什么呢 – "杠铃太重, 我走了!" 负担是相对的, 这要看大家要跟谁比了。 我在清华大学上课的时候, 也有学生反映"负担太重", 我只好和他们一起回忆清华大学校长及各级领导提出来的目标 – "建设世界一流大学" . 如果要建设世界一流大学, 那要跟世界一流大学比。 在软件和软件工程方面世界一流的大学是哪一家呢? 我想唯有跟卡内基·梅隆大学 (CMU) 相比, 才能不辱没清华大学的名声。CMU 有一门本科生的课 - Build Virtual World, 是由已故的Randy Pausch 教授讲授的, 我们可以比较一下。CMU – Build Virtual World 现代软件工程5 projects/semester2 week/project, done by 4 person teamRotate team member in each project4 project/semester: 1 Idividual Proj. 2 Pair Proj. 1 Team Proj. team project has 6 people. rotate team member in each project. 他们一个学期要做 5 个项目, 我们只做 4 个。谁的负担重? 所以, 不是我要为难大家, 而是校领导的意思, 同学们可以找校领导说 – 我们不想成为世界一流大学, 成为五道口一带的一流大学就可以了。 如果领导同意了, 我当然可以降低负担, 而且我还可以把师生关系调整为 "哥们/哥们", 要混还不容易吗?! 我们可以看看古代的历史, 为古罗马帝国开拓疆土的士兵, 他们是如何培训的呢? 请选择:a) 他们不经过培训, 直接上战场b) 他们只学理论, 没有实战c) 他们用比实战更轻的武器训练d) 他们用和实战一样重的武器训练e) 他们用比实战重一倍的武器训练先别说成为世界级的士兵或将军, 如果大家想在战场上活得比别人长, 你会选哪一项呢?

 

这个道理对IT 行业的学生也是一样的, 在人潮汹涌的招聘市场, 我们可以问一下那些学生 -你平时在学校里是如何为将来的职业准备的?a) 不经过准备, 直接上b) 只学理论, 没有实战c) 用比实际工作要求更低的水平训练d) 用和实际工作一样的要求训练e) 用比实际工作高一倍的要求训练在这片神奇的土地上, 我们或许还可以听到 f) 的回答:f) 我不用准备, 我爹叫阿刚。 如何判分"分, 分, 学生的命根。 "我在刚开始教这门课的时候, 我看到助教给同学们的作业判分是这样的模式:最好的作业10分, 次好的9.5, 然后依次平滑下降, 有些学生交作业很迟, 有些学生写的程序都不能编译, 这些学生都得到6分左右。这样的分数体系看起来非常和谐, 但这不是软件业的实际情况. 我们任选一种软件类型, 例如字处理软件, 最好的软件在市场上有多少份额? 第二名占有多少? 第三名呢? 第四名? 谁知道字处理软件市场的第四名是谁? 搜索引擎呢? 第一名的占有率是多少? 第二, 第三, 第四呢? 第四名的软件也是由优秀的软件人员开发的, 他们也许加班更多, 那为什么只有那么少的份额? 这公平么? 由于软件市场有 "赢者通吃" 的规律 (第一名会占据 50% 以上的份额), 我们在训练中也要体现这一规律. 所以我规定:如果大家做同样类型的作业, 则采用以下规则:完成质量在第一档次的同学(一个或多个), 得满分。完成质量在第二档次的同学, 得 1/2 的分。在第三档次的同学, 得1/3 的分数。以此类推…在很多作业中, 我或TA会写一个比较平庸的解法 (例如用冒泡排序或线性查找)参加作业评比。 这个平庸的作业会得0分, 那比这个还差的作业, 就会得负分, 从-1, –2, –3 类推下去. 下面是两个评分体系的比较:

 

这样公平么? 很多人会问。 如果一个同学写了没有任何bug 的程序, 得到10分, 另外的同学程序有 1 个bug, 得到9.5 分, 程序编译都不过的同学, 也得6分, 那你觉得这样对写了全对程序的同学公平么? 如果一个同学的程序连普通的冒泡排序都比不过, 老师和TA在花时间陪他玩, 他欠我们分数, 这样的人不得负分得什么? 做中学上《现代软件工程》 的同学, 都是大三到研一的同学, 应该具备基本的学习能力和开发能力, 软件工程和其他类的工程 (如航天工程, 化学工程) 不一样, 我们每天都可以用到软件工程的产物 (软件), 搭建, 学习一个软件开发平台比航天化工要容易很多 (注: 在自家后院放二踢脚不是航天工程), 相关的学习资料也是非常容易获得。 在这个情况下, 学生们可以在"做"的过程中学习, 这也叫"做中学". 做了, 有疑问, 再问老师, 问专家, 这样学习的效果会好很多。 我为这门课准备了三本课本, 一本指定的阅读教材, 二十本参考书, 碰到问题的时候就拿出来看看。 真实的项目在这门课中, 我鼓励学生做自己决定的项目, 但是要求他们要做"真实的项目" – 有真正用户的软件。 那些 "经典" 的项目, 例如图书馆管理系统, 学生学籍管理系统等, 是不符合我的要求的。 项目要有活的用户, 只有活的用户才有活的需求, 才有活的场景, 活的测试用例。 只有活的用户才决定同学们写的软件是否值得使用, 有些团队写的小软件很好用, 在合适的用户群中引起共鸣, 短短时间内, 就会有几千到几万个用户 (像北航团队开发的魔方程序), 也有的团队费了老鼻子劲, 写出来的东西用户量小于10, 自己团队成员包括在内。 这些不同的用户数量会迫使项目团队反思当初在需求分析, 设计上的问题。 另外这门课并不是算法竞赛, 或者代码集中营, 大家比的不是如何快速敲打出某个算法, 而是如何在有限的时间内交付有价值的软件给特定的用户。 "真实"这一条件也促使大家做 "现实"的项目和项目管理。 很多学生有宏大的梦想, 但是在短短的 8 周团队项目时间内, 甚至短短的 16 周课程时间内, 他们发现宏大的构想被自己程序的bug 搞得千疮百孔, 轰然倒地。 学生的收获在这门课里, 有付出, 就会有收获, 收获体现在下列方面:写出一个可用的, 有实际用户的软件。 这对大多数人来说, 是第一次。完整体验软件生命周期, 对于生命周期的各个阶段有实际的了解。对于软件设计有实际的掌握。 对敏捷软件开发的具体技术有实践能力。了解软件团队的各个角色, 和各个角色的互动. 对于其中一个角色有实际的深入体验。学习如何与不同的角色打交道, 培养团队精神, 学会解决冲突的几种方法这个课程不讲什么? 这个课程不具体讲某一个程序设计语言, 也不讲 UML, 设计模式。 这些内容都应该属于其它课程。但是从课后的自我反馈来看, 学生往往在某一门"程序设计语言"很有收获, 为什么呢? 第一是因为这门课的个人项目和结对项目让他们有充分的机会学习和巩固关于某一语言的知识; 另外, 他们第一次把某一门语言用到了一个有分量的实际项目中去, 从而深入地了解这个语言的特性。这可以说是<现代软件工程> 的一个好的副作用。 任何一门课都不会一帆风顺地讲下来, 所有人皆大欢喜。 老师学生需要时间来适应,交流, 才能逐步提高。 吹了这么多, 到底学生反映如何? 下面是清华大学的学生对这门课的不记名评价。 评分内容 2007 2008 2009热情、认真、投入、严谨,教书育人 95.45±3.80 95.00±3.42 98.90±2.21讲课思路清晰,重点、难点突出 94.55±4.04 89.29±5.77 98.90±2.21讲解生动、有吸引力,能激发学生的求知欲 92.73±5.15 90.71±5.37 98.91±2.21师生互动,鼓励学生质疑,并给予思路的引导 94.55±4.04 93.57±3.69 98.91±2.21提供或推荐的教学资料有助于学生学习 93.64±4.23 86.43±8.19 99.00±2.21作业等课程训练有利于课程内容的学习 94.55±4.04 90.00±4.95 99.00±2.21考核及评价方式能激励学生主动学习与钻研 92.73±5.15 87.86±4.88 97.89±3.04注重学生创新意识和独立思考能力的培养 92.73±4.37 91.43±4.44 98.91±2.21对学生课外学习给予指导、建议 92.73±4.37 91.43±4.92 99.00±2.21学习本门课程后有收获 92.73±4.37 90.00±5.38 97.91±3.04