其次,各门课程的知识是微观、静态且抽象的,而知识的实际应用则是宏观、动态和具体的。理论、技术并不等于工程,它往往只是工程应用的微观方面。在解决实际问题的过程中,可能用到的知识点常常分散在多门课程中。甚至很多理论仅用来诠释工程背后的规律以及在某些方面的“所以然”。在知识学习过程中,“三设”能力对培养解决问题的能力显得非常重要。
教师应该充分相信学生的自学能力、理解能力,尽量采取灵活多样的教学方式,安排某些内容让学生独立自学、分小组讨论自学、组织课程交流报告,并尽可能在实验基础上,安排多个综合性、工程性的课程项目。如果教师具有良好的责任心、较强的“导演”能力,则可以将某个完整的工程项目分解为不同的部分,通过课程不同阶段的实验实现每个部分。这样,教师可以结合教学过程,综合培养学生的能力,并根据考试、交流讨论、书面报告、课程项目完成情况等多个方面,综合地评价学生。
再次,老师应该宏观、理性地认识知识教学与能力培养的关系、工程的技术体系、工程项目实施的过程。解决实际问题、实施具体工程往往没有最好的答案。知识可能一学就懂,能力培养却不可能一蹴而就。我们应该逐步培养学生形成这样的习惯和思维,在更长的时间尺度、更大的空间范围、更复杂的应用环境中,前瞻性地分析、权衡、设计、实施、评价工程应用系统。
近年来,软件工程业界出现了一种叫架构师的高端职位。架构设计就是制定项目在技术体系、应用功能、业务流程、工程过程管理等方面的宏观视图和总体架构。因此,架构师负责复杂系统的架构设计,他不仅仅只是技术专家,更应该是业务分析设计、项目组织管理的专家。显然,架构师往往需要宏观思维,从不同视图综合地分析、设计并实施工程项目。所以,仅仅懂得微观技术的人难以胜任架构师的角色,架构师也不可能通过课堂教学、技术培训乃至读几本书即可培养形成,它还需要基于大量的工程实践和丰富的工程经验。
(四)实践能力的培养
从课程实验到实践教学体系
传统的工科院校,除了课程实验外,还开设金工实习、工厂见习、专业实践、毕业实习等实践环节,很多课程也安排大量的综合性设计内容。可从数学、物理等传统理科发展形成的工程应用型学科专业,如计算机工程、通信工程、信息工程等,在应用实践能力的培养方面,常常局限于传统的课程实验。而传统的实验通常注重对微观技术、科学原理的验证。如测量电阻、电流和电压,即可验证欧姆定律是否成立。
现在很多中学、大学的实验课,老师通常事先准备了实验所需的元器件、仪器设备,并制定了规范化的流程、步骤。学生只需按流程操作,即可验证所学的原理、技术。如此实验何以培养学生的能力?因此,很多大学在培养“工程型、应用型技术人才”的过程中,通过传统的实验教学方式培养学生的技术应用、工程实践等综合能力,并不能真正满足工程应用型人才培养的需求。
针对工程应用型人才培养,除了课程实验,还应该考虑设置专业见习、课程项目、课外科技创新实践、专业实践、综合设计、专业实训、企业实习、毕业实习和毕业设计等多种实践环节,集实验教学、项目研发、工程实施为一体,形成以基础技能、工程能力两根支柱为主体的综合性实践教学体系。
这些实践环节和过程,不仅可以加深学生对专业理论和技术原理的理解,更为重要的是,通过过程可控且能充分发挥学生自主能动性的实践教学方式,还能培养学生的综合能力、工程经验。其中的很多环节可在校内实施,但需要导师能结合实际工程项目或虚拟构思项目,使学生融入工程项目的过程。然而,在校内实施专业实训还要求导师具备项目管理经验、工程实施能力,能启发、引导学生规划、设计、管理、执行工程项目“里程碑式”的过程环节。在解决问题、完成项目的过程中,综合培养学生的自学能力、知识运用能力、规划管理能力、沟通交流能力、团队合作精神等。
很多大学在招聘教师时要求具有博士学位。他们认为具有博士学位、博士后研究经历的教师肯定掌握了扎实系统的专业理论知识,但他们未必具有项目“导演”的能力、工程实施的经验。仅仅依靠学校“以技术为中心”的理论和实验的教学,在培养学生综合能力方面,始终存在“短腿”。因此,在美国、德国等高等教育发达的国家,学校和社会都认识到这样的问题,大学与工业界在科研合作、联合开发、学生实习、专业实训等方面紧密结合,甚至将典型实际应用项目的过程、管理和运作,提炼成实训教学案例,融入学校的专业教学中。
正如培根所说“经验又补读书之不足”,很多经验性的知识难以从书本、课堂上获得,必须亲自实践和经历。实际承担过科研项目、工程项目的人都会有这样的经历:实施每个项目都会走很多弯路,时间不是最高效,经费开销不是最省。项目完成后,总觉得“用两个月完成的项目本可以只用十天”,心里甚至觉得很懊恼。其实,每个人所走过的弯路都是经验积累的过程。
(五)笔者的尝试
在近二十年的教学过程中,笔者结合课程教学、学生指导,对本书前面提到的教育理念、教学方法进行了探索性尝试。接下来,本书结合笔者多次讲授的“网络协议工程”课程,介绍课程的背景、总体规划、教学方式、实践教学、过程管理、学生评价等方面,供读者参考。
在开设课程之前,笔者结合工程的过程,并试图借鉴国外大学一些迥异的教学方法,首先对课程内涵、授课目标、主要内容、理论教学、实践教学等方面进行了整体的构思、规划、设计和思考。
针对理论教学,笔者总体安排为课堂教学、学生自学两种方式。课堂教学重点讲授基础性、方法性、启发性和难度较大的内容,但不局限于讲授“What”,而是从知识点的“Why”和“How”方面启发学生思考。同时,布置了容易理解的多个知识点由学生分小组自学,并提出自学内容亦属于考试范畴。
针对实验教学,笔者将传统的实验教学改成实践教学,结合并拓展理论教学内容,设计数十个内容宽泛的课程项目。自课程开设以来,笔者结合前沿技术的发展,多次对课程项目进行补充和修改。
开学伊始,笔者即安排自学内容、项目选题,并对自学、项目的总体要求做简单说明。理论自学和课程项目所涉及的理论、技术,学生大多没有在课堂上学习过。他们根据教师的要求自行选题、分组、推选小组长,按小组规划目标制定阶段性计划、查阅资料、小组内学习交流、管理执行进度计划。
在整个学期内,针对自学、项目,教师分别指导、检查六至八次,要求学生提交相应的阶段进展报告。每个小组的每个学生都需要围绕过去做过什么、存在什么问题、下一步计划做什么开展交流讨论。学期过半以后,由每个组的学生在课堂上分别讲授自学内容。课程结束前,学生提交课程项目报告,并由每个学生汇报演示十分钟。因此,在教学过程中,教师的重点在于过程管理,对学生进行监督、辅导、引导和启发。
课程结束后,教师根据期末考试成绩、自学过程和课程项目的表现、交流、汇报等方面,综合评价学生,大致按照“理论自学、课程报告各占20%,期末考试占60%”给定综合成绩。为了强调团队合作精神,针对小组成员理论自学和课程项目的共同表现开展评价,遵循“一荣俱荣、一损俱损”的原则。
这种将课堂教学、小组自学、交流讨论等形式相结合的教学过程,使得案例教学、“做中学”、项目教学、情景教学、自主探究式学习等教学法不再是空洞的概念,而是践行在具体的教学过程中。如此一来,不仅培养了学生学习新知识的能力、利用所学知识解决问题的能力、过程规划和管理的能力、执行能力,而且也培养了学生的态度、习惯。
很多研究国外教育的文章都提到:在国外,不管是中小学还是大学,都没有在课堂上对孩子们进行大量的知识灌输,却非常强调小孩的课外阅读、分析与思考。这种培养方式被称为“放养”。我们就习惯于这样总结形成概念,进而形成表象式的思维,但却没有从“Why”和“How”的角度分析思考别人的做法。其实,这种“放养”方式更有利于培养学生的态度、习惯和能力等,但也要求教师更具有责任心、能力和经验,能导演学生“做中学”的氛围,而不是真正地放之不管。
实际上,计算机专业的很多课程可采用类似的教学方法,如C语言、计算机网络、数据结构、数据库、操作系统、软件工程等。其他专业的很多课程也可如此。这种做法可以大大压缩课堂教学的课时量,给学生留出更多的时间自学和思考,但却需要老师付出更多的时间和精力。可以肯定的是,这种方式比单纯的课堂教学对学生的培养更有利,然而,很多大学未必愿意这样做。这是因为大学缺乏尝试新教学法的氛围;这种方式不便于考核教师的工作量;课时量比质量更容易考核;老师缺乏相应的能力和经验而抵制;有能力的老师可能敷衍了事。试想在当今社会,这样做需要更多地付出,费事费神,但却未必被认可而有所回报,甚至可能出力不讨好。而传统的做法既简单省事,又稳妥可靠,还能保证课时收入。我们的老师将会作何选择呢?