软件工程课程双语教学的研究与探索_第1页
软件工程课程双语教学的研究与探索_第2页
软件工程课程双语教学的研究与探索_第3页
软件工程课程双语教学的研究与探索_第4页
软件工程课程双语教学的研究与探索_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、“软件工程”课程双语教学的研究与探索 摘要:本文针对软件工程课程本身的特点,在对软件工程双语教学的必要性可行性分析的基础上,分别从教学模式教材选择备课和教学方法等方面进行软件工程双语教学的研究和实践,教学效果良好。<br>关键词:双语教学;软件工程;教学模式;教学效果<br><br>软件工程作为高等学校计算机专业的一门核心课程,是指导学生进行计算机软件系统开发和维护的交叉性的新型学科,该学科的实践性非常强,不仅要求学生具有良好的程序开发能力,而且要具备软件项目的整体管理概念,以及良好团队合作精神,而且,软件工程在计算机科学领域发展速度很快,这就给教学工作带来

2、了一定的难度,如何提高教学质量培养适合社会需求的复合型软件开发人才成为该课程教学改革的关键1。本文根据该课程本身的特点,首先对软件工程双语教学的必要性可行性进行了充分分析,然后对软件工程双语教学从教学模式教材选择备课和教学方法等方面进行了深入的研究和实践,结果表明,并取得良好效果。<br>1软件工程双语教学的必要性<br>所谓“双语教学”是指教师综合运用两种语言(一般为汉语和英语)完成教学的过程2。软件工程是一门发展很快实践性极强的学科,同时,它又是一门引进学科,该领域中的很多新知识新技术都源自欧美发达国家,对这些新知识新技术的表述以及大量的学术论文都是用英文来撰写的,

3、因此开展双语教学将会为学生搭建起一个良好的学习平台,学生不仅能够使得学生掌握最新的软件理论和技术,而且能够训练学生较强的外语应用能力, 对于培养计算机专业学生在国际化环境中的工作、外语应用、对最新技术的掌握及应用以及对国际规范和标准的理解应用等能力都有很大的帮助3。当前,在经济全球化的大环境中,国外优秀的软件工程教材层出不穷,这也为软件工程双语教学中优秀原版教材的选择提供了很大的余地,如果这种最新原版英文教材在软件工程教学中使用,既加快了成熟的软件工程理论和软件新技术在国内的传播和推广,又缩短了学生们对新理论和技术的吸收消化周期4。因此在软件工程教学中实施双语教学是必要的。<br>

4、2软件工程双语教学的可行性分析<br>软件工程双语教学虽然具有重要的现实意义,但是它必须和具体的实际情况相结合,结合我院的实际情况,对软件工程双语教学从以下3个方面进行可行性分析。<br>2.1师资<br>合格的双语教学师资队伍是取得双语教学成功的关键。双语教学作为一种现代化教学手段,不但给教师提供一个提高自身英语综合运用能力的平台,而且对教师的素质也提出了更高的要求。今年来,随着学院教师队伍的壮大,软件工程作为一门学院的重点建设课程,该课程的教学梯队也不断趋于完善,该教学梯队主要由一支专业技术过硬英语功底扎实和教学与软件开发经验丰富的具有硕士以上学位的中、

5、青年教师组成,教学实践表明,他们完全有能力完成软件工程双语教学的任务。<br>2.2教材<br>采用优秀的原版教材是双语教学的一个基本要求4,然而考虑到语言上的差异、课程内容和体系上的不一致以及学生从用母语学习到用英语学习转化过程中的适应能力,我们在选择教材时,并不是拿来就用,而是通过多年的教学实践和大量的调研工作,对教材内容做了适当的选取和删减,并为学生选配了相应的内容较详细的中文参考书,以便于学生在学习中遇到困难时能够有所帮助。<br>2.3学生的具体情况<br>根据软件工程课程自身的特点,结合我院学生的实际情况,我们不仅对软件工程教学大纲进

6、行了适当的修改,而且对该课程的的教学计划进行了调整,把软件工程课程安排在大三后半学期开设,这样,经过两年半的英语学习,学生已经具备了一定得英语基础和扎实的专业知识,这就为软件工程双语教学创造了良好的实施条件。<br>通过上述3个方面的分析可知,在我院开展软件工程双语教学是可行的。<br>3软件工程双语教学的实践<br>双语教学作为一种现代化的教学模式,结合软件工程的课程特点,通过大量调研和多年的软件工程双语教学实践,我们在软件工程双语教学方面取得了很大的进步,教学效果良好。<br>3.1教学模式<br>目前,我国高校双语教学大体可分为

7、3种模式:(1)沉浸式双语教学:教师使用英文原版教材,完全用英语授课,仅用汉语作辅助说明。(2)保持式双语教学:该教学模式要求教师用中英文相结合授课,并尽量使用原版教科书里准确又精炼的英文,让学生学习和掌握正确的英语表达方法。(3)过渡性双语教学:教师采用中文授课,学生阅读原版英文教材。根据我院学生英语的实际水平和语言教学的特点,在软件工程双语教学中,我们采用第2种双语教学模式进行授课,在开始几周的教学中,从简单入手,用中英文穿插的板书,以中文为主讲解,英语教学为辅,循序渐进,在后续的教学中逐渐加大英文教学的比重,给学生一个适应的过程。<br>3.2教材选择<br>软件

