150ComputerEducation教育与教学研究文章编号:1672-5913(2008)24-0150-03软件工程导论课程双语教学的实践与思考毛新军1,饶岚2(1.国防科技大学计算机学院计算机科学与技术系;2.国防科技大学人文与社会科学学院外语系,长沙410073)摘要:本文阐述了软件工程导论课程双语教学的目标和定位以及我们对双语课程教学的一些认知,分析了在双语教学过程中我们所采用的一些理念和方法,从教材、考核、实践、交流等多个环节介绍了该课程双语教学的实施细节,最后讨论了存在的问题和进一步的教学研究。关键词:软件工程导论;双语教学;教学计划中图分类号:G642文献标识码:B1教学目标和定位软件工程导论是计算机科学与技术专业本科生的一门专业基础课,是一门导论性课程。其任务是介绍软件开发的过程、方法和工具,使学生初步掌握需求分析、软件设计、软件测试的工程化方法,为学生将来从事软件开发打下一定基础,并为后续“面向对象软件工程”课程进行必要的知识准备。课程的总体目标是使学生掌握软件工程的理念和软件开发的方法学,了解软件进化过程,通过实践性教学环节培养学生的软件开发能力、工程素质和协作交流能力,培养学生提高软件产品质量、降低软件开发和维护成本、按计划交付软件产品的意识,培养学生的职业道德和团队精神。在该双语课程开设之前,软件工程课程已于2005年被评为国家精品课程。我们在软件工程系列课程的教材建设、知识点的持续更新、教学实践、教学方法和手段的改进等方面进行了积极和富有成效的改革,取得了一系列的教学成果。我们注意到,与其他课程相比较,软件工程导论课程具有以下几个方面的特点:(1)内容抽象,软件是一个逻辑产品,软件开发是一个逻辑思维的过程,软件工程导论课程的教学内容包含了大量指导软件开发的高层思想、方法和原则,这些知识点是对大量软件工程实践经验的总结。(2)注重实践,软件工程导论课程非常强调工程实践,帮助学生运用所学的知识来进行工程化的软件开发,从而积累软件工程的实践经验。(3)对英语运用和表述提出更多和更高的要求,包括文献的阅读、需求的分析和描述、软件建模、文档撰写等等。因此,在该课程的双语教学过程中如何深入浅出地向学生讲授抽象的知识、如何加强实践环节的建设、如何加强和提高学生的英语综合运用能力就成为该双语课程教学的关键。为此,在软件工程导论双语课程建设和教学过程中,我们针对软件工程课程的特点,设计科学和合理的双语课程教学大纲和计划,研究适合该双语课程的教学方式和手段,努力提高学生综合运用英语的能力,为软件工程系列的后续课程以及其他双语课程的教学奠定良好的基础,并期望达到以下目标。(1)课程教学与人才培养逐步与国际接轨西方发达国家和我国都在大力发展软件产业,因此在人才培养阶段如何加强学生的软件工程素养十分重要。针对国家的这一需求,本双语课程旨在探索和研究与国际软件工程教育相接轨的课程教学和人才培养模式,使得所培养的学生在软件工程的知识、能力和实践等方面逐步向国际先进水平靠齐。(2)适应专业特点,加强学生英语语言环境的熏陶软件工程是计算机科学与技术领域的一个重要方向,一直以来研究活跃,不断有新的概念、方法和工具出现,课程的知识体系更新非常快。特别是,绝大部分昀近的研究进展和成果都是以英文方式出现在各类会议和期刊上。因此,学科专业的这一性质决定了软件工程课程尤其需要开展双语教学,该专业方向的学生必须经常性地在英文的语言环境中接受教育。因此,通过本双语课程的教学,希望培养学生逐步适应在英语语言环境中接受知识传授,具备利用英语工具获得知识的能力。(3)促进学生多方面能力的培养通过本双语课程的教学,促进学生多方面能力的培养,尤其是利用英语进行各种形式交流的能力,包括英文教材和文献的阅读能力、撰写英文学术和文档资料的能力、通过英文进行口头表述的能力。这些能力都是培养创新性人才所必须的,也是作为一名合格的软件工程师应具备的基本要求。2教学理念(1)循序渐进本课程为大一学生开设,针对他们的英语实际水平,在课程教学中采用循序渐进的方式。比如,在课程教学中逐步加大英语在课程教学中的授课比重,首先要让学生能够听懂所讲授的知识内容,不要让他们对英语教学感到畏151ComputerEducation教育与教学研究惧;然后逐步培养他们利用英语来进行学习和交流的兴趣,在此基础上积极鼓励他们利用英语来获得知识和进行交流。(2)求真务实注重实际和成效,不追求形式。对于一些有难度的项目(软件工程技术文档的撰写和课堂报告),我们鼓励学生用英文来表述,但是不强求。对关键性的概念和术语,适时做出中文的补充说明,并在课前提供课程术语中英文对照表,以便让学生掌握与本课程有关的关键英文术语。(3)注重能力我们认为大学课程教学不仅仅要给学生传授知识,更要关注学生多方面能力(包括学术交流、获取文献、讨论和报告、撰写文献等等)的培养,从而为其参与工程实践和科学研究奠定基础。为此,本课程将强调通过双语课程教学培养学生以下几个方面的能力:利用英语获取知识的能力、文档和报告撰写能力、交流能力等。(4)强化实践加强案例分析和课程实践。软件工程导论课程的特点之一是工程实践性非常强,为此课程通过多种方式强化实践环节。比如,将具体和详尽的案例分析作为课程教学的重要内容之一,按照软件工程实践要求布置学生进行课程实习,撰写规范化的工程实践文档,加强工程实践在整个课程考核中的比重等等。此外,在课程教学中还安排诸多的实践机会来加强学生运用英语实践的能力,包括软件工程技术文档的撰写、课堂报告、网络教学平台的在线交流。3教学方法(1)激发兴趣我们深信,兴趣是昀好的老师,表扬是激发学生学习兴趣的昀好手段。通过对教学内容的精心组织,突出各知识点之间的逻辑关联,强调软件工程知识体系的系统性;通过梳理软件工程的历史发展脉络、揭示隐藏在知识点背后的思想深度、鼓励老师和学生共享个性化的经验等措施,激励学生主动探索、积极实践的学习热情,支持和激励学生利用英语来撰写软件工程开发文档、在课堂上汇报其课程实习内容以及在网络教学平台进行在线交互,激发学生利用英语获得知识和信息。(2)案例教学挖掘、整理了若干工程案例,结合案例开展教学,将软件项目案例贯穿整个讲授过程,案例的规模由小及大,并要求学生与课堂案例同步地推进各自的练习案例;加速培养了学生在大型软件开发、软件工程管理等方面的能力,颇具特色和创新。此外,在教学网站上提供丰富多彩的案例库、规范化的软件工程文档标准和模板,供学生研究、借鉴。(3)互动教学老师、助教与学生通过网络进行交流、沟通,包括网上答疑,网上作业提交、作业批改,BBS讨论区,通过网络对学生进行个性化辅导,及时与学生交互。学生不仅要提交课程实习文档,而且还要在课堂上报告其课程实践和实习成果以及体会,老师和学生一起对其实习成果进行评论和分析,从而对学生的课程实践有所反馈,让学生知道哪些方面是做的好的、需要发扬,哪些方面做的不好、需要改进和提高。(4)实践教学精心设计、精心组织实践教学环节,紧跟软件工程领域的昀新发展,适应信息化时代教育手段变革的要求,不断更新实验设计,确保软件工程的观念、技术和方法在学生的实践过程中得到应用并积累经验、体会,逐步提升学生的软件工程素质和能力。在课程教学中,我们要求学生以小组方式选择一个应用,并遵循软件工程的方法,对该应用进行需求分析和软件设计,撰写规范化的软件工程文档,并要求他们在课堂上报告其课程实习成果。课程还鼓励学生利用英文来撰写文档、在课堂上尝试用英语做报告、在课后用英语进行在线交互,为他们运用和实践英语创造机会。除专业知识与实践技能的培养外,还积极引导和培养学生的决策能力、分析能力、团队合作能力和人际交流能力等。课程实习中,不但强调实践的结果,更注重实践的过程,实习全程都有辅导教师按照软件工程的阶段进行跟踪。4双语教学的实施(1)教材目前,我们使用的是由Pressman编写的软件工程教材昀新版本(第六版,英文):RogerS.Pressman,softwareengineering–Apractitioner’sapproach,sixthedition(English),TsinghuaUniversityPress,2006。该教材在国际软件工程界产生了巨大和深远的影响,树立了它在软件工程课程教学中无可置疑的权威,在全球近千所大学中广泛使用,是软件工程课程教学昀具影响力的教材。该书从1982年的第一版开始,就受到我国软件工程界的重视,成为高等教育计算机专业软件工程课程的重要教材和教学参考书。(2)教学计划该课程共有24学时,其教学内容的选择和课时安排如下表。除了正常的知识讲授之外,我们在课程教学过程中还安排了2个学时的案例分析和示范,4个学时的课程实践报告和分析。案例分析和示范主要通过一个较为完整的案例分析和文档演示,向学生介绍如何进行软件的分析、建模和设计,并形成规范化的软件开发文档。课程实践报告和分析主要选择性的请一些学生介绍他们课程实践的情况和结果,并进行分析和评价,以帮助学生知道哪些实践和结果是可取的,哪些需要改进和提高。152ComputerEducation教育与教学研究序号教学内容课时说明1Courseintroductionandrequirements22Softwareandsoftwareengineering23Softwaredevelopmentprocess24Requirementengineering25Buildingtheanalysismodel26Casestudyofrequirementanalysis1案例教学和示范7Designengineering28Buildingthedesignmodel49Casestudyofsoftwaredesign1案例教学和示范10Presentation&Discussion2实践报告和讨论11Softwaretesting212Presentation&Discussion&Summary2实践报告和讨论(3)英语实践在双语课程教学过程中,我们通过多个环节来加强学生的英语实践。首先,要求学生阅读英文教材来提高英语的阅读能力和水平,掌握与该课程相关的关键术语。其次,在课程实践中鼓励(不强求)学生利用英语来撰写规范化的软件文档,从而来训练和培养学生的英文书面表述能力;第三,在课程实践报告和分析中鼓励(不强求)学生运用英文来介绍其实践文档和结果,而来训练和培养学生的英文口头表达能力。(4)课程考核课程考核分为二个部分:闭卷考试和课程实践,各占50分。闭卷考试要求学生用英文答题。课程实践分为二个实验,需求分析和软件设计,要求学生根据所选择的应用,对其进行需求分析,建立需求模型,用中文或者英文撰写软件需求规格说明书;在此基础上对其进行软件设计,建立设计模型,用中文或者英文撰写软件设计规格说明书。课程将对学生提交的实践结果(即软件开发文档)的正确性、规范性、完整性、一致性、语言表达等方面进行评估。5存在的问题和思考从整体上看,该双语课程教学取得了较好的效果,超出了我们的预期。与此同时,在教学过程中我们发现了一些问题。首先,学生对双语课程存在畏惧的心理,许多学生要经过较长时间才能适应这一教学模式。其次,学生缺乏足够多的课后时间来应对双语教学,包括阅读英文教材,查找英文资料,撰写英文文档等等。第三,学生不愿意和不习惯用英语来进行报告和交流。我们认为,双语课程的教学切忌一窝蜂上,双语课程的开设需要考虑诸多的环节和因素,条件成熟一个上一个。首先,双语课程的开设必须与整个本科培养方案相协调,需要得到其他课程的支撑和协助。比如大学英语教学、与其他课程的衔接、学生课后所能支配的时间等等。其次,考虑到现阶段本科生的外语水平,双语课程不能急于求成,应追寻有效的目标。第三,为了提高双语课程教学效果,任课老师应该在课前进行精心准备。比如在我们在开设软件工程导论双语课程之前,做了以下一系列的准备工作:英文教材选择、英文课程教案、多次试讲、英文文档模板、英文案例分析、课程关键英文术语、英文课程试卷等等