登陆注册
47934000000054

第54章 实施现代教育的一些建议(15)

经过短短几十年的发展,计算机科学与技术已经从计算数学、电子学等专业分化出来,成为独立的学科。由于该学科本身涉及很多理论、技术,学习研究理论、技术十分必要。更本质地看,所有的理论形成、技术发明都来自解决问题的需要。在一定程度上,这些理论、技术可以视为针对问题而提出的解决方法,甚至借鉴了现实生活、其他学科的逻辑思路和方法。数据结构、数据库、操作系统、编译原理、软件工程和计算机网络等课程的理论和技术莫不如此。编程语言借鉴自然语言逻辑,设计模式、遗传算法等借鉴其他专业的学术思想。

随着技术的发展,计算机学科的课程体系与时俱进,不断丰富完善,并不断分化出多个专业技术方向,例如:软件理论与技术、体系结构、网络工程、信息安全、物联网工程、服务科学与工程等。我们应该理性地认识到:任何大学都不可能培养学生掌握所有的理论、技术,研究者理当关心前沿技术、最新进展,但大学教育本身不应该过于“赶时髦式”地追逐潮流。

从技术本身来看,早期的软件开发通常强调代码最优,尽量降低时间、空间复杂度。可如果仅考虑代码最优,Windows系统、Linux系统和基于网络的多层软件体系都远比早期的DOS、两层结构的C/S系统复杂、低效。Java虚拟机、浏览器中脚本解析与C语言、机器代码的运行效率更不能相提并论。

从工程角度来看,基于中间件的多层软件体系,特别是基于B/S模式的Web应用系统,架构上就显得更加合理、灵活,且具有更强的可扩展性、健壮性。至于SOA、云计算、物联网等新技术的出现,莫不是从系统工程的角度出发,面向技术发展和实际应用的问题需求,设计相关的技术、机制、协议和方法,从而形成相应的技术体系。

从应用角度来看,技术始终是技术,并不能代表业务。如某个人即便很好地掌握了所有的计算机技术,但如果他不懂会计管理、银行清算等应用领域的具体业务,他也无法编写出相应的应用软件。信息化是非常时髦的名词,其本质就是业务功能、业务流程的计算机化。在实施信息化工程的过程中,如果业务流程不清晰、不完整、甚至存在歧义或逻辑错误,就需要实施业务流程再造,否则,再好的技术也无济于事。电子政务、电子商务、办公自动化、企业管理等信息化工程,尽皆如此。

软件开发通常很难达到预期效果。据统计,整个软件行业的项目成功率很低,不超过1/3,大规模团队的联合开发则更糟。导致这种现象的原因很多,其中,最为重要的恐怕是架构设计、项目过程管理、业务分析的能力不足。架构设计是系统的宏观性思考,通常属于经验性的技能,另外两方面则属非技术因素。很多政府官员、技术人员,甚至专家教授过于强调技术的作用,轻视业务分析、项目管理的能力培养和工程经验的积累。

这就是为什么说需求分析是软件工程,乃至所有工程的起始环节;业务流程建模技术日益重要;计算机专业学生在大学四年学了七种编程语言却依旧不得要领;甚至有学生感叹“大学四年白学了”。至于软件工程、软件项目管理及CMM(能力成熟度模型)等课程则更是技能应用的经验总结,对工程项目的实施起到指导性作用。这些课程的教学如果不结合实际应用,学生很难深刻理解书本知识的内涵。相反,某个人即便非科班出身,没有学习书本上的经验,也可以开发软件。在开发复杂系统时,他可能会走一些弯路,但只要勤于动手实践、善于思考总结,同样可以成才。

(三)课程教学理念和方法的思考

1.编程即是建模

笔者常对学生说:“编软件犹如写小说、绘画等,可视为建模的过程。”《聊斋志异》、《西游记》等小说是作者用自然语言构思、描述的故事模型或画卷,其创作过程可视为建模过程;《清明上河图》或某幅山水画也是画家构思、用各种原料绘制形成的场景模型。类似地,软件编程本质上也是建模过程,是编程者按照一定的逻辑,用编程语言或建模工具对任务和功能进行的建模。

我们不妨认为,作家用文字、画家用色彩、建筑师用图纸、音乐家用音符、软件工程师用编程语言进行建模。模型的质量不仅取决于微观的技术,更取决于宏观的构思。构思被视为作品的架构性设计,尤其重要。掌握某种语言或技术,如精通中文、英语等语言或绘画的小技巧,任何人都可以写小说或绘画,但并非人人皆能创作出优秀的作品。同样地,掌握某种编程语言,任何人都可以编程,但如果缺乏宏观建模思维(即架构设计),肯定编不出优秀的软件作品。