8、工程技术发展迅速,包含内容多,选择教材既要保证教材内容的新颖、全面,还要考虑内容是否能与实际软件开发紧密结合,对实践能否起到重要的指导作用。通过大量调研和实践,我们选择高等教育出版社出版Software Engineering: theory and practice(Shari Lawrence主编)教材,该书是国外优秀教材,内容系统全面,结合当前软件工程的发展,介绍了许多新的软件开发和管理技术,课后习题知识点的考查详尽。另外,我们给学生配备了清华大学出版社出版与该教材配套的中文译本和相应的电子书以及教学课件,便于教师和学生的学习与参考,有助于取得更好的教学效果。<br>3.3备

9、课<br>双语教学效果的好坏,不仅与教师的自身素质有关,而且与教师备课的质量密切相关。由于软件工程教材内容多,课时有限,这就要求教师必须能够准确把握教材内容,制定出合理的授课计划。把最精华的东西传授给学生,培养学生对该课程的兴趣,在双语教学中起到事半功倍的作用。有些非重点内容教师可以只列提纲,让学生课下自习。通过布置英文书面作业或者让学生阅读一些英文资料,然后分组用英文口头报告阅读结果,这样可以培养学生日后撰写英文论文的能力。<br>3.4教学手段<br>在软件工程双语教学过程中,我们采用了循序渐进的教学方式。在授课初期,教学进度要放慢,以中文讲授为主,英语

10、教学为辅,及时总结归纳专业词汇,重点培养学生阅读教材内容,并结合中文译本理解相关专业知识。当学生克服了双语教学的胆怯心理、英文听力与阅读能力加强后,逐渐提高英语讲授内容的比重,并鼓励学生采用英语回答问题和完成作业,这种教学手段收到了良好的教学效果。<br>3.5教学方法<br>教学方法是整个教学过程的关键,教学方法的好坏,直接关系着教学目标以及教学任务能否完成5。我们在软件工程双语教学中采用了多媒体教学、启发式教学、情景教学、案例教学等教学方法,教学效果明显。<br>多媒体教学<br>由于软件工程课程内容多、难度大且较抽象,专业知识的英文表达比同

11、样信息量的中文表达所占版面大、费时多,因此软件工程双语教学采用多媒体教学,以增大讲课的信息量,提高教学效率。另外,在多媒体教学中,适当的板书更有利于引导学生思维,增强师生间的交流,教师可以根据实际情况在调整、修改板书的过程中达到和学生交流互动的目的。如果完全用投影屏幕替代黑板,就会影响学生对某些具体问题的理解,并减弱师生间的互动性。我们根据实际情况在教学中使多媒体与传统教学形式相结合,在制作多媒体课件时,只把一些不便板书的定义、概念、图表等内容制作进去,而对一些重点内容、典型例题则留给教师在课堂上以板书方式去讲解发挥。同时,课堂上经常采用“提问-回答”的交互式方式,鼓励学生提出问题和讨论问题,

12、引导学生进行一些深层次的思考,增加了教学的灵活性6。启发式教学<br>启发式教学是一切教学方法的灵魂,如何把启发式教学的指导思想融入到讲授中去是关键。在软件工程双语教学中,我们采用启发式教学,从学生的知识基础、心理特点和接受能力出发,结合学生的具体情况,有目的、有计划地提出一些问题,带领学生分析问题、探索解决问题的途径。通过教与学的互动作用,充分调动了学生的学习主动性、创造性。<br>情景教学<br>“情景教学”以其生动、直观的特点,成为教学设计的最重要内容之一,在软件工程双语教学中,我们创设真实的问题情景或学习环境,使学生“身临其境”,以诱发他们主动进行探

13、索与解决问题的活动,例如,在讲解系统的需求分析时,我们构建了“学生选课系统”的场景,并配以声音和动画,使学生很容易根据情景获取系统需求。通过该方法的实践,培养了学生的兴趣,启迪了学生的思维,发展了学生的想象力,开发了学生的智力,发挥了传统教学方法所没有的优势。<br>案例教学<br>案例教学因其先进的理念,鲜活的教学方法及最具针对性的特点,成为现代教学中一种不可替代的重要教学方法。软件工程是一门实践性极强的课程,软件开发的典型案例是帮助学生掌握软件工程方法、进行软件开发的最好范例。在软件工程双语教学中,我们通过企事业单位中的实际项目或从中抽取出的模拟项目,为学生创造一个

14、仿真环境,使其在课堂上就能接触到实际的问题和环境,从而学会在复杂条件下,利用所学理论解决实际问题,该方法的采用收到了良好的教学效果。<br>4结语<br>改革传统教学,探索新的教学方法是目前大多数学校教学改革的重点。通过软件工程双语教学的多年实践,我们虽然取得了一定的成绩,但是还存在很多不足:教师口语不标准、教学方法有待完善等,这就需要我们从事软件工程双语教学的教师进行深入研究、探讨,相互交流经验和教训,不断探索和尝试,调整教学方法,不断提高我们双语教学的效果和质量。<br>参考文献:<br>1 潘娅. 软件工程教学方法探索J. 西南科技大学高教

