可否把邹欣老师这个人也给“出版”了?_构建之法书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 教育 > 构建之法 > 可否把邹欣老师这个人也给“出版”了?
王忠杰rainy 构建之法 的书评 发表时间:2014-10-02 15:10:59

可否把邹欣老师这个人也给“出版”了?

“软件工程是计算机专业里很难讲的课程之一。面对在软件开发方面经验很少的学生,邹欣老师通过丰富生动的故事和隐喻帮助学生建立软件工程的思维习惯,通过严格扎实的动手训练与考核帮助学生总结归纳自己的“最佳实践经验”。读这本书,软件工程课不再是一门枯燥沉闷的“文科类哲学课”,变得出乎意料的生动有趣。这是IT学生的幸运和福气,也为从事软件工程教学的高校教师指明了一条全新的教学之道。”

------------------------------

我与邹欣老师没有见过面。最初是在微博上关注了他,看他对软件工程的诸多想法。最有趣的是,经常看到他搜索微博上各种关于软件工程课的吐槽(大多来自于上这门课的各校学生),他时不时转发几条,加上些揶揄的话,跟学生一起“抱怨”他们的软件工程老师。说实话,邹老师的有些揶揄经常让我浑身不自在,因为自己恰恰也曾表现过学生们所抱怨的那些“软件工程现象”。

不自在也罢,有趣也好,一名大学教师终究该时刻正视自己身上的不足。于是关注邹老师的个人博客,逐篇看他在北航等学校所实践过的软件工程教学经验总结。看多了,被他的授课思路所吸引,渐渐开始在自己的课程里引用邹老师的某些观点和材料,把哲学化的软件工程讲义渐渐变得生动起来。从这一点来说,我也算是邹老师的学生之一了。

另一个交集是,2012年冬天(抑或是2013年初春),受微软亚洲研究院大学合作部门的邀请,我本计划去MSR现场旁听邹老师对某高校学生们软件工程实践项目的结题答辩,这是MSR对邹老师的软件工程教学思路在各高校的推广的一部分。可惜的是,因为其他事情的耽误没有成行,但还是派了我的两位从事软件工程教学的同事到北京去。他们回来之后,连连感叹被“洗脑”,大呼在自己的课程里进行“改革”的必要。

我个人从2007年开始承担计算机系本科生软件工程课的教学工作。当年从退休的前辈手里接过这门课,颇为意气风发。最初2-3年热情高涨,一直遵循着“绪论-软件开发过程与项目管理-需求分析-软件设计-软件测试-软件维护-新进展”这样的传统思路在授课,没觉得有什么不妥,也自认为学生们的学习效果不差。2、3年之后,面对教室里随着授课进度而不断下降的听课人数和他们日渐消减的热情,猛然警觉起来,愈发觉得这条路子不对。这才明白,为何学院里的诸多大牌教授居然不愿意上这门重要的计算机专业课程。

不对在哪儿?难在哪儿?

软件工程不是理论课,是实践课。没有公式,没有定理,只有方法,只有“最佳实践”。学生们已经习惯了学公式和定理,但这里给出的方法,丝毫没办法在理论层面证明,只能在实践中不断应用和练习,才能理解并体验到它们的好处,把它们死背下来不起任何作用。面对在软件开发方面经验很少的学生,你把这些经验性的方法讲给他们听,丝毫无法说服他们。课堂上太多的“经验”,让这门课变成了一门枯燥沉闷的“文科类哲学课”。本来学生们对政治课哲学课就提不起兴趣,老师再照本宣科,他们自然就选择逃掉,能坐在你的课堂里玩手机或是睡觉,那已经太给你面子了。

这样一来,虽然授课教师已经很努力,但学生们给出的评教成绩始终在中游徘徊。自我安慰说:“这不是我们水平差,是这门课太难讲叻。”

是这样吗?

直到看到邹老师的实践以及他所总结出的诸篇blog(这些正是本书的前身),才恍然大悟该如何讲授软件工程课。

面对在软件开发方面经验很少的学生,邹老师通过丰富生动的故事和隐喻帮助学生建立软件工程的思维习惯,通过严格扎实的动手训练与考核帮助学生总结归纳自己的最佳实践经验。软件工程课不再是一门枯燥沉闷的“文科类哲学课”,变得出乎意料的生动有趣。他会要求学生以实际软件产业内的真实软件开发团队配合和管理方式开展自己的软件项目,要开发真实的软件并在互联网上发布,要走出去找到真实的“用户”,要倾听用户的真实反馈。一个个来自他切身实践的“经验”以故事的形式呈现在学生面前,引导学生“做中学”(learning by doing)而不是“学后做”(doing after learning),靠自己“做”的过程中的经验和教训总结而不是靠老师的宣讲灌输而形成适合每个人的特有的“最佳实践”。

这两年,邹老师的很多想法已经被融合进了我们的课程里。比如说,我们改变了授课内容的次序,从学生们最感兴趣的写代码入手,逐步引导他们思考对代码书写规范的思考、对代码性能分析与优化的习惯培养;再逐步扩大软件的规模与复杂度,引入软件架构的思想,让学生持续书写代码和学习新的开发技术;刻意强调真实用户的重要性,引导真实用户为学生们提出各式各样需求的变更,在辅之以考核时间上的压力,让他们自然接受结对编程、快速迭代、持续集成等敏捷开发的思想;当学生们发现靠自己掌握的现有技术实在无法“敏捷”起来的时候,再引导他们考虑设计思维,考虑需求,考虑是否该引入这样那样的建模。如此等等,这样一步步下来,下一阶段要学习和训练的知识与技术,恰恰好就是学生们在上一阶段里所遇到的无法解决的困境,于是自然而然勾起了他们继续往下走的兴趣。我们把将近30%的课堂时间用于课堂讨论,而不再是传统的“老师讲、学生听”。

所以,当看到邹老师终于愿意整理成书并且在9月份付梓,我马上在本学期的第一堂课上真切的向学生们推荐了这本书。可以借鉴邹老师的很多想法和做法,但因为所处的高校环境完全不同于邹老师所在的MSR,我们的师生都需要做很多方面的改进才能跟上这本书里的软件工程“先进性”。但至少,这是IT学生的幸运和福气,也为从事软件工程教学的高校教师指明了一条全新的教学之道。

个人认为,若想成为一名好的软件工程的老师,应具备以下的条件:

(1)有丰富的软件研发经验,形成了自己的“最佳实践经验”;
(2)会讲故事,能将自己的“最佳实践”以生动有趣的故事的形式讲出来;
(3)跟学生们一起摸爬滚打,扮演“健身教练”的角色,而不是高高在上的指指点点;
(4)有勇气与传统的理论和数学类授课方法说再见,像软件研发一样教软件工程课;
(5)保持对IT业界新技术、新方法、新产品的热切关注,持续学习,持续改进自己的教学。

所以,我个人非常推荐大家阅读邹老师的这本《构建之法》。

当然,一本书不是万能的,邹老师的《构建之法》再精彩,也需要有更多的教师在自己的课堂上去实践。一本书也是远远不够的,若周筠编辑能够想办法把邹老师个人也给出版了,我们买回一个用作给我们学生的TA,面对面给学生以教诲,岂不妙哉?

哈哈。

展开全文
有用 11 无用 0

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“可否把邹欣老师这个人也给“出版”了?”的回应

掬水月在手 2017-02-15 04:45:02

搜索了一下他的博客,他好像并不看好mooc

Sunner 2014-10-21 17:50:00

把一名老师“出版”的最佳方法,大概就是MOOC了

叶卡 2014-10-03 00:25:10

赞勇气,赞行动!