编程语言与自然语言类似,是一种单线性的描述技术。采用单线性技术建立的模型,往往很难直观地给人宏观性、整体性、并发性的视图。如采用自然语言描述同时发生的多件事情、事物固有的多面性,我们只能按照某种先后顺序单线性地进行描述。在建模复杂的工程系统时,包括软件系统,如何能够宏观全面地设计、描述系统的多面性、不同组成部分以及它们之间的关系,是包括计算机技术在内的所有工程技术发展面临的主要挑战之一。

正因为如此,基于工程开发的经验,人们发明了多种图形化的建模方法,设计了各种工程图,如FSM(有限状态机)、UML(统一建模语言)、Petri网、SDL(规范描述语言)、TTCN(测试和测试控制标记)、MDA(模型驱动的架构)、BPMN(业务流程建模标记)等。其中很多方法具有严格的数学基础,通常被称为形式化的方法。不同的图形化建模方法各有优缺点,适用于不同应用的建模需求、工程过程的不同阶段(包括需求分析、设计、实现、测试)。它们的描述能力也不相同。我们相信,在计算机领域,随着技术的发展和应用的深入,还将会产生建模描述能力更强的方法。

任何编程语言、建模方法都是应用领域建模需求的共性抽象。遗憾的是,所有的编程语言、建模方法都不是中国人总结、发明和设计的。如计算机教育,我们绝大多数老师、学生只注重相关理论、编程语言的教学,甚至很多老师也不清楚编程语言、图形化建模方法之间的关系。犹如有了钢筋、水泥和柱子等离散的要素并不等于有了房子,学生即便掌握了编程语言、类似UML的图示化建模方法等离散的技术,却缺乏应用系统建模、解决实际问题的能力训练,无法积累实际的工程经验,因而不会开发软件。这种能力训练、经验积累难以在课堂上讲授,必须依托于项目“做中学”,哪怕项目是老师虚拟出来的。

国内外大学的计算机专业通常都开设C、C++或Java等编程语言课程,但教学方式却大相径庭。很多人持有这样的惯性思维:C语言是基础,学生应该先学C语言,再学C++或Java等OO(面向对象)技术。而且每门编程语言的教学需六七十学时,还要安排三四十个实验学时。国外很多大学讲授语言课程只用三四十学时,甚至有中学生选修Java或其他编程课程。其实,未必要学了英语,才能学德语、法语等其他语言;同样地,未必要先学C语言,才能学其他编程语言。至于OO技术,与其说是编程语言,不如说是建模方法和思维方式。

笔者曾听说,某大学生学了七种不同的编程语言,仍然觉得心里没底。可以说,我们的学生非常渴望学习掌握各种知识,却苦于没有人为他们“解惑”。在学生,甚至很多老师的眼里,各种编程语言就是不同的计算机技术,为了适应未来的就业需求,就应该多学编程语言。其意图本身并没有错,但局限于学技术、学语言却有失偏颇。除了技术背后的思想、方法以及运用技术解决问题的能力之外,技术本身并无多少内涵。可我们的编程语言教学与英语教学方式类似,通常只是为了学语言而教语言,并未从思路、方法上培养学生思考和解决问题的能力。老师也没有告诉学生该如何读大学,如何真正地培养能力。因而,学生发出“大学四年白读了”的感慨也就不足为怪了。

2.对其他课程的看法

首先,很多课程内容的思路、方法来源于生活的经验、智慧和逻辑,但书本知识又高于生活。不管数据库、数据结构、操作系统,还是计算机网络、软件工程、设计模式等课程,很多知识点可从生活中找到具有相同逻辑的参照模型。

以TCP的虚连接为例,所依赖的IP层通信是无状态的,虚连接的两端自行管理通信连接状态。在现实生活中,我们可以找到具有同样逻辑的通信模型:通过邮局投递无状态的普通信件,异地的男女谈恋爱、商人洽谈商业合同等情形。这时,恋爱、合同洽谈的进展状态,则由借助邮局进行通信的双方自行管理。其实,会话通信也采用了相同的逻辑。计算机专业的很多老师是否真正理解,并能讲授清楚虚连接、会话通信等概念,我们不得而知。如果某个人肯用心,即便没有读大学,也可以靠自学来理解这些概念的本质。但他若不能真正理解这些知识的含义,即便博士毕业,发表了很多论文,有了“纸上谈兵”的创新,又有何用?