15、研究,2006(2):28-30.<br>2 陈振东. 非英语专业实行双语教学的问题与对策J. 广西民族大学学报,2007(1):200-202.<br>3 李灿. 对我国高校实施双语教学的几个相关问题探讨J. 摘要:本文从“操作系统原理”课程的教学内容、教学方法和教学实践三方面,介绍了这门课程的改革,以适应人才培养的目标。<br>关键词<br>本文来自:计算机毕业网 :操作系统原理;教学改革;启发示教学<br><br>1引言<br><br>“操作系统原理”这门课难学、难懂、概念抽象、感性认识差,教

16、师在教学中使用传统的教学方法和教学手段很难实现教学目标。如何改革“操作系统原理”课程教学,以提高其教学效果和教学效率,跟上计算机技术的发展,这是我们当前亟需解决的问题。<br><br>2教学内容的改革<br><br>“操作系统原理”课程内容改革必须兼顾基础性和前瞻性,同时体现趣味性以激发高职学生的学习兴趣。<br>首先,在讲授操作系统原理的具体方法和技术细节时,加入对技术发展历史和当前新技术发展潮流的解释,既开拓学生的专业视野,又对专业历史有深入的了解,以此激发学生的学习兴趣和专业使命感。其次,在详细剖析操作系统的五个核心原理时,注重

17、剖析算法设计思想和优化方法的差别,强调激发学生的主动思考能力。而且,整个教案的内容组织注重引导学生探讨各种知识的内在联系和技术的引入背景,注重知识的理解,而非简单记忆。基于这样一条明确主线,学生的学习更具方向性和目的性,学习效果明显提高。最后,要注重选用真实操作系统作为学习的案例。通过对真实案例的剖析以提高学生的感性认识。例如,将目前流行的Windows XP系统和Red Hat Linux 9.0系统进行对比,无论是进程管理还是文件系统中EXT3、FAT32和NTFS的对比,都以这两个系统为实验的基础。<br><br>3教学方法的改革<br><br&

18、gt;对于操作系统原理这门难学、难懂的课,我们采用的是形象化的教学方法与启发式的教学方法相结合、突出对目前流行操作系统中问题解决的两个方面。<br>3.1采用形象化与启发式相结合的教学<br>形象化教学是教师将抽象的原理与现实生活中的具体的事件相联系,使课程内容变得生动而简洁,从而取得良好的效果。<br>例如,在操作系统原理中,中断机制是非常重要的,它用于协调系统对各种外部事件的响应和处理,并且是实现多任务的必要条件。在教学时可以打这样的比方:小王和小陈在下象棋,眼看小王就快招架不住了,正当此紧要关头,小陈的女友来了,非要小陈陪她上街买衣服不可,于是小陈不得

19、不同小王商量,先把棋盘封了,待买完衣服后继续战斗。掌灯时分,小陈带着满脸疲惫回到了棋盘前,结果小王不费吹灰之力便反败为胜。这就是整个中断过程。然后,笔者对这个中断过程进行分析,中断请求(小陈的女友要他逛街),中断响应 (小陈准备放下棋局陪女友逛街),现场保护 (先把棋盘封了),中断处理(小陈陪女友逛街买衣服),恢复现场 (把棋盘解封),中断返回 (继续战斗)。如果小陈把棋移到密室中下,不让他的女友打扰,这就叫“中断屏蔽”。<br>启发式教学法是教师启发学生积极思维,使他们主动掌握知识的一种教学方法。教师一方面要深刻理解“操作系统原理”课程的基本理论,另一方面要了解计算机科学的最新发

20、展和应用情况。同时,教师应该注重知识的逻辑组织形式,采用多种多样的形式将枯燥的理论知识与灵活的实际应用相结合,使教师和学生之间形成流畅的信息流动,从而最大限度地调动学生的主动性,营造出积极、和谐的课堂教学气氛。例如,在教学过程中,教师可以不失时机地设置一些问题,将流行操作系统中的问题和现象与课本上的理论知识结合,引导学生进行积极思考,而实现观点的撞击。并且鼓励学生提问,根据学生反馈的信息和问题,与学生探讨问题的解决,而非直接给出答案。<br>3.2突出对目前流行操作系统中问题的解决<br>教师在讲授操作系统原理时,要注意理论知识的实现环节,使学生的感性认识和理性认识结合

21、起来,以激发学生学习的积极性和主动性。<br>目前流行的操作系统以Windows与Linux为主流,教师在授课过程中,从应用的角度介绍Windows操作系统的原理与实践,包括:Windows操作系统简介、Windows XP的安装、资源管理、磁盘管理、用户与安全管理、辅助工具的使用及系统的管理和维护等。通过这些内容的学习,可以提高学生对操作系统原理的理解与实际中的使用能力。例如,在讲解文件系统时,笔者把Windows XP支持的FAT32和NTFS文件系统进行了比较,FAT32长于与Windows 9x的兼容性,NTFS长于系统安全性,如何将FAT32转换成NTFS格式,最终引导学

