梁春泉,张阳,戴涛
(西北农林科技大学,陕西杨凌712100)
摘要:“中间件技术”是软件工程专业的核心课程,该课程学习企业级分布式系统开发所需的大量理论、技术和概念。传统讲授法令学生感觉课程内容繁杂、抽象、枯燥,难以掌握。探索将案例教学法和问题导入法有机结合,提出案例式问题导入法,并引入到“中间件技术”课程教学中,为“中间件技术”及类似课程的教学改革提供参考,并对案例式问题导入法的开展给出几点建议。
关键词:中间件技术;案例教学法;问题导入法;分布式系统
中图分类号:G642.3文献标识码:A文章编号:1002-4107(2015)09-0046-03
收稿日期:2014-12-17
作者简介:梁春泉(1981—),男,广西桂平人,西北农林科技大学信息工程学院讲师,博士,主要从事软件工程、数据挖掘研究。
基金项目:西北农林科技大学教改项目课题“案例式问题导入法在中间件技术课程教学中的探索与实践”(JY1302064)及“软件工程专业个性化能力培养模式研究”(JY1301009)
“中间件技术”是软件工程专业的主干课程,是全国各大高等院校软件工程专业本科生或研究生的必修课。中间件实质上是对企业级分布式系统开发中面临的共性问题进行提炼、抽象所形成的可复用软件部件,为企业级应用系统提供基础架构。该课程以计算机编程语言、面向对象技术、计算机网络等多课程交叉知识为基础,围绕五大类型中间件即远程调用、消息、分布对象、数据库和事务中间件开展,学习中间件技术的概念、原理及应用。课程强调学生对企业级分布式系统原理的掌握,同时注重学生解决实际问题的实践能力。
然而,各大高校在开设“中间件技术”课程时,普遍侧重于向学生灌输基本概念和原理,辅以简单孤立的、远离真实企业应用的程序示例进行讲解。部分高校甚至把对某一中间件产品的介绍,如J2EE或.NET,当成学习“中间件技术”的全部内容。造成学生对该课程中所涉及的大量知识难以融会贯通,对企业级分布式系统开发理论理解的广度和深度不够。同时,本科生由于缺乏软件项目经验,特别是大型企业级分布式系统项目经验,对中间件技术的应用角度和应用领域不理解,也不了解中间件技术在就业前景和职业生涯中的作用,学习兴趣不高。国内对“中间件技术”课程的教学改革探讨工作也非常少,据笔者查阅,只查到相关文献[1-2],但这些文献仅探讨了J2EE中间件教学,并非真正意义上的“中间件技术”课程。
为了让学生能更好地把前期所学专业课知识、企业级分布式系统开发理论和实践结合起来,激发学生的学习兴趣和热情,提高“中间件技术”课程教学质量,本文尝试将案例教学和问题导入法融合起来,提出案例式问题导入法,并引入到“中间件技术”课程教学中。
一、案例式问题导入法的提出
(一)案例教学法的内涵及意义
案例教学是在学习者掌握相关知识基础上,在教学者的组织和指导下,根据教学目的和教学内容要求,借助于真实案例连接学习的内容与实际应用,把学习者带入具体场景进行案例分析,让学习者通过对案例相关资料的收集、研究及对案例的分析、讨论和交流,最终对问题予以解决,在此过程中加深学生对基本原理和概念理解的一种教学方式。案例教学最初源于英国的法学,后来被成功地用于法学、医学、经济学和管理学等学科领域。计算机专业课程的传统教学模式侧重于讲解基本概念和原理。由于学生缺乏对工程实践背景的了解,其结果是学生虽然掌握了单个原理,但却很难融会贯通并综合应用。为此,在计算机专业课程教学中,国内许多学者也引进了案例教学[3-4],为学生在计算机理论与实践之间搭起一座桥梁。
本文在“中间件技术”课程教学中引入案例教学,避免学生孤立地学习各个概念,帮助学生理解如何将多课程理论知识融合成一个整体,深刻地理解企业级分布式系统理论如分布式事务、安全服务、负载均衡等,并提高运用前期所学知识的实践能力。同时,真实的案例还可以帮助学生了解中间件技术在就业前景和职业生涯中的作用,提高其学习兴趣。
(二)问题导入法的内涵及意义
问题导入法是启发式教学原则的一种具体教学方式,以解决问题贯穿整个教学。实施过程中,教学者为了让学习者掌握一个理论或方法,导入一个具体问题,以解答这个问题为导向,引发学习者思考解决这个问题,从而引入所需要学习的理论或方法,并在解决问题过程中掌握这些理论或方法。该方法能培养学生解决问题的能力,让教学变得灵活,有利于培养学生的学习兴趣;同时,由于学生在解决问题过程中可以提出不同的思想和方法,有利于培养学生的创新思维[5]。
中间件实质上是对企业级分布式系统开发过程中面临的共性问题进行提炼、抽象所形成的可复用部件。在“中间件技术”课程中应用问题导入法,引出并解决这些共性问题,可让学生自然地掌握中间件技术的概念和理论。再者,“中间件技术”课程涉及大量抽象的、难于理解的概念,直接讲授会令学生觉得枯燥无味,没有学习兴趣。问题导入法将学生带入问题的思考中,在思考中学习中间件技术知识并培养学习兴趣。最后,中间件技术是前期课程知识的综合。传统讲授法让学生简单孤立地理解各个概念,无法从整体上把握。问题导入法带引学生思考,在此过程中,学生自己将各种理论和技术联系起来,从而在宏观整体上理解中间件平台。
(三)案例教学与问题导入法的结合
案例式问题导入法将案例式教学和问题导入法有机结合,充分利用这两种启发式教学的优点,调动学生的积极性,启发学生思维,变被动为主动。传统问题导入法按问题的导入方式一般有情景式导入问题、任务式导入问题和案例式导入问题。本文也是在案例中导入问题,但“中间件技术”课程教学中的案例式问题导入法有其特殊性。传统的案例式问题导入法,围绕案例导入问题,学生通过解决这些问题,得到整个案例的解决方案。然而,在“中间件技术”课程中,学生需学习的是如何解决企业级应用系统开发中的共性问题,而不是开发整个系统。因此,对企业级应用案例,只需导入系统开发中的共性问题,让学生在解决这些共性问题中学习中间件知识。
“中间件技术”课程中案例式问题导入法的基本思路为:教师首先对真实的企业级应用案例作垂直层次分析,识别出开发共性问题,将案例分为业务层、中间件和部署环境;然后把所用到的中间件转变为开发中面临的共性问题,其他两层作为从已知引出未知的基础;最后组织学生讨论并解决这些问题,掌握中间件技术的原理和应用。
二、运用案例式问题导入法的策略
案例式问题导入法在“中间件技术”课程中的实施过程包含获取案例、分析案例、导入问题、设计教案、发放资料、组织课堂、案例实践、交流反馈、评价调整等九个步骤。
(一)获取案例
案例是开展案例式问题导入法的基础,案例获取和选择最终影响着教学效果。课程小组根据教学目标和教学内容的要求,通过网络或其他资源,收集国内外企业级应用系统案例,供案例式问题导入法教学实施或学生案例实习使用。案例不是简单举例,案例必须是真实的、完整的、典型的和具有启发性的[6]。
(二)分析案例
案例的解决方案,表面上是一个平面化的技术框架。在案例分析过程中,课程小组需要根据中间件的定义,将案例解决方案在垂直方向上划分为三个层次:业务层、中间件和开发部署环境。
业务层:应用系统包括哪些业务模块、业务子系统;哪些业务子系统给别的业务子系统提供服务,或哪些业务子系统需要别的业务子系统提供服务。
中间件:业务子系统间采取什么通信方式,如过程调用、对象调用或消息调用等;如何实现服务定位、安全机制、事务实施、多任务创建及负载均衡等。
开发和部署环境:分析硬件环境、网络类型、操作系统类型、开发语言、数据库系统等。
(三)导入问题
根据课程内容,以业务系统和部署环境为基础,假设中间件部分未知,把所需中间件转变为企业级应用开发面临的共性问题。例如对消息中间件提出业务子系统之间如何消息传递的问题;对对象调用中间件提出业务子系统之间如何调用彼此对象的问题;对CORBA提出业务子系统语言开发语言不同,如何调用彼此对象的问题;对事务中间件提出如何在子系统之间保证一系列操作满足事务特性的问题等。每个大的问题同时还可以拆分成一系列前后相关、有启发性的子问题。
(四)设计教案
围绕教学内容和教学目标,确定每次案例教学的重点和难点。特别是中间件概念、原理、结构、应用和作用。在教学方法中,引导学生讨论,激励他们参与和合作学习,注重启发思维和理论联系实际。在教学过程中,合理组织和使用案例分析得到业务系统组成、开发部署环境组成及导入的共性问题,考虑如何从业务系统、开发部署环境中提出问题,安排学生从一个问题的讨论过渡到另外一个的讨论。同时,教师还需要规划和控制好教学过程的时间。
(五)发放材料
课前,学生需要对企业级分布式应用案例有所了解。因此课前需要将案例相关材料发给学生。但给学生提供的不是完整的案例,而是除去中间件部分的案例分析材料。对中间件部分,可转变为初步的问题,如系统缺了什么,也提供给学生。同时还要将企业简介、业务背景、公司网址等参考资料交给学生,供学生提前准备。
(六)组织课堂
整个课堂组织以学生讨论为主。教师从业务系统需求、开发部署环境条件开始,将学生带入到共性问题中,组织学生分组讨论。在学生讨论过程中,要调动学生的积极性,尽量让所有学生参与讨论,避免出现冷场现象;注意观察和了解学生的反应和表现,加强个别辅导,鼓励学习有困难的学生参与讨论和发言。讨论中,教师需要在适当的时候加入评价、反馈矫正和归纳,突出重点和突破。
(七)案例实习
“中间件技术”课程的实习,不应该是简单地调用中间件运行库的API编程。在实习中,需要给学生提供一个新的、与学习内容相关的、完整的案例。首先让学生依据课堂所使用的案例分析材料,采用相同的案例分析方法,将案例垂直划分为业务层、中间件层及开发部署环境层,确定每层包含的内容。其次确定案例所采用的中间件产品。最后让学生编程部分实现中间件调用;对于优秀的学生,鼓励其实现简单的中间件。通过这样的实践,让学生从宏观到微观,从中间件的作用、地位到应用等多角度进一步学习。
(八)课后交流
课后的交流对改进教学过程、提高教学质量有着重要作用。课后,教师需要与学生交流对案例式问题导入法的感受,了解有哪些考虑不足的地方,学生对课程实施有什么意见。在笔者实施教学过程中,有许多学生会主动与教师交流。在反馈过程中,学生提出了许多建议,同时普遍认为,这种教学方式,让他们都可以参与,更能集中注意力;真实的企业级分布式应用案例中导入问题,能激发他们的兴趣和动力,能让他们从部分到整体深刻掌握中间件技术,同时更能理解中间件的作用及在系统中的地位。
(九)评价与改进
一轮案例式问题导入法教学实施之后,教师需根据学生实习过程和实习报告、课堂讨论、课后交流及考试等方面的情况,对该教学进行评价,总结可取之处,发现不足。针对不足地方,需要在案例分析、问题导入上进行适当调整,甚至修改教案和调整课堂组织。调整结果将应用到下一轮教学中。通过评价调整,持续改进案例式问题导入法,使其趋于完善。
三、反思
(一)建立高质量的企业级分布式应用案例库
实施案例式问题导入法的基础是建立完整、真实、典型和启发性的案例库。案例必须是真实的,是国内外知名企业的真实企业级分布式应用;案例必须是完整的,包括应用背景、技术方案和实施结果;案例必须是典型的,覆盖着一类或几类中间件技术,并且是这些技术的典型应用;案例必须具有启发性,能启迪学生思考,给学生足够的想象和自由发挥空间。
(二)解决企业级应用开发中的共性问题
传统的案例教学中,教师提供案例背景,导入面向整个案例问题,让学生围绕问题解决整个案例。在“中间件技术”课程教学中,学生不需要实现整个企业级分布式应用案例方案,如,不需搞清楚业务流程、如何实现业务模块,也不考虑如何选择底层部署环境。学生要解决的是系统开发中的共性问题,即中间件部分的问题。对业务实现方案和开发部署环境方案,教师分析后直接提供给学生,中间件部分转变为共性问题,让学生能在业务和部署环境的基础上解决这些问题,从而自然掌握中间件知识。
(三)注意提高学生的学习兴趣
兴趣是课堂组织过程中,让学生积极参与、避免冷场的关键。在笔者初步尝试案例式问题导入法时,从案例的业务需求和部署环境直奔导入的问题,让学生讨论,结果学生兴趣不高,课堂气氛不是很活跃。在这种情况下,笔者及时调整,以企业规模和地位、员工收入、业务背景等方面激发学生的兴趣,让学生感觉以后他们将会在这样的企业中发展,置身企业员工角色中。在评价和小结过程中,充分肯定每一位学生的见解和方案。通过这样方法,启发了学生的兴趣和动力,课堂变得活跃,学生开始积极发言,相互启发,取得较好教学效果。
(四)对师生的要求
教师作为教学的组织者,必须对所讲授的教学内容、学科知识体系有明晰、深刻的认识。同时教师最好具有在软件企业从业或进修的经历,有着丰富的软件工程项目经验。这样才可对企业应用背景、案例有深刻的理解,能对案例在垂直层次进行合理的分析。教师还要能根据学生已有知识结构基础、思维能力水平层次,针对中间件层,导入难度要适当,但又稍高于学生现有能力的问题。学生作为学习的主体,不需要具备全部的基础知识、概念、基本技能,因为讨论过程中,每位学生所擅长的知识可以弥补彼此的不足;但他们需要在教师引导下,能够主动地参与讨论,积极探索。
本文将案例教学和问题导入法相结合,引入到“中间件技术”课程教学中,以真实的企业级分布式应用案例驱动教学。对案例选取、案例分析、问题导入、课堂组织及案例实习等方面进行了讨论,指出了案例式问题导入法的要点。
参考文献:
[1]乔波.基于案例的“J2EE与中间件”教学改革初探[J].科技文汇,2011,(1).
[2]张伟娜.基于企业应用浅析中间件教学改革[J].科技信息,2011,(21).
[3]朱涛,马恒,刘强.专业技术课程案例教学方法研究[J].高等教育研究学报,2010,(1).
[4]葛继科,雷亮.案例教学在计算机科学与技术专业课教学中的应用[J].重庆科技学院学报,2011,(9).
[5]石立.“问题导入法”在统计学中的应用[J].统计与咨询,2012,(2).
[6]周云,辛华,姚新宇.案例教学在“计算机软件技术基础”课程中的尝试[J].高等教育研究学报,2007,(3).