同类推荐
  • 中华民俗老黄历

    中华民俗老黄历

    《中华民俗老黄历》是一部全面展现中国民俗民风的百科全书,全书分为中华传统文化、中华民俗民风、中华老黄历四个部分。这里有民间诸神那些迷人的传说故事,有中国人运用自己的智慧创造出来的历法,有独具特色的婚丧嫁娶仪式,有让人心生畏惧的民间禁忌,也有充满文化内涵的传统节日。这些汇成了一个琳琅满目、五彩缤纷的中华民间世界。
  • 播音主持专业人才培养研究

    播音主持专业人才培养研究

    我国当前播音主持专业教育现状的调查报告。对我国播音主持专业的培养目标与人才选拔标准、教学大纲编排、课程设置与教学方法模式、师资队伍结构、教学评估体系等做了全面调查和分析。下调查访问后的研究后果,对播音主持工作、播音主持人才的综合素质、播音主持人才能力需要的新趋势等做了深入的研究。
  • 教师的28个怎么办-教师如何培养学生学习新策略

    教师的28个怎么办-教师如何培养学生学习新策略

    以前,我们认为托尔曼的学习理论研究,既有行为主义的外壳,又有格式塔心理学的内涵,所以将其称为“折衷的学习理论”。
  • 晚情续语:一位老师的教育期待

    晚情续语:一位老师的教育期待

    教师要把自我教育作为一种神圣的职责,与其职业生命相伴始终,而这种职责又是崇高的,不容推卸的。
  • 大国与小民:外国人眼中的中国范儿

    大国与小民:外国人眼中的中国范儿

    《大国与小民》被鲁迅、柏杨等中国顶层知识分子评为“世界上研究中国民族性最早、最详尽、最切实的著作”之一。这是一部湮没百年的社会学经典译著,作者明恩溥在二十多年审慎研究和大量观察的基础上,生动概括、描述了十九世纪末二十世纪初的中国现实和中国人的性格特征,其观点客观犀利。以前的人是怎样的?别人眼中的我们又是怎样的?今天的中国由何而来?几百年时间里中华民族经历了哪些伟大而深刻的变化?了解和思考这些,对个人的自省自觉,甚至对民族的振兴发展,都是非常有必要且有益的。
热门推荐
  • 华山论剑

    华山论剑

    纵观金庸小说,天下第一剑美誉莫过于六脉神剑,本故事绝对不严谨地深入分析了许多武学,分门别类,一锅而炖,小生不敢私藏,送上以娱大家
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 春之劫

    春之劫

    有人说,青春要轰轰烈烈,只有那样,在即将老去时才有可以咀嚼的回忆;但吴晓的青春比轰轰烈烈更上了一层,吴晓的青春是惨烈的,惨烈的让人不堪回首,每每在梦中出现时,它总能让吴晓痛到窒息。它就犹如跗骨之蛆,让人时刻痛着,却无法摆脱!再次遇到林浩,吴晓尘封在心底的记忆再次浮现在眼前,她发誓,他一定会让让自己陷入如此境地的人付出代价……
  • 镜子青春

    镜子青春

    你的青春可曾迷茫,可曾留下遗憾。一指流沙,一段岁月。让我们一起回忆、弥补那段被岁月扰乱了的时光,让青春不在遗憾……
  • 壹个十年

    壹个十年

    步入高中学期的网瘾少年骆泺与同学孔彦以及学霸女同桌李雅在同所高中再一次相遇,在电竞游戏起初发展的时代演绎了一段传奇的电竞时光,高考毕业季来临,骆泺和他的朋友们,在电竞梦想与残酷的现实社会问题上的艰难抉择,十年间心酸的成长历程伴随着酸甜苦辣让骆泺在亲情、友情、爱情、事业的各种变故下慢慢成熟起来,最终和初恋女友李雅步入婚姻的殿堂,青春不老,友情依旧,十年是每个人的壹个十年。
  • 元始之道

    元始之道

    一维天道林异,被天之主宰宙皇贬下下界,看林|异如何逆天崛起!!!
  • 夜之恋

    夜之恋

    晶莹泪珠,让他认识了她,伤心泪痕,让他离开了她,付出所有,他让他去爱她,他与她,她与他的结局,将何去何从?她会原谅他的欺骗,还是接受他毫无保留的爱?
  • 古符音终

    古符音终

    一瞬,眼中流光溢彩,一霎,花火转瞬即逝。那淡淡惆怅,那水晶年华,是对她最好的解释。
  • 爱你,痴心不改

    爱你,痴心不改

    在万辰锋眼里,颜霖水性杨花;在颜霖眼里,万辰锋是刽子手。六年再见,万辰锋不断折磨她、仇恨她,甚至句句诛心,可是该仇恨的人难道不应该是她吗?
  • 云纵星横

    云纵星横

    神州大陆,宗门林立,无极圣教,纵横帝盟,昊天巨宗威压天下,天涯海阁雄踞一方。血染皇朝鹰视狼顾、炎汉天下布武、更有煌煌盛唐,共同演绎着一段无上的传说!