22、生在满足应用的前提下,思考怎样设置文件系统才能充分发挥Windows的特性,突出了实际的应用能力。<br><br>4教学实践环节的改革<br><br>目前,高职院校的教师普遍感觉学生在课堂上听不懂,造成这种情况的主要原因是教师按理论研究型的人才而非实践应用型人才的培养标准在要求学生,没有考虑到高职学生的智力类型、兴趣特点和能力结构,违反了“因材施教”的教育原则。<br>因此,做好教学实践是十分重要的环节。通过教学实践,学生可以在实际操作中查看和修改操作系统的属性与状态,增强动手操作的能力;学生可以把理论知识与实践相结合,在实际工作中得

23、到锻炼和提高,使学有所用。笔者特别注重实验内容的选取,紧跟操作系统的发展,选取合适的操作系统实例,注重与实际运行的各类操作系统结合。实验平台选用目前最为流行的两大操作系统Red Hat Linux 9.0和Windows XP系统,实验内容以验证性操作为主,并为每个实验列出大致的步骤和实验记录表格。比如,在刚接触“操作系统原理”这门课时,笔者设计了操作系统的安装实验,内容主要以安装Windows或XP与Red Hat Linux 9.0为主线,并介绍了这两大操作系统的发展历史。在讲解文件系统时,相对的实验操作有:Windows XP的文件加密、磁盘配额、创建紧急修复磁盘、磁盘清理、备份与恢复数

24、据、CHKDSK维护文件完整性等操作。<br>学生通过实验来了解和实践课程知识,通过实验来形成一定的感性认识,在此基础上,教师在课堂教学环节中答疑解惑,系统地提高学科知识的理论水平。<br><br>5结束语<br><br>“操作系统原理”作为计算机专业的核心课程它的教学工作理应得到进一步的加强。在此过程中,我们应根据高职学生的实际情况,及时调整教学内容,加强应用与实践环节,变单纯传授知识为在传授知识过程中重视应用能力培养,大力推进素质教育,从教学内容、教学手段、实验配置等几个环节全面提升教学工作。 <br><br&g

25、t;参考文献<br>1 黄廷辉,许倩霞. 操作系统课程建设的探索J. 桂林电子工业学院学报,2004,24(2).<br>2 汤子瀛等. 计算机操作系统M. 西安电子科技大学出版社,2001.<br>3 张尧学,史美林. 微机操作系统教程M. 北京:清华大学出版社,2000.<br>4 戴学威. 高等职业教育课程观与课程开发向度研究J. 职业技术教育,2003,(7).<br> </p> <p> </p> <p> </p> 摘要:本文针对计算机软件工程专业本科生开设“设计模式

26、”课程的必要性和可行性进行分析,并且对课程的具体内容和学时分配做了详尽的论述,旨在进一步完善本科软件工程专业的课程体系,提高毕业生的就业竞争力。<br>关键词:软件工程;设计模式;课程体系<br><br>设计模式/软件设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结1。GOF的设计模式可复用面向对象软件的基础一书将设计模式提升到了理论的高度,并将之规范化。随着计算机软件工程技术和面向对象技术的发展,设计模式已经成为软件设计人员必须掌握的思想和技术。可以说只有设计模式才能真正实现代码编制的工程化,才能真

27、正实现代码的重用性和可维护性。<br>1必要性分析<br>计算机专业在经历了一轮火热的发展后,随着社会需求的相对减少,以及计算机人才市场的逐渐饱和,计算机专业的毕业生在就业市场上不再那么炙手可热,就业的竞争也越来越激烈。<br>计算机专业培养的本科生毕业生,大体可以分为两种类型:一种是计算机相关理论基础扎实、研究能力较强、在一定程度上了解某一方向的科学前沿,具有良好的综合素质的创新型人才,此类型学生大都选择继续深造或者去一些科研院所进行研究工作。另外一种是了解和掌握计算机软件和硬件开发设计的理论基础,具有较强的计算机软硬件设计和开发能力的应用型人才,此类型学

28、生在毕业后大多选择就业,去一些国内大、中型企业,从事软件或硬件的开发设计或管理工作。计算机专业的毕业生在就业市场上的竞争越来越激烈,如何持续不断地提高我们毕业生的就业能力,得到用人单位的认可,无疑对我们本科教学的课程体系设置提出了更高的要求。<br>由于计算机技术的发展十分迅速,社会上用人单位对毕业生的需求也在不断地变化。毕业生,尤其是面向各种企业的应用型人才,除了要掌握基本概念、基础理论外,还应该能跟得上计算机技术发展的步伐,了解和掌握一些最新的技术,以在就业的竞争中占得优势。<br>对于软件工程方向的本科生,除了计算机专业的基础课外,还开设了“软件工程”、“面向对象

29、程序设计”、“人机界面设计”和“数据库”等课程。虽然我们针对软件工程方向的学生已经开设了“面向对象程序设计”这门课,但该门课重点讲授面向对象设计的一些基本概念,比如类、对象、继承等等,而对于如何将这些基本概念应用到设计过程中,进而设计出具有合理结构的软件,在教学中并未充分说明。通过对一些软件企业的了解,我们发现企业在聘用应届毕业生后,会专门做关于设计模式方面的培训,以满足企业软件开发的需要。如果在我校课程体系中能够增设“设计模式”这样一门课程,一方面会使课程体系更为完善、更能适应当前计算机技术的发展,另一方面可以培养出具有先进设计思想和能力的学生,满足用人单位的需求,从而使得我校的毕业生在就业

30、市场上占得先机。因此面向计算机软件工程专业的学生开设“设计模式”这样一门课显得非常必要。<br>2可行性分析<br>设计模式主要以面向对象的思想来讲述在软件设计过程中被多次使用、且被实践证明非常有效的、有助于实现代码的重用和维护的一些固定程式,而且设计模式主要是为软件工程服务,因此对于开设该门课程所针对的对象,应该满足以下几个条件:<br>(1) 学习过“面向对象程序设计”。通过该门课程的学习,学生应该掌握面向对象的基本概念和基本思想,比如类、对象、接口、抽象类、继承、重载、多态等等。<br>(2) 熟练掌握一门面向对象的程序设计语言。在讲述设计

31、模式时,必然会以具体的例子来说明,而这些例子要用某种语言来实现,甚至有些例子直接就是某种面向对象设计语言的类库中使用的模式。当前比较流行的面向对象程序设计语言有Java,C#等。<br>(3) 掌握“软件工程”对软件设计的基本要求,如可靠性、可维护性、扩展性等等。<br>(4) 能够熟练使用统一建模语言UML。在讲授设计模式的过程中,会借助于类图、时序图等一些设计图来表示模式,所以掌握UML图也是必须的。<br>从以上分析得出,“设计模式”需要以上4门课程作为先修课程。针对软件工程专业的学生,前3个条件有专门的课程进行讲授。即:大二下学期开设“面向对象程序设

32、计”,并使用典型的面向对象程序设计语言Java进行讲授。大三下学期开设了“软件工程”课程。只有第4个条件统一建模语言UML,在当前的课程体系中没有体现,由于在“设计模式”中涉及到的UML内容不是特别多,没有必要将UML单独作为一门课程开设,而且设计模式和UML的联系比较紧密,因此可以把UML的内容和设计模式合并在一起作为一门课程来讲述。<br>由上可见,在当前的课程体系下,针对软件工程专业的本科生,在大四上学期增加开设“设计模式”这样一门课是完全可行的。<br>3教学环节设计<br>计算机学科是一个实践性比较强的学科,“设计模式”也不例外。因此在“设计模式”

33、的教学中应该以理论和实践相结合的方式进行,整个“设计模式”课程的教学过程分为理论教学和实践教学两个环节,并且根据具体的教学内容确定总的教学时数为32学时,其中理论环节24学时,实践环节8学时。<br>3.1理论教学环节设计<br>“设计模式”的理论教学内容包括UML的基本内容和GOF提出的23种基本设计模式,另外补充讲解一些属于23种基本设计模式以外,但在实际开发过程中常用的模式,比如模型-视图-控制器(MVC)模式等。23种基本设计模式又可分为创建模式、结构模式和行为模式三大类2。在对这23种模式的讲解过程中,对于一些看上去相似但实质上不同的模式应该清楚地说明几种模式

34、之间的区别,以及各种模式各自适用的场合。具体的内容和学时分配如下:<br>(1) 统一建模语言UML(6学时)。这部分的主要内容包括UML中涉及到的一些基本概念,如类、实例、多态、继承、泛化、依赖等等,以及UML中的一些图形表示的画法。UML中的图总体上可以分为两类:结构图和行为图。结构图主要有类图、对象图、构件图和实施图,而行为图包括用例图、顺序图、协作图、状态图、活动图。通过这部分内容的学习,应该让学生掌握面对现实问题时如何对现实世界中的实体进行抽象,并且捕捉实体之间的关系和交互,然后用UML图表现出来。<br>(2)“设计模式”的要素和原则(2学时)。这部分主要讲

35、解设计模式要遵循的几个基本原则,包括开闭原则、里氏代换原则、依赖倒转原则和迪米特法则等3。<br>(3) 创建模式(3学时)。创建模式总共有5种,分别为单例模式,抽象工厂模式,建造者模式、工厂方法模式和原型模式。讲解时要让学生能够了解抽象工厂和工厂方法模式,建造者模式和抽象工厂模式,原型模式与工厂方法模式之间的区别。<br>(4) 结构模式(4学时)。结构模式总共有7种,分别为适配器模式、桥接模式、组合模式、装饰模式、门面模式、享元模式和代理模式。重点区别适配器模式和桥接模式、组合模式和装饰模式、适配器模式和装饰模式、享元模式与代理模式。<br>(5) 行为

36、模式(7学时)。行为模式总共有11种,分别为职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模版方法和访问者模式。重点区别职责链与命令模式、解释器和迭代器模式、中介者模式和观察者模式、状态模式和策略模式、策略模式和模板方法模式。<br>(6) 其他非标准模式(2学时)。除了以上23种基本的设计模式外,还有一些模式在实际应用中经常使用到,比如MVC模式。严格地来讲MVC不属于设计模式,而属于框架模式,但由于在软件开发过程中经常应用到,所以也应该让学生掌握。<br> </p> <p> <p&

37、gt;3.2实践教学环节设计<br>实践环节主要是为了让学生巩固和应用理论教学环节中所学到的知识。这一环节分为4个单元,每个单元2学时,总共8个学时。每个单元出一个题目让学生使用一种设计模式来设计,然后用UML图表现出来,最后编写程序实现,为培养学生的创新能力,全部为设计型实验。其中实验13分别让学生使用创建模式、结构模式和行为模式中的一种进行设计和实现。实验4为综合实验,对于给定的题目,综合运用理论教学中讲过各种模式进行设计,最后编程序解决该问题。<br>“设计模式”课程的所有教学内容和学时分配如表1所示。<br><br>4结语<br&g

38、t;“设计模式”课程主要是针对软件工程专业的本科生,是“面向对象程序设计”课程的扩展。教学目标是让软件工程专业的学生掌握在实际的软件设计过程中常用的一些模式,提高学生的软件设计能力,从而提高学生的就业竞争力,满足软件企业的需求。另外增加这样一门课程,使我们当前的课程体系更加完善,更能适应当前计算机人才培养的需求,尤其是面向企业的应用型人才的培养。当然具体的效果如何,还需要实践的检验。<br><br>参考文献:<br>1 合作编辑者. 百度百科:设计模式2009-03-23. 2 Erich Gamma, Richard Helm. 设计模式可复用面向对象软件

39、的基础M. 马晓星,译. 北京:机械工业出版社,2000.<br>3 阎宏. Java与模式M. 北京:电子工业出版社,2002.<br>Exploration on Teaching Design Pattern Course<br>ZHANG Li-jun<br>(Dept. of Computer Dcience, Northwestern Polytechnical University, Xian 710072, Chian)<br>Abstract:We analyze the necessity and feasibil

40、ity on teaching design pattern course to Software Engineering students in this paper. And the course content and the distribution of class hours are described in detail, aimed at improving the undergraduate curriculum system for specialty in software engineering and the employment competitiveness of

41、 graduates.<br>Key words:Software Engineering; design pattern; curriculum system<br><br> </p> <p> 1引言<br><br>随着IT企业竞争的日益加剧,为了降低成本,企业都希望能够招聘到理论基础扎实,掌握行业主流技术,具有一定的工程能力,进入企业后经过简单培训就能直接参与到团队工作中的软件人才。然而,IT技术更新速度较快,高校教师普遍缺乏参与企业实际软件开发的机会和时间去掌握行业主流技术,积累工程经验,并将这些技术及经

42、验传授给学生,这在一定程度上造成了高校人才培养与实际人才需求脱节的现象。2006年,国家教育部颁发了关于高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)进一步明确了高校计算机人才培养的结构层次,指出计算机人才培养也应当是金字塔结构,与社会需求的金字塔结构相匹配,才能提高金字塔各个层次学生的就业率,满足社会需求,降低企业的再培养成本。这里所说的“金字塔”,即为如图1所示的一种层次结构,“这三种类型的划分主要是从学生毕业后从事工作性质的角度产生的”,处于底层的人才是社会需求量最大的。<br><br>图1 计算机人才层次结构<br><br>

43、;为了能使高等院校的软件人才培养与社会对人才的要求相一致,几年来,教育部计算机科学与技术教指委陆续下发了一系列指导意见及规范,明确指出计算机科学是实践性极强的学科,必须培养学生具有很强的实际动手能力,对高校计算机专业办学提出了一项很重要的建议,即大力加强教学活动中的实践环节和动手能力的培养。在计算机专业中工程型及应用型人才的培养成为了教学研究的重点,并已成为我国高等教育关注的热点。<br>东软信息学院计算机系与实训中心合作,将实训融入软件相关专业的本科教学计划之中,构建可教学化实训体系,探索出一条培养应用型软件人才的实践之路。<br><br>2引入实训体系的

44、思考<br><br>由东软信息学院大学生创业实训中心创建的可教学化实训体系,是在企业实际项目的背景下,将项目分解为若干个相应的知识点,采用小班型教学的模式进行授课。从基础知识的讲解到最终项目的完成,边讲边练,并穿插相应的阶段考核,形成全方位一体化的实践训练体系。实训过程中,教师担任项目经理,学生转化成“企业员工”,采用日报制等企业式管理模式,构造虚拟企业开发环境,使学生在实训过程中既掌握企业所要求的各项技术技能,又实现了对开发流程、管理规范和团队合作深入了解,实现与企业需求的无缝链接。<br>在大学生创业与实训中心目前构建的实训体系中,Java项目实训与嵌入

45、式项目实训是两个比较成熟的实训体系,每个实训体系都分为四个阶段,在四个月左右的时间之内完成,其内容及考核要求如表1所示。<br><br>表1实训安排计划表<br><br>其中的技术基础讲解阶段是在复习以往学过的基础理论知识,项目开发专用技术讲解及练习阶段是通过一个小型项目的开发来巩固已学过的基础知识,并且使学生了解项目开发流程,而实训项目开发测试阶段才是实训的真正核心,最终在实训项目总结考核阶段检验学生实训的成果。<br>按照传统计算机专业的实习教学安排,课程设计和毕业设计相对独立,与课堂教学之间是一种“松耦合”状态,虽然体系相对严密

46、,但并不能构造一个完整的教学体系,毕业生在前三年学过的课程与毕业前的实习和毕业设计存在着一定程度上的脱节。而且单纯的实训更强调实践能力,着重于技术工具的运用,不利于学生后续的发展。同时,由于学生在毕业前才进行某个方向的实训,只能掌握某一项技术,在一定程度上限制了学生的专业拓展和就业面,因此,只有将实训体系合理融入教学计划,才能优势互补,发挥实训教学的作用。<br><br>3坚持实践不断线的探索<br><br>东软信息学院一直秉承“知识的应用比知识的拥有更重要”,致力于培养“理论知识够用,实践动手能力强”的应用型人才。从建院初期,就强调培养学生的实

47、践能力,率先在国内提出了“1321”模式,即一个学年分为三个学期,其中两个理论学期,一个实践学期。在引入实训体系之前,安排实践学期教学内容的思路是:强化理论学期课程,并补充理论学期由于课时限制而无法开设的课程。因此,三个学年的实践学期分别定义为概念实习、技能实习和项目实习,各年度的实践学期之间缺乏整体的联系,内容相对独立,体系不够完善。<br>引入实训体系之后,安排实践学期内容的思路调整为:以毕业实训为最终目标,贯彻“实践不断线”,强调实践的延续性及关联性。因此,在理论学期的课程安排上也为最终的实训为目标,并补充必要的理论知识,提供给学生后续发展的动力。同时,前两个学年的实践学期分

48、别进行两个小型项目训练,第三个实践学期与最后一学年上学期一起进行项目实训,下学期进行毕业设计,整体的安排如图2所示。<br><br>图2 工程型软件人才培养路线图<br><br>从图中可以看出,在第一学年和第二学年的前两个理论学期中,除了在课程设置上融入了原本在实训第一阶段讲解的基础理论知识之外,还添加了多门理论课程,可以为学生打下足够的理论基础,有利于今后在企业中的进一步发展。在第一学年的实践学期(第三学期),将进行嵌入式实训方向中的小项目训练;在第二学年的实践学期(第六学期),将进行Java实训方向中的小项目训练。这样,所有学生在低年级就已经

49、掌握了将来两个实训方向所需要的知识基础和实践基础,既有利于学生在高年级的专业方向选择,又有利于学生就业时选择就业方向。从第三学年开始,学生可以选择在Java方向或者嵌入式方向进一步通过全面实训提高实践能力,进一步强化专业知识,在第三学年的实践学期(第九学期),开始进行该方向的实训,一直持续到第四学年上半学期(第十学期),第四学年最后一学期进行毕业设计,使学生综合运用三年所学的理论知识和刚刚结束的实训中所学到的知识及实践技能,在教师的指导下,相对独立地完成毕业设计课题,从而强化学生的实践动手能力。<br>进行了优化安排之后,理论学期课程与实践学期内容之间结合的更加紧密,学生学完理论后

50、就进行实践应用,有利于对理论知识的进一步强化理解,也将掌握得更加牢靠;而且,整个课程体系与实训体系呈现“紧耦合”状态,实训主线贯穿清晰,层次分明,每门课程的教学目标以及教学要求也更加具体化;同时,所有的实践学期都相辅相成,安排更加合理,也贯彻了“实践不断线”的整体思路。<br><br>4 实践成果及总结<br><br>目前东软信息学院计算机科学与技术系08届学生已经进入了实训阶段,明年将走向社会,接受市场的检验。从目前实训学生的反馈来看,学生对实训乃至整个实践体系都给与了充分的肯定,认为在在学习期间不仅在理论知识上而且在实践动手能力上都有了长足的

51、进步,特别是毕业前的实训,更增强了他们的就业核心竞争力,也增加了就业的自信心,是非常必要也是非常重要的。<br>学生的体会从一个侧面反映出实训体系的成果,但是还需要听到用人单位的反馈意见,相信在08年这一批学生毕业时,必能显现出我院培养应用型软件人才的突出能力。同时,我院也将继续完善实训方案,继续探索一条理论与实践相结合的创新之路! <br><br>参考文献<br>1 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行). 高等教育出版社. 2006年.<br> </p&

52、gt; <p> </p> <p> </p> 摘要:学习C+语言中函数参数传递方式的关键是给出函数调用过程中内存各段内容的变化图示。本文针对C+语言中三种函数参数传递方式,辅以代码段内容图示和堆栈段内容图示,从机理上详细解释了函数参数的传递过程。实践表明,这种图示说明的方法在教学中取得了非常良好的效果。<br>关键词:函数调用;参数传递;代码段;堆栈段<br><br>1背景<br>“C+程序设计”是高等学校计算机专业或非计算机专业学生的必修课。对于非计算机专业的学生,C+语言是他们真正学习和使用计算机

53、语言进行编程的关键入门,对于以后在其专业应用开发中具有至关重要的作用。即使以后使用其他编程语言进行专业项目的开发,如VB、C和Java语言,C+语言由于其概念的广泛性和综合性,也能够使得他们很快学习并掌握这些编程语言。而对于计算机专业的学生来说,“C+程序设计”是“数据结构”、“算法设计”等核心课程的先修课,同时,“C+程序设计”中涉及的部分硬件知识也是其学习计算机原理的重要基础。<br>但是,C+作为入门程序语言课程,对于初学者来说确实难度较大。周立章对自己的教学实践进行总结,强调分层教学、案例教学和对计算机实验进行改革的思想1;李新霞在C+的前驱语言C语言的教学实践中也表达了类

54、似的思想2。因此,案例教学对C+语言来说是必不可少的。<br>对于大多数学生来说,C+程序设计学习中存在三个难点:(1)函数参数的传递;(2)指针变量的使用;(3)虚函数和多态性机制。<br>函数和类作为C+语言中的两种基本模块,分别支持C+语言进行面向过程的开发和面向对象的开发,而不论是何种开发方法,函数都是不可缺少的。一个完整的函数使用过程包括函数定义和函数调用,有时存在函数声明,而函数调用过程中,在主调函数和被调函数之间发生着数据的交互,表现为函数参数的传递和被调函数的返回值。<br>其中,对于函数参数传递方式及相关教学研究,得到了很多关注。马新将函数

55、参数传递方式分为值传递方式和地址传递方式,并归纳总结了选用何种方式的条件3;刘志华将函数参数传递方式分为简单变量作参数、指针作参数、引用作参数、数组作参数和字符串作参数共五种方式,并对每一种情况进行了实例描述4;谭庆将函数参数传递方式分为传普通值调用、传地址值调用和引用调用三种方式,并对其使用方法进行了总结5;王萍、谭浩强和陈志泊在其编写的相应教材中也对C+中函数参数传递方式给予了重点关注6-8。<br>本文就函数参数的传递方式,利用图示说明的方法进行研究,旨在搞清各种函数参数传递方式的本质,为函数的学习奠定坚实的基础。<br>2函数参数的传递方式<br>C

56、+语言中函数参数的传递方式分为值传递、引用传递和指针传递。学生之所以不能正确掌握函数参数传递的相关内容,主要原因是不能了解函数参数传递过程中内存各段相关内容的变化,而解决这一问题的方法是给出函数调用过程中内存各段内容变化的图示。<br>2.1内存分段<br>程序在执行时,内存是分段使用的,可分为代码段(CS, Code Segment)、数据段(Data Segment)、附加段(ES, Extra Segment)和堆栈段(SS, Stack Segment),如图1所示。<br><br>代码段中存放程序执行代码,数据段由静态数据区和使用new

57、请求分配数据的堆区组成,堆栈段中存放函数执行过程的各种数据,主要包括形式参数、局部变量和主调函数断点地址。主调函数断点地址指的是函数调用语句指令后的一条执行指令的地址。堆栈中每个函数的形式参数、局部变量和主调函数断点地址称为该函数的活动记录。<br>根据冯诺依曼原理,当执行程序时,必须将该程序指令代码加载到内存的代码段,同时将第一条指令代码的地址存入到PC寄存器,然后,每执行一条指令代码,PC的内容自动加1,如此顺序执行代码段中的指令。而当发生函数调用时,程序的执行发生了流程的转向。当流程转向到被调函数时,PC中的内容更新为被调函数第一条指令的地址;而当流程重新回到主调函数时,PC

58、中的内容更新为主调函数的断点地址。函数调用过程的代码段图示说明,如图2所示。<br><br>2.2值传递<br>采用值传递(pass-by-value)方式时,在堆栈段中为被调函数的形参列表分配内存,主调函数的实参列表分别赋给形参列表。因此,内存中每个形式参数和实际参数都是不同的变量,只是在发生函数调用的时刻,对应实参和形参变量的值相同而已。值传递方式的特点是被调函数对形参的任何操作不会影响主调函数的实参的值。<br>以下面程序作图示说明。<br><br>int swap(int x, int y)<br>&l

59、t;br>int temp;<br>temp = x; x = y; y = temp;<br>cout<<"x="<<x<<",y="<<y<<endl;<br>return temp;<br><br>void main()<br><br>int a = 10, b = 20;<br>swap(a, b);<br>cout<<"a="<<

60、br><br>当该程序提交给操作系统执行时,首先将程序代码加载到代码段,然后根据PC的内容来执行指令。由于PC存储的内容为main函数中第一条指令的地址,故从该地址处开始顺序执行。此时,执行的是main函数,也可以理解为操作系统调用main函数,操作系统相当于主调函数,main函数是被调函数。因此,堆栈段中为main函数分配活动记录:a和b。而当执行到swap(a,b);语句时,发生了swap函数调用。堆栈段中为swap函数分配活动记录: main函数断点地址,x、y和temp,并且将a和b的值分别赋给形参x和y。修改PC的内容为swap函数的第一条指令的地址,程序由此重新开

61、始顺序执行。此时,对x和y的任何修改都不能影响到a和b。当swap函数执行结束后,从堆栈中删除swap函数活动记录,并且修改PC的内容为main断点地址,程序由此继续顺序执行。值传递过程的堆栈段图示说明,如图3所示。<br><br><br>(a) 函数调用前 (b) 函数调用中(c) 函数调用后<br>图3值传递过程的堆栈段图示<br>上述程序的执行的结果是:<br><br>x=20,y=10<br>a=10,b=20<br><br>2.3指针传递<br>采用指针传递(pass-by-pointer)方式时,同样也需要在堆栈段中为被调函数的形参列表分配内存。但是,由于形参定义为指针类型,从主调函数传递过来的是实参列表各变量的地址。因此,指针传递方式的特点是被调函数对形参做的任何操作也都影响到主调函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论