前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件工程课程设计总结主题范文,仅供参考,欢迎阅读并收藏。
关键词:软件工程;课程体系;本科教育
1背景
中国信息产业部的数据显示,2008年中国软件产业整体保持快速增长态势,累计完成软件业务收入7572.9亿元,同比增长29.8%。与此同时,我国软件出口142亿美元,同比增长39%。企业对软件人才需求量在增大,估计人才缺口达到20万,而且这个需求将以每年20%左右的速度增长[1]。但另一方面,多数软件类应届毕业生在面临就业时却难以感受到这些数字所带来的欣慰,很多毕业生并没有顺利找到对口的工作。虽然这些学生身份上属于工程技术类的应用型人才,在目前IT产业蓬勃发展的大环境下理应有自己的一席之地,但结果却是“毕业即失业”表现得愈加突出。
软件工程专业具有巨大的发展潜力,但如何建设好软件工程专业?长期以来,国内高校软件专业主要以培养研究型人才为重点,以软件基础理论和系统软件设计为主干,目标是培养面向计算机与系统软件领域的研究型人才[2]。因此如何建立保证软件工程专业本科学生既具有可持续发展潜力又适应当前产业需求的新型知识体系,如何建立与企业应用紧密结合的先进课程体系、教学理念和教学方法,从而提高学生的综合能力,使毕业生在跨出校门时具备必需的素质,缩短从学生到企业员工的角色转换所需的时间,实现就业的“零适应期”是软件工程专业努力的目标。
国外高校在软件工程教育方面的一个共同点就是:根据各自国家和学校的特点,立足学生长远发展,培养适应社会需要与变化的人才。从软件教育的特点来看,西方著名大学有较完善的教育理念、教学手段和实验条件,有较长时间的实施经验,与企业有密切的合作关系,有一大批专家在从事计算机与软件的教育研究。这些大学的课程与我国现行的计算机和软件课程体系相比,理论更深,与新技术的接轨更快,实验和职业实践的比重更大,通过实验让学生掌握基本概念、提高分析问题与解决问题能力的力度更大。
国内高校软件专业主要以培养研究型人才为重点,以软件基础理论和系统软件设计为主干,目标是培养面向计算机与系统软件领域的研究型人才。软件专业学生在学生学科知识与实际运用有一定的距离。因此探讨如何建立符合国情,既面向当前产业需要又兼顾本专业学生发展潜力的知识体系、课程体系,是我们研究的主要内容。
2模块化的课程体系
我校软件工程专业申办于2004年,并于2008年开始招生。该专业成立的宗旨是培养高层次、实用型、复合型、具有国际竞争力的软件人才,要求学生在思维创新的基础上,提高技术创新和工程创新能力,提高软件工程实践和软件工程管理能力。我校在设置软件工程专业课程体系方面学习全国名牌大学如复旦、浙大等,并结合自己硬件及师资条件的实际,提出了如下几个设想:
(1) 合理设置课程模块,突出核心基础。
在软件工程领域,最新的、先进的软件技术文档、技术文献、发展研究等都是英文撰写的资料;合资、外资公司中的软件工程人员所使用的工作语言也是英语。因此在第一至第四学期我们对学生的英语能力进行强化训练,通过阅读、听力、写作和口语交流等方式提高其英语运用能力;在第二学期开始的所有专业基础课程、专业核心课程和专业选修课程中加入一定比例的专业英语训练,将英语融入到专业理论知识学习的过程中;同时开设几门专业课采用全英文教材,实行双语教学,达到巩固和不断提高的目的,为学生动手编写英文程序代码,查阅英文技术文献、文档扫除语言障碍。
(2) 合理设置专业入门基础课程模块,以引导为主。
以计算机导论为主,并以设置类型多样、专业覆盖面广的专业基础知识讲座或新生研讨课为辅,学生学习了计算机最基本的概念后,通过生动有趣的讲座获得更广的认识和了解。
(3) 合理设置专业核心课程模块,以应用为主。
专业核心课程关系到培养出来的软件工程人才质量。针对计算机学科需要,应设置相应的软件系统类课程、软件实现类课程、软件工程类课程以及相应课程的课程设计、实际项目开发为核心的软件设计及实现类的实践类课程。
(4) 设置专业方向选修课程,突出个性化发展。
结合时代需求,结合学生个性化发展需求,设置多个专业方向的模块化课程。设置跨大类专业选修课程,如计算机组成原理、编译原理和软件体系结构等;设置专业方向选修课程,如软件开发案例分析、软件开发新技术、软件文档写作等课程。学生可按需选修1~2个专业方向,有利于其发挥专业创新能力和专业个性化发展。
目前,我校软件工程专业课程体系架构如图1所示。
3实践教学体系
我院除设置模块化的课程体系外,还非常注重实践教学,并且构建了以项目为支撑的实践教学体系,具体开设与实践教学有关的课程如下:
第二个学期开设认识实习;
第三个学期开设面向对象程序设计课程设计;
第四个学期开设数据库原理课程设计以及.NET程序开发技术课程设计;
第五个学期开设Java语言课程设计以及UML建模工具及应用课程设计;
第六个学期开设J2EE技术课程设计及大型数据库课程设计;
第七个学期开设软件开发新技术课程设计;
第八个学期毕业设计。
针对合格的工程化软件人才所应具备的个人开发能力、团队开发能力、系统研发能力和设备应用能力,我们设计了以下4类阶梯状的工程实践课程。
程序设计实践课程:培养个人级工程项目开发能力,如面向过程程序设计(C语言),面向对象程序设计(C++语言)等课程设计。
软件工程实践课程:培养团队合作级工程项目研发能力,如.NET程序开发技术、J2EE技术、嵌入式软件开发(J2ME)等课程设计。
信息系统实践课程:培养系统级工程项目研发能力,如软件开发案例分析、面向对象系统分析与设计、大型数据库应用等课程设计。
毕业设计实践课程:培养开发软件所必备的设备应用能力,如软件开发新技术课程设计、毕业设计实践等。
我们感觉软件方面的技术五花八门,因此在专业核心课程设置上,注意其侧重点。我们将Java网络程序开发定为主要的教学方向,其中包括Java程序设计语言、网络软件开发技术、J2EE技术、以J2ME为主的嵌入式软件开发技术等。当然,我们兼顾企业实际用人的情况,开设了.NET程序开发技术等核心课程,详细的专业课程体系请参见图1。
4探索式学习
软件工程的理论和方法是从众多软件开发实践中总结出来的,但是对于缺乏软件开发实际经验的本科生来说,单纯地讲授理论知识往往使学生感到枯燥无味且难以理解。因此,我们收集和总结了一些软件开发案例,将这些案例贯穿于理论知识的讲解中,使学生真正理解这些理论知识,建立软件开发的系统化与工程化观念和质量意识。
(1) 从分析历史上的经典案例入手,诸如爱国者导弹、网络病毒攻击等。深入剖析导致软件失败的根本原因,从而引出软件开发的工程化发展方向,即以软件工程的原理和方法为指导,严格遵循软件过程规范和步骤。通过这些实例的分析,学生们逐渐改变软件开发等于编写程序代码的错误观念,开始认识到软件工程的重要性,有利于培养工程化的意识和观念。
(2) 软件过程是软件工程课程中的一个重要内容,但是对于开发经验有限的本科生来说,很难在头脑中将软件过程的抽象模型与实际开发联系起来,容易产生枯燥乏味的感觉。在教学过程中,我们从软件开发的实际案例中总结出5个不同的软件系统,结合这些系统的特点和开发策略,讲解瀑布模型、原型化方法、增量模型、形式化方法和基于组件的开发模型等。学生在思考、分析和讨论过程中更好地理解和体会软件过程的基本概念,有利于在实际开发中运用这些过程模型组织开发过程。
(3) 研究软件工程的实践特点,课程实验结合实际开发因素和参与乐趣。实践教学是本课程的一个重要的组成部分,它要求学生以开发团队(一个团队通常由3~5人组成)的方式开发一个具有一定规模的软件系统,侧重培养学生发现问题、独立分析问题和解决问题的能力以及团队合作精神,使学生初步体会到一个软件开发项目全过程。
(4) 研究和建立适合小组式开发的软件工程环境。在小组式的软件工程环境中,使学生真正体验到一种有序的、可控的、协作的软件开发过程,在分析问题、解决问题、协调冲突、消除矛盾的过程中享受软件开发成功的最终结果。软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计,班级按项目小组进行分组,每组不得超过4人。每个项目小组选出项目负责人或项目经理,由其召集项目组成员讨论、选定开发项目。学生分工合作,学习软件开发小组的组织和管理,将项目开发各阶段的任务明确,熟悉软件开发环境,培养团队精神,共同完成该项目的设计任务。项目中的每项任务要落实到个人,实验在规定的时间内,由学生独立完成。
在整个教学过程中,我们也十分注重鼓励和引导探索式学习,学生通过文献查阅以及与软件企业人员的接触交流,真正体会当前软件工程业界的真实案例和最佳实践。课堂讲解避免“一言谈”的死板方式,采取课堂互动讨论,营造活跃、宽松的课堂气氛,鼓励学生结合课程实践中的问题进行专题报告和软件演示。
在常规的课堂教学之外,我们辅之以网络课程和扩展资源,鼓励学生根据个人兴趣和需要进行自主式的学习。同时,充分利用网络教学平台,加强师生之间的交流和学生之间的协作,引导学生积极思考和参与讨论,教师由知识的灌输者成为学习的引导者,学生由被动地接受教育变成主动地探索知识。
5改革目标
我校软件工程专业以培养掌握计算机科学基础理论、软件工程的知识和技能,具有软件开发能力、软件开发实践和项目组织的初步经验,具有竞争和团队精神,能在计算机公司及相关企事业单位从事软件开发、适应软件技术发展和社会需求的软件工程应用型高级专门人才为目标。我校在人才培养坚持遵循以下原则。
(1) 坚持通识教育与专业教育结合原则,即通识教育课程要着眼于加强学生的基础知识教育,着眼于培养学生的科学素养和人文精神[3]。
(2) 坚持以人为本,因材施教原则,即在保证人才培养目标和质量规格要求的基础上,充分考虑因材施教,注重学生个性的发展,扩大学生自主学习、自主发展的时空,面向社会和学生多样化需求,提供多样化的课程体系和教育指导,为不同志向、不同能力和不同潜质的学生创造相应的培养环境和条件。通过柔性设置专业方向模块,让学生结合自身兴趣、就业志向和人才市场需求,灵活地选择发展方向,以增强专业方向优势、职业适应性建立完善的、与课程体系配套的实训、培训的“双训”教学体系,使培养的人才更加适应社会和企业的需求。
(3) 坚持应用为本,学以致用原则,即以学校办学定位和服务面向为指南,立足于培养应用型高级专门人才的目标,强化理论与实践的结合,着力培养学生的创新精神和实践能力。在实践教学体系的设计上,按照基础、提高、综合3个层次和基本实验、技能训练、专业实习、科研训练、综合实习、社会实践6大模块构建创新精神和实践能力培养体系。
(4) 建立一套以软件工程为主线的教学、实训评估标准,以确保人才培养目标的实现。
6结语
我们认为,计算机科学技术的快速发展以及企业对人才的多元化需求要求我们将新的知识单元及时引进课程体系中,使课程体系的设置要有超前和发展的眼光,随时将一些新兴的、成熟的内容吸收进课堂教学,做到对课程体系、教学计划动态调整,保持课程体系的动态性、前瞻性。
软件工程专业课程体系必须建立在对软件工程专业人才的知识结构和综合素质的全面研究之上。按照软件工程专业人才培养目标和国内外软件工程人才的需求,培养出的人才的知识结构域应该包括软件开发新技术、现代软件工程、工程领域背景技术3个主要部分[4]。我们还将在课程体系设置、教学方法、教材编写等诸多方面,充分学习、借鉴和吸收发达国家计算机教育教学的先进经验。
注:本文受“以社会需求为导向的软件工程专业课程体系改革的研究”(校级重点教改课题)支持。
参考文献:
[1] 王晴. 印度软件业崛起原因及其对我国产业结构升级的启示[J]. 生产力研究,2007(3):104-106.
[2] 吴爱华. 全国高校软件工程专业教育年会论文集(2007)[M]// 适应时展 推进高等理工科教育改革. 北京:高等教育出版社,2008.
[3] 杨芙清. 全国高校软件工程专业教育年会论文集(2007)[M]// 软件工程教育的思索与实践. 北京:高等教育出版社,2008.
[4] 李彤. 软件工程人才培养的实践与思考[J]. 计算机教育,2004(10):15-17.
Research on Professional Curriculum Reform of Software Engineering
about Social Requirement-oriented
WEN Zhi-cheng1, CAO Chun-li2
(1.College of Computer and Communication, Hunan University of Technology, Zhuzhou 412008, China;
2.College of Commercial, Hunan University of Technology, Zhuzhou 412008, China)
1.实践教学缺乏系统性和针对性目前许多高校“软件工程”课程除了理论讲解外,也加入了实践教学部分。往往受学时所限,实践分为软件项目若干设计文档的编写和软件工程工具的实验练习。前者受缺乏相应的开发环境、教师虚拟客户不能很好地反应现实需求、理工科学生的文字表达能力不足等因素的影响,设计文档的编写不能很好提高学生能力;后者在一定程度起到了一定的作用,但对于培养学生分析问题、解决问题、管理和团体协作能力方面仍显不足。
2.评分模式单一软件工程采用了传统的闭卷考试方式,平时成绩占总成绩的30%,期末考试占70%。平时成绩=上课出勤情况(10%)+实验完成情况(10%)+作业完成情况(10%)。任课教师通过对不同的考核内容赋予不同权重来评价学生对软件工程课程的掌握情况,主要考核学生对课程基本知识的理解。此方法不足以提高学生实际动手的能力,更不利于激发学生实际软件设计开发的兴趣。
二、现有的教学方法的分析
针对上述问题,从事软件工程的相关教师从不同角度,对软件工程课程进行了改革。归纳起来主要有如下几种教学方法改革:
1.自底向上教学法在“软件工程”课程中应用授课方式主要是用倒叙的方式贯穿完整案例(包含警戒案例),以启发、讨论、辩论的形式讲授软件工程的原理、方法及过程,使学生不觉生疏,易接受,又符合IT从业人员的工作进程。[2]
2.模块化教学法在“软件工程”课程中的应用在尊重教学规律和学生个性发展的原则上,根据课程体系和内容之间的关系,将教学部分划分为若干独立的模块,确定模块之间的关联,针对不同的教学计划要求,采用不同的模块组合有选择地进行讲授和学习。[3]
3.案例教学法在“软件工程”课程中的应用软件工程案例教学是根据“软件工程”课程的教学目的和学生培养目标要求,教师选用相应的案例作为基本素材,引导学生对案例进行调查、思考、分析、讨论、设计、开发和交流等相关活动,在活动中教授学生软件工程的原理、方法及过程,进而提高学生分析和解决问题的能力,加深学生对基本理论知识的理解和掌握。[4]
4.项目驱动教学法在“软件工程”课程中的应用项目驱动教学法是案例教学法的基础上采用“案例导向、项目驱动”的教学方法。首先,教师根据要讲授的理论知识预先准备一个或者多个小的软件开发项目;然后,将学生作为主体,以软件开发项目的研发过程为引导,采用学生小组团队合作和学生个人独立完成相结合的教学形式,组织学生开展集体讨论并完成相应的实践性活动,在研发过程中同学和老师要对每位学生所完成的每个阶段任务加以点评、督促改进、分享经验等;最后,学生将成功的软件给予演示。
5.三位一体式教学法在“软件工程”课程中的应用根据学生的认识特点和该课程自身的特点以及对“软件工程”课程在计算机科学专业的定位、教材的选取、课程培养目标的分析下,采取以综合能力培养为中心、项目实践为标准,模板、案例、指导说明为辅助的三位一体式的教学思路。[6]对目前在“软件工程”课程改革中应用的五种方法针对改革侧重点进行汇总发现(见表1),单一的教学方法只是在理论教学、实践教学和考核方式某一方面发挥了很好的作用,而不能从全面发挥效果,而对于“软件工程”课程来说三者同样重要。
三、基于多元教学法的课程改革新模式
某一种教学模式改革已经不能满足现代“软件工程”课程教学的要求,只有将多元教学模式组合在一起,充分考虑各自对课程教学的优势,避其缺点,找到一种既能使学生具有良好的理论基础,又能充分培养学生实践能力,还能准确地考核学生的教学模式。本次课程改革就是本着这样一种思想,从理论教学、实践教学和考核方式三个方面进行多样化改革。
1.理论教学内容多样化
理论知识的学习在学生以后软件项目开发过程中具有必要性和重要性,软件工程学习过程中要重视基础和基本技能的培养。学生要具有开发软件项目的能力,首先要熟悉掌握软件工程相关的理论知识,特别是对如何按照工程化的方法系统地设计、实现、测试和维护大型软件,内容包括:软件开发的基本理论、方法和技术;其次是了解目前已有系统、工具和技术。(1)授课内容引入案例。教师在教学过程中引入与理论知识相匹配的实际案例,将比较抽象的软件工程原理、方法和技术转为具体生动的案例进行诠释,增强理论教学的艺术性、科学性、趣味性、形象性,使学生能够在课堂上深刻领会和理解软件工程的思想和方法,教学效果收到了事半功倍。(2)适时更新教学内容。近几年,软件原理、方法和技术发展较快,许多适应时展的软件不断涌出,而目前的教材虽不断改版更新,但其更新的速度远远跟不上软件工程的发展。因此,教师在进行理论讲解时,除了要教授学生基本原理、技术和方法外,还要时刻关注新内容的出现。(3)制作丰富多彩的课件。采用多媒体教学手段,在课件中插入图片、动画、声音、视频等多媒体元素,使教学内容更加充实和生动。(4)课堂小组讨论。从小问题到大问题,让学生参与教学过程,有机会发表自己的看法。课堂讨论和分析试验,使理论有实践作支撑,抽象的知识变得看得见,用得着,大大激发学生学习的兴趣和自信。
2.实践教学内容多样化
软件工程理论的讲解是课程学习和技能培养的基础,而软件工程中许多理论内容如果只是教师讲解不加以实践,内容本身就会变得空洞和不可理解,例如:软件复杂性计算、软件可靠性与安全性的测量标准、结构化的实现方法等都需要学生动手实践才能更好地理解知识本身的内涵。掌握概念、原理、方法和技术,熟练应用软件开发实践中的方法和技术是“软件工程”课程对学生的培养目标。(1)课程角色扮演。教师预先选择若干小项目,班内学生根据自己对项目熟悉情况选择项目名称,划分项目小组,每组人数不超过6人,每个项目小组成员根据自身特长选择不同软件工程角色,例如项目负责人、需求分析负责人、设计负责人、编码负责人、测试负责人和用户代表,进行项目分工。项目组成员按时完成自己负责任务,撰写相应文档。教师帮助学生分析和解决所遇到问题。在整个开发过程可以体现“学以致用”的思想,实现理论与实践相结合。(2)课程设计。课程设计主要是针对高年级学生在学习软件工程课程时开展的专项训练。课程设计采取在学校内模拟IT企业环境下完成来自企业案例或开发一些具有应用价值项目或学校教师承担的开发项目的部分开发工作,也可以是学生自选项目,整个课程设计阶段严格按照工程实施的基本思想来实施。(3)加强校企合作。一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位实地实习。
3.考试方式多样化
传统的考核方式已经不能反映学生实际软件开发的水平,也与多样化的教学模式不相匹配,为此多样化的考核方式才符合现实需求,主要包括:笔试、课后角色扮演、课程设计和项目总结。(1)笔试占总成绩的35%,主要考查学生理论知识的掌握情况和学习效果。(2)课后角色扮演占总成绩的15%。由教师根据每位学生在课后角色扮演中的具体表现进行打分,主要由3部分取平均值组成:1/3*(整个项目的成绩+自己负责完成的文档成绩+组内其他成员负责完成的文档的平均成绩)。(3)项目总结或心得体会占总成绩的15%。根据学生在软件开发过程中所撰写的经验和教训总结报告、每个小组成员建立的个人开发记录或日志的实际情况,相互打分。
四、基于多元教学模式课程改革方案
基于上述改革理念,按照软件工程开发原理、方法和技术,选用典型项目案例,将学生按照项目分成若干个小组,每组人数不超过6人。每个小组对应着一个具体的项目,每个人对应着一个具体工作过程,按照如下步骤进行多元教学。第一步,教师选用合适的教学内容,制作丰富多彩的课件,对学生进行基本理论和基本技能的讲解。在每一个软件生命周期结束后,教师进行案例场景描述。教师按照理论知识的内容,选择相应的案例进行描述,学生将所学内容运用到相关案例中。教师通过案例让学生明白理论知识如何应用,学生通过案例体会到小项目中所学的原理、方法和技术是如何实现的。第二步,课后角色扮演。学生通过分组讨论的方式,完成项目分工,明确自己在项目中所扮演的角色。所有的任务通过集体讨论的方式,决出所要完成的任务,并由相应的角色人实际操作完成。例如,需求分析一章内容,学生课后进行项目小组讨论,决定需求分析的内容,进行相应的需求分析,并由扮演需求分析人员的学生完成需求报告。软件开发过程需要整个团队的通力合作,根据学生的性格、表达能力、开发能力、理论基础掌握情况等方面进行人员分组,将具有不同特点的学生组成一个团队完成项目开发。这种团队合作的方式,既能发挥学生各自的特长,又能培养学生的团队合作精神。第三步,课程设计。当全部内容讲解完成,就可以开始长达2周的课程设计内容了。这段时间要求项目小组,彻底完成一个由教师虚拟的项目。此步骤中,主要培养学生良好的科研习惯,在开发过程中及时总结经验和教训,建立个人开发记录或日志,理论联系实际学着开发软件。第四步,学生总结,教师点评。学生经过多个教学环节后,每个团队在一定程度上完成了各自的项目任务,对各自团队的成果进行总结。教师听取每个团队的汇报后,从横向和纵向两个方面对项目成果之间进行比较,从而让每一位学生明白自己在团队中发挥了什么作用,自己哪些方面不足。第五步,请进来,走出去。通过学校和企业合作的方式,一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位,实地实习。
五、结束语
关键词:软件工程教学改进实践
中图分类号:
1、引言
提起软件,在当今社会人们并不陌生,正是由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。这同时也促进人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而,软件的规模越大、越复杂,人们的软件开发能力越显得力不从心。于是,人们开始重视软件开发过程、方法、工具和环境的研究,软件工程应运而生。
“软件工程”主要介绍软件工程的基本原理、开发方法和开发工具,通过本课程的学习,使学生了解和初步掌握开发1个软件项目所使用的方法和工具,以及“软件工程”的发展过程和发展趋势,为进行软件开发打下1个良好的基础。
2、课程特点
1。课程综合性强。
软件工程与其他计算机课程,如程序设计语言、数据结构、编译原理、数据库以及操作系统等课程都是相互作用和影响的。在1定程度上说,软件工程讨论的是在实际开发当中综合运用这些课程中讲过的理论和方法,将这些课程的理论和方法放在1个统1的目标下,这个目标就是在有限的时间及预算条件下,开发出高质量的令用户满意的软件。
2。课程内容不断更新。
软件工程课程的教学培养目标应该以市场需求为导向,使课程培养的学生真正能够在软件行业中发挥作用。因此,在授课时,我们不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,介绍1些新方法、新技术。这样,有助于开拓学生的视野和培养创新意识与开发能力,使他们走向社会后不至落伍。
3。课程的实践性强。
软件工程是1门实践性很强的课程,它是各种开发经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握,更应注重方法、技术的实际应用。学习软件工程必须投身于软件开发的实践,才能真正领悟软件工程的精髓。
实际教学当中,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,学生学习中多数也觉得枯燥无味,很难达到较好的教学效果或获得较强的实践能力等预期目的。如何改善?结合软件工程的课程特点,笔者认为可以从以下几个方面来改进《软件工程》的教学质量。三、软件工程教学改进的内容和方法
1。教学过程引入实际案例
软件工程课程涉及面很广,如果不结合实际工程项目进行教学,很难把教学内容教授给学生。因此,在教学过程中引入案例,将复杂抽象的概念用具体生动的实例进行诠释,能够收到事半功倍的效果。例如,在授课时教师可结合1个“学校教材购销系统”实例,给学生介绍具体的开发过程和方法。
另外,学校还可邀请领域内有实际经验的资深程序员,针对软件工程中具体理论和方法在实际开发中的应用,在课堂上和学生进行面对面讲座,深入浅出地作讲解。这样,学生可以更加熟悉、掌握软件开发的过程。
2。组织课堂讨论,形成教学互动
我国有句名言:“授人以鱼,不如授人以渔”。学生是教学活动的核心,教师要利用合适的方法调动学生的积极心理和参与意识,改变传统的教师高高在上的教学方式,让学生参与教学过程,有机会发表自己的看法。
比如在讲授需求分析这章内容时,可结合“学校教材购销系统”这个案例,要求学生按照软件工程教学的思想和方法认真做好需求分析。在实施过程中,首先由学生独立思考,给出解决方案。然后在课堂上,组织学生进行讨论,分析各自解决方案的优劣,并进行综合。最后由老师进行总结和评价,指出该案例所涉及的理论知识及其应用方法,就学生提出的问题进行解答。这样通过组织学生讨论,可使学生进1步理解和掌握课程内容的方法和步骤,使抽象的知识变得看得见,用得着,大大激发了学生学习的兴趣和自信。
3。加强实践环节
从本质上看,软件工程的实践性和综合性是其他相关课程难以比拟的。因此,必须结合设计项目和实际应用加以施教,才能取得良好的教学效果。那么,在把握教学进度的同时,必须及早安排好课程设计,让学生同步开展课程设计。这样,理论课讲完了,课程设计也基本结束,学生们能从理论和实践的结合上,加深对软件工程知识难点、重点的理解,进1步深刻理解软件过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,直接培养了学生从事实际开发的能力。
四、结束语
在教学中,我们还应根据学生的具体情况,因材施教。总之,通过不断改进教学,使学生能更好地理解、掌握知识,运用所学服务社会。
参考文献:
[1]史济民等。软件工程。北京:高等教育出版社,2002。12
关键词 软件工程;教学改进;实践
一、引言
提起软件,在当今社会人们并不陌生,正是由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。这同时也促进人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而,软件的规模越大、越复杂,人们的软件开发能力越显得力不从心。于是,人们开始重视软件开发过程、方法、工具和环境的研究,软件工程应运而生。
软件工程是计算机软件专业一门综合管理课程。它涉及计算机科学、工程学、管理学以及经济学等多门学科,是一门根据人们的软件开发经验总结出来的理论课程。本课程的教学目的和任务是通过学习使学生掌握软件工程的基本概念、基本原理、实用的开发方法和技术,了解软件工程各领域的发展动向,掌握如何用工程化的方法开发软件项目,知道在开发过程中应遵循的流程、准则、标准和规范。作为一门实践性和综合性很强的课程,对培养学生的软件素质,提高学生的软件开发能力具有重要的意义。
二、课程特点
1.课程综合性强
软件工程与其他计算机课程,如程序设计语言、数据结构、编译原理、数据库以及操作系统等课程都是相互作用和影响的。在一定程度上说,软件工程讨论的是在实际开发当中综合运用这些课程中讲过的理论和方法,将这些课程的理论和方法放在一个统一的目标下,这个目标就是在有限的时间及预算条件下,开发出高质量的令用户满意的软件。
2.课程内容不断更新
软件工程课程的教学培养目标应该以市场需求为导向,使课程培养的学生真正能够在软件行业中发挥作用。因此,在授课时,我们不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,介绍一些新方法、新技术。这样,有助于开拓学生的视野和培养创新意识与开发能力,使他们走向社会后不至落伍。
3.课程的实践性强
软件工程是一门实践性很强的课程,它是各种开发经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握,更应注重方法、技术的实际应用。学习软件工程必须投身于软件开发的实践,才能真正领悟软件工程的精髓。
三、软件工程教学中存在的问题
软件工程是一门理论性较强的课程,在日常教学过程中存在以下问题:
(1)学生对软件工程的抽象理论容易感到枯燥乏味软件工程涉及众多专业领域,它是一门多学科交叉学科,课程内容具有抽象化、系统化、理论性强等特点。不像程序设计课程能随时动手设计实现程序,激发学生学习的兴趣和热情。学生在接受抽象理论的时候,容易感到内容空洞、枯燥乏味,学习时就缺少主动性,难对这门课程产生兴趣。
(2)实践环节不理想。目前可供该课程选用的合适的实验项目少,实验效果与教学要求差距较大,学生不能把理论知识有效地运用到实践活动中。
(3)不能较好地因人施教。学生的基础水平参差不齐,个体差异较大,现行的教学模式很难满足全体学生的要求。
由于学生没有真正掌握基础理论及运用理论的技能和方法,学习过程中又没有参加实际软件项目的机会,不能将软件工程的理论充分运用到设计实践中去,给毕业设计,以及毕业后参加工作带来很多麻烦。
实际教学当中,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,学生学习中多数也觉得枯燥无味,很难达到较好的教学效果或获得较强的实践能力等预期目的。如何改善?结合软件工程的课程特点,可以从以下几个方面来改进《软件工程》的教学质量。
四、软件工程教学改进的内容和方法
1.教学过程引入实际案例
软件工程课程涉及面很广,如果不结合实际工程项目进行教学,很难把教学内容教授给学生。因此,在教学过程中引入案例,将复杂抽象的概念用具体生动的实例进行诠释,能够收到事半功倍的效果。例如,在授课时、可结合一个“学生信息管理系统”实例,给学生介绍具体的开发过程和方法。
2.组织课堂讨论,形成教学互动
我国有句名言:“授人以鱼,不如授人以渔”。学生是教学活动的核心,教师要利用合适的方法调动学生的积极心理和参与意识,改变传统的教师高高在上的教学方式,让学生参与教学过程,有机会发表自己的看法。
比如在讲授需求分析这章内容时,可结合“学生信息管理系统”这个案例,要求学生按照软件工程教学的思想和方法认真做好需求分析。在实施过程中,首先由学生独立思考,给出解决方案。然后在课堂上,组织学生进行讨论,分析各自解决方案的优劣,并进行综合。最后由老师进行总结和评价,指出该案例所涉及的理论知识及其应用方法,就学生提出的问题进行解答。这样通过组织学生讨论,可使学生进一步理解和掌握课程内容的方法和步骤,使抽象的知识变得看得见,用得着,大大激发了学生学习的兴趣和自信。
3.加强实践环节
从本质上看,软件工程的实践性和综合性是其他相关课程难以比拟的。因此,必须结合设计项目和实际应用加以施教,才能取得良好的教学效果。那么,在把握教学进度的同时,必须及早安排好课程设计,让学生同步开展课程设计。这样,理论课讲完了,课程设计也基本结束,学生们能从理论和实践的结合上,加深对软件工程知识难点、重点的理解,进一步深刻理解软件过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,直接培养了学生从事实际开发的能力。
4.以“项目小组”形式完成软件开发过程管理
为了培养学生的团队精神和求知欲,我们采用“项目小组”的开发形式,每个小组5-6人自由组合,分工合作,学生们不再是旁观者,而是分别担任客户、项目经理、系统分析员、程序员、测试员和评审人员的角色,要求运用软件工程中面向对象技术、方法和按照软件过程规范分阶段实施,学生所做课题贯穿整个学期的学习过程,每个课题都来自实际需求,每个小组课题不允许重复,这种方法在提高学生的兴趣和和学习主动性,以及发挥学生的专长和创造力等方面,收到了很大的成效。
五、总结
通过一轮的教学改革,软件工程课程的教学效果有了比较明显的改善,学生对软件工程的原理及概念都有了比较深刻的理解。同时学生的实践动手能力、团队协作的能力、解决问题的能力以及文档的编写的水平都有了比较明显的提高。目前看来,新的教学模式取得了比较好的效果,但是其实施过程还需要在实际的教学过程中不断的修正和完善。
参考文献:
[1]张海藩.软件工程导论第四版,清华大学出版社.
[2]陈明.软件工程学教程,科学出版社.
[3]尹锋.软件工程课程教学改革初探.长沙大学学报,2004(12):79.
关键字:操作系统课程设计;考核体系;考核环节;考核指标
中图分类号:G642.0文献标识码:B
文章编号:1672-5913(2007)08-0045-04
计算机操作系统是与硬件直接相关的系统软件,计算机中的关键性技术,它的设计与实现体现了程序设计与软件工程的精髓[1]。计算机操作系统原理课程是计算机科学与技术及相关专业的核心课程之一,对理论与实践要求都很高,历来为计算机及信息学科所重视。操作系统课程设计正是该课程实践环节的集中表现,不仅可使学生巩固理论学习的概念、原理、设计、算法及数据结构,同时培养开发大型软件所应拥有的系统结构设计和软件工程素养。对该课程考核体系的构建可以促进学生设计能力、创新能力和科学素养的全面提升。
1 操作系统课程实践现状分析
国内外高校对操作系统课程的实践环节极为重视[1]。北大、清华、西电、国防科大等院校均分两个学期,设立理论、实践环节来共同完成该课程的教学工作。实践内容主要分为模拟仿真型、解剖型或设计型。由于操作系统课程内容的抽象性、复杂性,决定了许多学生在学完理论以后,对实践环节感到束手无策;同时该课程内容承上启下,涉及以前学习的许多课程,如C语言、数据结构、计算机组成原理等,要求学生有较强的综合分析问题和设计的能力。课程的难度阻碍该课程的考核,实践考核往往成为程序设计考核或算法编程考核,没能成为有效促进操作系统学习的有力工具。一些院校在此方面进行了有益的改革与尝试。北京大学根据MIT的开放课程经验和自己学生的特点,建立操作系统实验室,提出了一套自己的试验平台和实验体系,包括实习授课、进程控制、实习反馈等环节控制教学质量[2]。考核模式中增加成果演示和期末答辩环节,借助交流开发心得、压力测试等方法检查进度控制好坏,达到促进学生学习的目的。南开大学提倡使用系统仿真的实验环境加强学生理论联系实际的能力,降低试卷考试的压力,建立多元化考核体系,使用“弹性考核制度”培养学生的综合素质和能力[3]。
我校是农业类院校,操作系统课程设计是紧接操作系统原理课程的实验型必修课,安排在上完理论课的下一学期。过去两三年里,借鉴其他院校的经验,根据自己学生的生源特征和课程特点,本着“承上启下、提高综合能力”的宗旨,为提高学生的软件设计能力、动手编程能力,摸索与总结了一些控制实践课程质量的方法。但也暴露出一些问题。(1)无法将操作系统理论与实践结合起来。一些同学只为完成表面上的功能进行软件设计与开发,没有借鉴前人成果;(2)同学之间依赖性严重,加之Internet网提供的便利功能,一些同学出现网上拷贝,不劳而获、浑水摸鱼的现象;(3)缺少考核体系与测试环节。对原理课程的认识不足,缺少软件工程的思想指导。实践环节的软件开发等同于以前的算法设计或编程,没能突出该课程系统性的特点;(4)缺少分组协作能力、口头表达能力、进程控制能力等方面的训练,许多同学会做不会说、不会写;能单独开发,不会小组共同协作。
2操作系统课程设计考核体系构建思路
学习评价是课程学习的一部分,能够有效地促进课程学习。一个完整的课程考核体系应该有过程性学习评价和终结性学习评价两部分。针对本课程的现状,考核体系应具体解决如下问题:(1)量化考核指标;(2)量化考核每位同学的协作能力、分析解决问题能力。由于分组协作完成设计任务,给老师有效地分辨出每位同学具体完成的工作量及工作质量带来困难,需要考核环节中具体的量化措施来保证。(3)体会软件开发全过程。操作系统是计算机中管理软硬件资源的系统软件,其设计与实现的着眼点均是“一切为了用户”的系统观点。通过考核环节的设定,使没出过校门,没有实践经验的学生,在校期间体会到软件的开发过程。
与理论考核模式相比,实践考核不仅注重结果,更加注重过程、技术和素质考核。分析操作系统课程设计实践现状,结合具体的考核量化问题,本着过程与结果并重的原则,提出如下指导原则:
(1)坚持多样化考核与多次考核机会相结合的考核方法。建立以考察专业技术和职业素质为基础的考核体系。考核内容的选择,既要体现和课程培养目标,又要有利于培养学生运用所学知识和技术分析问题和解决问题的能力。真正做到既考知识,又考能力(技能)和素质。
(2)强调理论与实践的结合。课程设计从题目的选择到设计与实现,均应借鉴前人成功的设计理念,采用或扩展已学过的算法和策略,考察将抽象的理论知识渗透到实践设计的能力。
(3)根据课程设计考核改革模式,设计考核评测体系及考核评价指标。过程考核、技术考核及结果考核相结合,最终得出综合成绩。同时,注重每一考核环节的交流与指导。
(4)将软件工程的思想融入课程设计,培养学生分工协作能力,进度控制能力。
本研究在总结我校前三届学生课程设计经验的基础上,学习借鉴其他高校的成功经验,针对农业院校学生的特点,突出内容的系统性、设计性和可操作性的同时,本着综合能力提高的宗旨,通过协作学习与模拟性学习相结合,设计出一套适合本校学生特点的学习考核模式,采用过程考核、技术考核、结果考核等多种形式建立实践教学的考核评价体系(图1),提高实践环节的质量,调动学生的学习热情,“以考促学”,培养学生多元能力,为农林类院校操作系统课程实践考核趟出有益的道路。
3 考核评测体系的构建
操作系统实践教学的考核目标是在软件工程思想指导下,提高大型软件的分析设计能力,小组成员的分工协作能力,设计结果的分析测试能力。因此,考核体系的制定既要考虑理论知识与技能提高,又要加强团队精神与素质培养。本研究按照该课程实施过程中的五个步骤:明确目标――小组计划――协作研究――分组测试――最终评价设立考核环节。
3.1 考核评测环节的建立
操作系统课程设计考核体系根据课程考核的指导原则和课程设计流程,本着科学合理,重理论、重技能、重素质的原则,设定为五大考核环节,分别是设计考核、算法考核、测试考核、能力考核和提优考核,最终考核成绩是五部分乘权重之和。表1,体现各考试环节的考核内容与方法。其中,设计考核针对课程设计的开始部分,检查学生整体规划和协作分工能力;算法考核主要考核每位学生的参与程度,具体实现措施;测试考核属于对课程设计成果的检查,是以往实践考核的薄弱环节。该考核体系中强调测试,通过制订组内测试、组间测试和教师测试制度完成整体测试。具体测试过程是教师提供测试报告书格式及考核项目,组间成员按照对方提供的操作说明对软件作品进行相互测试,并填写测试报告,然后由教师组成的测试小组进行综合性测试,给出测试评语。能力考核贯穿实践的每个环节,通过学生制作PPT、口头汇报并回答问题,考察语言表达能力、进度计划实施情况及工作汇报能力。提优考核是在课程设计结束后,针对部分优秀的学生主动申请,通过撰写小论文的形式体现。
3.2 考核评价指标的建设
考核测评环节是指导实践考核的基础,考核评价指标具体量化考核环节,是成绩评定的依据,它的构建必须有系统和全局的眼光。我校操作系统课程设计是停课一周进行,时间安排在三年级下学期开学第一周。三年级上学期理论课结束后学生分组、选题,利用寒假时间准备资料,开学后完成具体实践工作。课程设计的好坏很大程度取决于假期准备工作的好坏。为了有效考核学生准备工作和实践情况,针对考核环节设定具体的汇报考核指标和测试报告考核指标。由教师和四年级优秀学生组成考核小组,按照汇报考核指标打分,存档源码程序、可运行程序、测试报告和课程实践报告,综合测试报告考核指标给出课程设计的综合成绩。
(1)汇报考核指标
汇报考核如表2,属于过程性考核,主要考查学生整体计划,分工协作与进程控制能力,语言表达能力和幻灯汇报能力,有利于提高理工科学生的综合素养。采用PPT幻灯形式,汇报时间穿插在实践设计的过程中,是量化设计考核、算法考核和综合能力的主要手段之一。同时,总结性汇报促进同学之间彼此交流成果与心得。
(2)测试报告考核指标
软件测试是保证软件质量的重要环节,测试考核指标的设立有助于建立良好的软件测试观,养成良好的测试习惯,为后续软件工程课程的开设积累实践经验。测试考核以测试报告的形式存档,考核指标既要体现整体构思,又要能够促进被测试软件的完善,有助于错误的发现与改进;同时,该项工作的开展是同学之间交流与学习的机会。核心测试指标如下:
理论依据是否充分。
功能、结构设计的合理性、是否考虑充分。
算法正确性及容错程度、算法性能情况,要求评测人用具体的测试数据进行说明。
用户界面友好性、直观性、易用性,并要求具体列举。
总结评价该设计的优缺点,具体描述特色与创新,并提出改进建议。
4 实践与效果分析
4.1 操作系统课程设计的实践
2005~2006学年第二学期,在我院院级实践教学改革项目的资助下,计算机科学与技术系02级共63位同学分成20个小组,按照操作系统课程设计考核体系进行实践。教师提供20道参考题目供学生选择,同学也可根据自己的兴趣爱好自定与操作系统相关的题目。有模拟内存可变分区的系统,有模拟Linux 2.6内核的进程调度系统,也有图形化动态模拟磁盘调度各种算法的系统。两名教师和两名四年级同学组成考核小组,经过三阶段的汇报考核,组间测试考核,实践报告考核,作品测试等考核,顺利通过课程设计课程实践。每组同学巩固理论学习的同时,加强软件设计与编程能力,整体素质得到锻炼与提高。每个小组提交软件作品,其中5个小组提交提优论文。图2和图3分别是课程设计学生作品样例。
4.2 实践效果
经过一周的停课实践,学生们普遍感觉加强了对操作系统理论的认识,同学之间的协作能力提高,自身的编程能力、系统设计能力及表达能力得到锻炼和改善。通过课程设计考核体系的实施,使广大学生在如下几个方面得到了提升:
(1)协作学习能力普遍提高。每个小组非常重视三个阶段的汇报,从查阅资料到幻灯结构、内容和色彩都经过仔细琢磨;小组内讨论气氛热烈,有些小组甚至在宿舍熄灯后仍在探讨问题;还有的小组到处寻找通宵教室,加班加点工作。
(2)真实能力明显提高。量化课程设计过程和考核指标,完善了过程监督,有效地防止了学生实践“做弊”现象,使所有学生的能力都得到一定锻炼。
(3)提升综合应用知识的能力。操作系统模拟的许多题目,不仅涉及数据结构,同时要求活学活用操作系统理论中的概念与方法。如,模拟内存管理的设计中,为突出并发和共享特征,一些小组使用了多线程实现并发。另外,数据结构中树、链表以及Hash表的知识得到巩固。
(4)计划表达与交流能力提高。课程设计三个考核环节,将自己的成果展现给同学和老师,并且解答老师的提问,有助于老师与学生、学生与学生之间交流。老师可以及时发现问题,指导学生改进设计方案;学生也可在汇报过程展现自己,锻炼语言表达能力,对于不善表达的理工科生来说是很好的锻炼。此外,该考核方法使学生不敢懈怠,按时完成任务。
(5)学习主动性和创新性得到激发。课程设计的所有考核环节均开放式进行,学生在考核过程中可以相互对比,有效促进了比学赶超的学习热情;考核压力促进基础薄弱的同学在基础较好的同学带动下进行主动学习。学生潜力得到很大发挥,不再局限于教学过程中所学知识,自学相关内容,力图将设计做到最好。
5 结束语
该套考核环节、方法和考核指标的建立,强化了操作系统原理的掌握,激发了学生学习热情,提高了实际软件设计、编程能力,培养了组织协作与团队精神,为抽象理论课的实践环节的理论提升探索出一条有益的道路。由于该考核体系处于实验阶段,有待于进一步发展和完善。
参考文献:
[1] 孙微微,刘才兴.研究型大学操作系统课程实习项目的设计[J].农业网络信息. 2005,5.
[2] 陈向群.操作系统实习教学经验[J].全国第八届操作系统课程教学研讨会. 2005,5.
[3] 史广顺,韩维桓,袁晓洁.南开大学“操作系统”课程建设的思考[J].计算机教育. 2006,7.
[4] 邹恒明.上海交通大学“操作系统”精品课程的立体化建设[J].计算机教育. 2006,7.
[5] 程金林,吴斌,靳晓枝,黄铮. 高校实验教学考核模式的改革与实践[J]. 实验室研究与探索, 2004,24,(4).
[6] 康丽军.关于操作系统课程改革的探索与实践[J].太原大学学报.2004,5,(3).
收稿日期:2006-9-14
资助项目:南京农业大学信息技术学院院级教改项目的资助
作者简介:姜海燕(1967-),女,浙江临安人,副教授,研究方向:农业信息技术、软件工程。
通信地址:南京农业大学信息学院,邮编:210095
对于此类以经济管理类学科为主的财经院校,属于工学学科性质的软件工程专业面临着更加严峻的挑战,因此,如何结合西部软件产业的发展现状,在满足专业人才培养要求和突出特色之间找到本专业课程体系建设的结合点和平衡点,按照“面向西部,服务基层,培养信得过、用得上、干得好的应用型高级专门人才”的总体人才培养模式对专业课程体系进行分析和研究具有非常重要的意义。
1结合院校特色的课程体系建设
软件工程专业是在计算机科学与技术等学科的基础上发展起来的,因此课程体系的建设不仅需要计算机科学的理论知识,同时也需要把工程经济学领域的知识包括进来,课程设置应始终以软件开发的整个流程为主线,培养学生良好的软件编程思想、软件项目管理和软件开发的团队合作精神。财经类院校的课程体系建设应该避免照搬其它工科院校的培养方案,应该以教育部的软件工程专业建设指导思想的基础上,根据自身的特点梳理软件工程系列课程之间与其它相关系列课程之间的关系,合理衔接,避免重复。课程设置要突出软件工程的重要地位和价值,专业模块的划分要突出行业特点及行业市场的需求。建立以能力培养为主线,分层次,多模块,互相衔接的课程教学体系,通过增加案例教学、添加社会和企业需要的专业技术课程,从而最大限度的发挥课程体系的作用。
1.1课程体系在专业建设中的位置
通过调研、走访、学习名牌大学、重点大学、国家示范性软件学院的经验和做法,总结财经类院校软件工程专业的建设,根据自身的特点和实际情况,依托财经类院校在经济、会计、管理等方面的专业优势,建设具有鲜明财经特色的学科专业体系,总的建设方案指导思想是:“整体设计、分布实施、发挥优势、突出特色”。建设的内容包括师资配置与建设、实训环境建设(包括实验室和实训基地)和课程体系建设。对于课程体系建设,主要从以下几个方面进行:梳理课程关系、夯实课程内容、教学方法建设、课程教材建设和实践体系建设。为保证软件工程专业建设质量,构建质量保障与反馈体系,总体建设结构如图1所示。
1.2课程体系主要建设内容
(1)梳理课程关系。通过划分课程群,梳理以软件工程为主线的课程之间的关系,重新梳理和制定大纲,确保基础课、专业基础课和特色专业课知识衔接合理,保障知识体系的连贯性,避免知识点缺乏或知识点重复,以及知识体系不连贯等问题。
(2)夯实课程内容。通过梳理好的课程关系,筛选课程内容,保障课堂内容充实。为增强对课内内容的巩固,在课外开展“软件工程设计大赛”、“数学建模大赛”以及认证类课程等作为补充,促进学生的主动学习,提高学生的基本技能和软件开发素质。
(3)教学方法建设。按课程群划分,组织同类课程组教学方法和教学手段的研究。改革现有的、传统的课堂教学方式,精炼教案内容。以培养兴趣、激发创新激情为出发点,加强案例教学和实践环节,通过增加案例教学、添加社会和企业需要的专业技术课程,从而最大限度的发挥实践实训课程的作用,真正使学生体会和做到学以致用。
(4)课程教材建设。以软件工程为主线的课程群体系研究的同时加强教材建设。目前采用“内编外引”的方式,做好教材的自编与挑选工作。在软件工程类课程中的教材都要求是重点教材,规划教材或原版外文类教材,选择质量高、特色鲜明的教材。
(5)实践体系建设。建立起更加完善的、与课程群体系相适应的实验、实训、实践教学体系。实践训练课程划分五个层次,分别为基本训练、基础理论训练、专业训练、工程训练和创新训练。使实践类课程涉及到的理论由浅入深,程序规模由小到大,开发队伍由个体到团队。实训环节中还考虑了加强与企业的合作,将企业的资源优势与学校的理论知识优势充分结合,共同设计和建设课程群中的实训项目。
2解决的关键问题
(1)把握主线与特色的关系。目前已有多个示范的软件学院,软件工程专业根据目标不同,有向高层次培养也有的向国际化目标培养。如何地足于地方,结合财经类发展特色,对课程群内容进行筛选和改革是解决的主要问题之一。目前特色软件工程专业建设的方针是首先确立以软件工程为课程群的主线,保障基础内容的涵盖和衔接。另一方面,结合财经学院特点,在开发案例、管理项目和课程选择上体现特色,如面向金融软件开发实践,因材施教培养实践动手能力,开设《软件项目管理与工程经济学》等课程内容。
关键词: 软件工程 微信公众号 WORKSHOP教学模式
1.背景
微信公众号是由腾讯公司推出的一款免费的移动即时通讯工具,具有即时性、互动性、多元化、个性化等特点,其信息传播方式是一种“微传播”,传播内容可以是微内容,传播对象是微受众。微信公众号可以容纳更多的用户,有更广泛的校外订阅者,这一特点让公众号很适合推送信息与知识。在补充知识、扩大视野、教学沟通、师生互动等方面,微信公众号具有传统课堂教学、邮件沟通没有的独特优势[1]。
“软件工程”是计算机科学与技术类专业学科基础必修课程,也是一门综合性和实践性很强的核心课程,其教学效果直接影响学生毕业后从事软件开发的能力和项目管理能力。软件工程的教学内容较多且比较抽象,学生很难真正理解其中的精髓。同时若仅仅满足于书本理论知识的灌输,必将使教学过程流于形式,学生死记硬背而无实际收获。因此,如何提高软件工程的教学水平和质量,是很多国内外学者广泛探讨的课题,更是教学改革的重点[2]-[4]。
本文结合微信的特点和功能,将微信平台引入软件工程教学过程中,拓宽学习内容和学习途径,激发学生的学习兴趣,对提升教学质量和增强教学效果有显著的意义。
2.基于微信公众号的软件工程微课建设
微课是指以教学视频、教学文本等为主要载体,反映教师在课堂教学过程中针对某个知识点或教学环节而开展教与学活动的各种教学资源的有机组合。微课为学生提供知识挖掘的平台,使学生对自己的学习有更多的主动权,自主地挖掘所需的知识点,有针对性地开展学习,并有效地节约学习时间[5]。
“软件工程”课程具有理论深、涉及面广、实践性强等特点,是一门涉及计算机科学、数学、经济学、法学、管理学、心理学等多学科的综合性学科。软件工程微课建设应注意以下几点:
1.1总体规划和任务分解
首先要将软件工程课程教学计划进行。然后在每一教学单元中,按照知识要点将课程内容分割成为相对独立的学习单元。将每个学习单元制作成软件工程微课系列,并借助软件工程微信公众号推送给学生。
1.2微课设计
微课时间长度限制在一分钟以内,课程设计包括三个部分:概念引入、解释和实例[5]。例如:针对结构化分析中的数据流图的概念,我们首先介绍了数据流图的应用背景,然后提出数据流图的概念,最后结合学生选课这一学生很熟悉的一个工作场景进行案例分析,讲解数据流图的原理与应用。
1.3微课内容
软件工程微课内容包括以下两个方面:
一方面,软件工程课堂教学中涉及的核心概念,包括:软件危机、软件工程、结构化分析、结构化设计、面向对象分析、面向对象设计、软件测试、黑盒测试、白盒测试、软件维护等概念。
另一方面,指导学生阅读或探索的课后任务,如基于结构化方法和面向对象方法的软件系统分析与设计的案例分析。
我们选取了历届学生软件工程课程设计中的优秀作品作为的案例样本,通过展示、点评、分析这些作品的方式指导学生如何将所学知识综合运用并加深对知识的理解。
1.4微信公众平台的运用
利用微信公共平台的自动回复功能,学生可以通过回复关键词观看微信公共平台中素材库里面的微课程。软件工程微课的建设实现了线上与线下教育相融合,有利于解决有限课时与知识量扩大的矛盾,将软件工程那些抽象的知识碎片化,以小视频、小文本的形式呈现在网络上,便于学生自主学习。
微信公众平台数据统计功能实现对学生微课学习情况的数据统计。教师可查看任意时间段内群发图文消息分析及任意时间段内图文消息群发效果的统计,包括送达人数、阅读人数和转发人数等信息。通过所提供的数据,教师可以了解哪些学生观看过微课程、观看的次数,以及阅读的时间段分布情况。
3.基于微信公众号的软件工程WORKSHOP教学模式研究
Workshop 是对当前国际上流行的研究小组的称呼,是一种由几个人进行密集讨论的集会,是运用群体压力和有效的指导完成一些复杂而具有挑战性的工作。以 Workshop 为核心的全能型互动式教学法已流行于国际上许多专业教学模式中[3]。
3.1总体规划
针对软件工程课程的学科跨度大、实践性强的特点,我们对软件工程课程教学计划进行总体规划和任务分解。通过收集整理具有代表性软件工程实例,创建若干对应课程相关章节内容的相应工程教学项目及工作情境,内容包括任务的名称、目的、需要解决的问题、项目需求的背景等相关资料。
课堂任务的设计与选取应强调以下几点:任务的相对独立性和开放性;任务是某项知识的学习和应用;将各子任务的完成贯穿到教学的各个阶段;每个具体任务既要覆盖一定范围的相关知识的运用,题目又不应过大,应相对独立,便于项目学习的实施。
3.2教学组织方法
采用分组的形式,将学生分为 4至6 个人的小组,也就是小团队。每名学生在团队中有明确分工,不再是一个旁观者,而是分别担任客户、项目经理、系统分析员、程序员、测试员和评审人员角色等不同角色,完成特定任务。
通过微信公众号,教师提前给每组学生发放每次课的任务书及相关背景资料,并根据课程进度相关微课供学生学习。在软件工程课堂教学中,采用学生主动学习方式,主要通过各团队小组内部交流完成教学任务。教师针对教学中的关键知识点和学生疑惑着重讲解相关内容。
在Workshop讨论后,各团队选派代表做总结发言,展示各团队任务完成成果并交流心得体会。教师针对各团队的汇报情况,对团队的工作加以点评。教师的点评要强调知识点的运用方式并指出本次工作的优缺点,为下一次完成任务奠定基础。
在成绩评定方面,利用微信公众号的开发接口设计打分系统,统计同学打分和教师打分,并当场统计各团队得分情况。微信公众号能直观及时地反映学生课业情况,同时便于学生之间互相交流,提升授课水平。
4.结语
微信及微信公众平台作为一个便利的工具,由于其实时性、多元性、个人直接相关性等特点,已成为一个实时沟通工具、师生交流平台、课程知识及补充知识的推送工具。本文研究了微信公众平台在辅助软件工程教学方面的应用,着重讨论了微信公众号在软件工程微课推送和软件工程WORKSHOP教学方面所起的积极作用。微信是一种生活方式,也是一种学习方式,在软件工程教学中应用微信平台打造新的教学模式,在适当的教学时机应用恰当的微信功能,不仅能促进师生及同学之间的交流,而且能拓展新的学习途径,提高学习兴趣和教学质量。
参考文献:
[1]鞠明君.微信:社会化媒体营销的革命[M].北京:清华大学出版社,2013.
[2]郭洪禹,李净,艾鸿.基于WORKSHOP的“软件工程”教学模式研究[J].计算机教育,2012,(04):97-99.
[3]郭洪禹.“软件工程”课程双语教学研究[J].计算机教育,2008,(10):6-7.
[关键词]应用型本科;软件工程;实践教学体系
[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2016)04-0019-03
2011年,为了进一步深化本科教育教学改革,提高本科教育教学质量,教育部、财政部决定在“十二五”期间继续实施“高等学校本科教学质量与教学改革工程”。政策实施多年以来,各级教育行政部门及高校非常重视,一批批国家级、省级“质量工程”项目相继立项建设,教学改革不断深化,教学质量显著提升,取得了丰硕的成果。“质量工程”涉及高校本科人才培养工作的方方面面,其中实践教学与人才培养模式改革创新是提高高等教育质量的重要内容。[1]2010年广州大学华软软件学院软件工程专业获广州市属普通高等院校第一批特色专业,同年,又被广东省教育厅评为2010年本科院校“特色专业建设点”,2012年获广东省高等学校“专业综合改革试点项目”。
一、应用型人才培养目标定位
广州大学华软软件学院作为全国300多家独立学院中唯一的一所软件学院,在办学过程中经过不断的研究探索,科学、客观地将人才培养的主体目标定位为“应用型人才”,即以应用为主,核心是“实践”,目的是“提高实际动手能力”,为地方经济社会发展培养适应中国软件产业发展需求的规范化应用型人才。学院构建了一套遵循全程化、层次化、模块化三个原则的应用能力培养体系。“全程化”即将培养学生的应用能力贯穿到学生在校学习的全过程;“层次化”即将应用能力分解为不同的能力层次分阶段进行培养;“模块化”即根据培养不同能力层次的需要,依托不同的课程模块和实践性教学环节模块进行培养。在应用能力培养体系架构下,结合珠三角地区经济发展需求,构建软件工程专业实践教学体系。
二、以应用能力培养为核心,探索实践“三合一”实践教学体系
以软件工程专业的核心课程为基础,以应用能力培养为核心,借助广东省计算机技术与应用实验教学示范中心、软件与信息技术服务协同创新发展中心,以及合作企业,构建集层次性的课程实验教学与实践、丰富性的课外科技专业实践、系统性的专业综合训练于一体的“三合一”实践教学体系,体系结构见图1。
■
图1 实践教学体系结构图
(一)深化教学改革,开展层次性的课程实验教学与实践
结合学院实际情况和专业特点,分析了传统课程实验教学中存在的问题,探索新的课程实验和实践教学模式。软件工程专业的课程实验安排强调为学生建立坚实的理论基础,更要训练娴熟的技术技巧,提高学生自我学习、分析问题、解决问题的能力。课堂教学采用工学结合、案例驱动的大小课教学模式,大课注重理论教学,小课则注重实践操作,大小课相互结合。成立软件工程实验教学教研室,专门负责实验教学的审查和监督。定期召开教研会组织相关任课老师和专家对软件工程专业核心课程的实验内容进行精心的设计,把实验分为五种类型:基础性实验、设计性实验、综合性实验、创新性实验、研究性实验。对于实践动手能力要求高的课程增加课程设计综合实践环节来进一步巩固和加深学生对所学相关课程理论知识的理解,对于不同课程进行多课程融合的综合课程设计,把项目实训的案例按照相关专业课程的实验目标进行精心设计和分解,形成实验大纲融入课堂实验。与IT巨头微软、IBM深度合作进行课程的嵌入,包括实验的教材、实验内容等。整体课程的实验内容设计和安排遵循由易到难、由单元到综合、由基础到提高的教学规律,使之具备层次分明、结构清晰、目标明确等特点。
(二)开展丰富性的课外科技专业实践,促进与实践教学的融合
课外专业实践活动是培养学生实践能力、创新能力和人文精神,提高学生综合素质的重要途径,是实践教学的重要组成部分。[2]以“实践、求知、创新”为主题,以提高学生的实践能力、创新能力和综合素质为目标,大力开展软件工程专业大学生课外科技实践活动,积极创建大学生科技创新能力培养平台,激发学生参与课外科技实践的热情,推进学风建设。鼓励学生申报省级甚至国家级大学生创新创业计划训练项目,制定相关政策扶持大学生创业。每年定期举办“软件开发设计大赛”、“网页设计大赛”、“JAVA程序设计大赛”等专业竞赛,开展“IT论坛”、“湖边论坛”等各种学术讲座及“计算机协会”、“创新创业协会”等社团。成立学生课外学科竞赛专家库,鼓励和支持学生参加“全国计算机软件资格与水平考试”,参加“挑战杯大学生课外学术科技作品竞赛”、“全国大学生服务外包创新应用竞赛”、“蓝桥杯软件设计大赛”等学科竞赛、科技创新活动,让学科竞赛成为教学改革实践的载体,从多方面有力推动实践教学与提高学生创新能力。此外,积极改革探索将学科竞赛与教学活动相结合,把大学生的科技创新活动纳入实践教学体系之中,并不断加强大学生创新创业实践基地的建设,为学生进行科技创新、技术交流提供平台。
(三)阶段式项目实训+毕业实习+毕业设计,开展系统性的专业综合训练
项目实训有助于提高学生的实践动手能力,是实践教学体系不可或缺的组成部分,也是软件工程人才培养的一个重要途径。跟知名IT企业合作联合开展项目实训,并在软件工程专业的教学计划中明确规定从大一到大三学生需经历三个阶段的实训环节,到大四参加毕业实习、毕业设计。系统性的专业综合训练贯穿于大学四年的学习。项目实训以体现“层次化、全程化、系统化”为原则,分为三个阶段,分别对应大一、大二、大三的学生。因为年级差异,三个年级的实训题目大部分来自企业的真实项目并经过仔细斟酌和精心设计:一年级的实训题目是教师从某一个真实案例的模块简化而成,主要培养大一学生的基本编程能力和认知;二年级选择的实训案例尽可能体现学生程序分析与设计能力的培养;三年级的实训题目更侧重程序综合开发能力和创新能力的培养。项目实训在每学年的第二个学期末采用封闭集中方式进行,作息从早上9点到晚上10点,企业工程技术人员和在校老师一起担任项目实训指导教师,进行全程跟踪指导。整个实训过程尽可能在时间和空间上最大限度模拟软件企业的真实工作环境,严格按照企业管理模式管理、考核,让学生体会实际项目开发的工作氛围和职业要求,提高团队协作意识和沟通技能。[3]毕业实习则从第六个学期结束之后开始,到第八个学期毕业论文答辩结束,学生从进入企业开始,就按照企业的安排进入相关项目的研发和实施,由企业工程师和学校教师共同指导学生进行毕业设计。 三、不断完善实践教学体系,保障实践教学质量
(一)加强软件工程专业课程群建设,优化实践课程体系
课程群建设是近年高校课程改革的一个发展趋势,是高等院校课程建设实践中出现的一项新的课程开发思路。我们用课程群方法进行了软件工程专业课程体系优化的探索,对相关课程进行了深入的分析,坚持课程体系整体优化的原则,构建课程群课程体系,并在人才培养方案中有所体现。优化后的课程体系划分为四个群:专业基础能力课程群、专业与服务课程群、综合实践能力课程群、新技术探究课程群。[4]四个课程群之间的独立性、关联性、整体性和应用性,尽可能体现最新科技技术和方法,课程内容及时更新,做到前后课程衔接好,力争在实现专业培养目标、改进学生知识能力结构方面有比较大的突破,从而优化整个实践教学体系。
(二)组建一支专兼职、校内外结合的“三三制”实践教学师资队伍
在师资引入我们采取“三三制”原则,即教师队伍由三部分组成:一部分来自传统高校具有丰富教学经验的高职称教师;一部分来自企业具有丰富工程实践经验的工程师;一部分来自留学海外具有教学和工作经验的人员。同时,在实习、项目实训环节还邀请校外的工程技术人员和校内教师一起进行实习实训的指导。
(三)加强实验室和校内外实训实习基地建设,促进实践教学质量提高
为适应实践教学的需要,按照专业方向、专业基础构建了软件工程实训、程序设计、数据库、操作系统等6个实验室。我院“PARASOFT-华软软件学院软件自动化测试实验室”与中国移动、印度塔塔、深圳览众科技等企业合作,形成了完整的校内实验室和实训实习基地。
(四)建立支撑实践教学体系实施的管理、资源、教学信息平台
自主研发“毕业设计数字化管理平台”进行毕业设计的管理;自主研发“实验教学管理平台”,为实验指导老师、学生提供了一系列服务,从而提高工作效率,保证课堂实验教学效果;引入“项目实训管理平台”,帮助学生了解企业项目开发管理过程和规范,确保了项目实训的质量和效果;以FTP服务器、论坛为载体,建设了以课件、讲义、参考资料为基本内容的实验教学资源,为学生提供便利。
(五)建立实践教学管理、考核和评价制度,确保教学秩序和质量
制定软件工程专业实验教学管理办法、学生实验考核办法、软件工程专业项目实训实施细则、项目实训验收标准、毕业论文(设计)工作管理规程、毕业实习管理办法等多项规章制度,覆盖了课堂实验、项目实训、毕业实习、毕业设计等各环节的管理,以确保实践教学秩序和质量。
四、结束语
经过两年的教改实践,教学效果良好,各项指标基本达到预期目标,形成了一套较为完整的实践教学体系,有效促进了应用型人才的培养。实践教学是培养应用型软件工程人才的重要环节,而实践教学体系的构建与完善是一个复杂、艰巨的系统工程,需要在实践的过程中不断的探索与总结,从而促进实践教学的整体优化,真正实现应用型人才的培养目标。
[ 注 释 ]
[1] 王志安,王旭辉,李燕.计算机科学与技术“3+1”教学模式下的实践教学[J].计算机教育,2014(7):59-63.
[2] 曾永卫,刘国荣.“卓越计划”背景下科学构建实践教学体系探析[J].中国大学教学,2011(7):75-78.
关键词:C++程序设计;教学改革;实践
面向对象C++程序设计是计算机科学与技术、软件工程等相关专业的基础课程之一,其主要特征是抽象、封装、继承和多态。由于引入这些特征,面向对象程序比传统的结构化程序具有更高的可重用性、易扩充性和易维护性。面向对象开发方法已成为开发大中型软件的主流方法。为培养学生的程序设计能力和面向对象编程思想,许多高校的相关专业都开设了C++程序设计课程。因为C++涉及概念较多,语法相对复杂,且C++编译器相对于C编译器在程序运行的背后会做更多的事情,如对象的构造和析构、默认函数的自动创建等,使C++程序设计相对于C程序设计更难学,学生在学习和实际应用中出现的问题比较多,对相关概念理解困难,学习过程中成就感不强,学完之后还是不知道如何应用,很难达到预期的效果。为提高C++程序设计课程的教学质量,许多教学工作者提出了自己的一些教学改革思路,并付诸于实践,取得了很好的效果。由于每个学校的自身差异和学生层次差异等原因,在借鉴他人教学经验的同时,也很有必要针对自身的教学对象研究课程教学,以提高教学质量。在实践中,我们通过设定教学目标,合理选取教学内容,采用灵活的教学方法与手段,加强实验教学与管理,改革考核与评价方式,进行课程教学的探索与改革,并取得了较好的效果。
1.明确教学改革目标与思路
吉首大学软件工程专业以软件企业人才需求为导向,以高素质软件工程师培养为目标。C++程序设计课程在专业人才培养环节中处于基础地位,对培养学生的软件设计思维和程序设计能力具有重要作用。该课程于第二学期开设,其前导课程是c程序设计和计算机基础,后续课程有数据结构、算法设计与分析等。由专业培养目标及课程体系设置决定本课程的教学目标是通过课程教学及相关改革,使学生掌握面向对象的基本概念,具备面向对象程序设计的基本思想,学会以面向对象的思维分析并解决问题。在课程实施中以CDIO高等工程教育理念为指导,突出工程化教育特点,突显应用型专业特色。
2.精选教学内容
面向对象软件开发方法是吸收了软件工程领域的有益概念和有效方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化的,数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。学习程序设计语言的目的是应用语言编写程序解决实际问题。对于软件工程专业的学生,在学习C++程序设计时必须渗透面向对象软件开发相关思想。由于C++本身涉及内容较多,受理论和实践教学课时数限制,要精选教学内容,不能面面俱到。我们在软件工程相关思想的指导下,从软件设计实际需要出发,确定了本课程以面向对象程序设计的方法为核心,以C++语言中的面向对象机制为主要内容,包括封装、继承、多态、模板和异常几个大的部分,舍弃一些细枝末节的语法,在适当的时候引入《Thinking in C++》《Effective C++》等优秀书籍中的一些思想和经验。在教学中要明确编程语言只是解决问题的工具,解决问题的方法更为重要,讲解相关知识点时要明确这些知识点在软件设计中有何作用,要注重面向对象程序设计过程中大的程序框架的合理性以及具体处理算法的正确性。
3.改革教学方法与手段
1)引入多种教学方法,逐步形成以学生为中心的学习模式。
教学方法是影响教学质量的一个关键因素。通过开展教学方法设计活动,引入“启发式、案例式、项目式”等多种教学方法,逐步形成以学生为中心的学习模式,最终提高教学质量。启发式教学注重对学生的引导,并强调教学互动性,通过问题激励学生积极参与整个教学过程,使学生由被动学习转化为主动学习。启发式教学方法运用起来有一些难度,但教师应该经常应用这一方法。课程中抽象的或是细节的问题都可以涉及启发式,对于较大问题的提问,任课教师在备课时应该充分考虑,把握好问题和引导的方向。对于一些小问题的启发,任课教师可根据实际授课时学生的表现决定,如数据成员的确定、函数返回类型的确定、参数的选取、返回语句的写法等都可以进行一些启发。案例教学法打破了以理论知识点为中心的传统教学模式,将知识点融入到具体实例中,使学生在模仿中掌握对抽象概念的感观认识。对于本课程中封装、继承、多态、模板和异常几个大的知识模块,每个模块至少设计一个教学案例。每个教学案例应包含该模块主要知识及相关程序设计方法。项目驱动教学法以项目为主线开展教学过程,把相关知识点融入到项目的各个环节中,遵循由简到难、循序渐进的原则。本课程中的项目式教学主要体现在课程设计环节,比如在课程之初布置一个连连看游戏或是自选其他小游戏或小系统,要求用C++编程实现,并随着学习的深入不断完善该程序。实际教学中,一个项目虽然很难包含整门课程的全部要点,但它通常要求学生自学另一些知识,这样不仅拓宽了知识的广度和深度,更能培养学生自主学习、分析问题及解决问题的能力。
2)现代与传统手段相结合,提高教学质量。
应用现代化教学手段有利于提高教学质量,教学中应将现代与传统手段相结合。本课程课堂教学以多媒体为主,并与板书有机结合。多媒体教学信息量大,图文直观生动,可增强学生对程序设计的感性认识。一般可以在多媒体教室开展教学,必要的时候也可以在实验室利用网络环境进行屏幕同传。板书是一种传统的教学方式,在进行逻辑推导的时候有利于引导学生充分思考。
4.加强实践教学与管理
1)设计3层实验教学体系,培养学生实践能力。
C++程序设计是一门实践性很强的课程,为突出工程化教育特点、突显应用型专业特色,需加强实践教学与管理。按层次递进的方式,围绕课程教学目标精选实验题,构建C++程序设计课程基础型、综合设计型和研究创新型3个层次的实验教学体系,通过教学计划内规定学时(吉首大学为16学时)和开设第二课堂(30学时)的方式完成3个层次的训练。其中基础型和综合设计型实验主要使学生掌握C++语言中的面向对象机制,培养学生面向对象程序设计的基本思维。这次实验要在教学计划规定的实验课时之内完成,要求任课教师设计实验项目并编写对应的实验指导书。研究创新型实验主要提高学生的实践能力,培养创新精神和团队精神,在课程设计中按应用项目的方式设置,在第二课堂采取“做中学”的方式口’在教师的引导下由学生自主完成。对于课程设计中的应用项目,任课教师编写课程设计任务书,给出系统的主要需求,要求学生按软件工程的方法,从需求分析到系统分析与设计,再到编码与测试,最后写出系统设计总结。
2)开设第二课堂,培养学生工程应用能力。
为进一步培养学生的工程应用能力,我们开设了第二课堂,在晚上和周末开放实验室,并加强对教师和学生的管理,安排任课教师轮流值班。教师作为学生学习的引导者,提供和课程配套的学习材料和相关项目实践任务。在教师的引导下,学生可独立或以小组讨论的方式完成相关任务。教师定期检查任务完成情况。在课程教学结束时,要求学生演示并讲解自己的项目开况,由任课教师和其他专业教师组成评定小组进行评分。另外,为进一步满足学生个性化学习的需要,学院另外创建了学生创新实验室,该实验室只配置了服务器、网络、电源、桌椅等设施,学生自己可带计算机进入,该实验室由学生自主管理、自主学习,教师布置相关任务,定期指导、检查并点评。
5.改革考核与评价方式
1)理论与实践并重的期末考核方式。
学习C++程序设计的目的是应用它指导或解决实际问题。该课程需要突出对实践能力的考查,这就决定了本课程的期末考核要综合考虑理论和实践两部分内容。理论部分主要考查学生对基本概念的理解和对基本知识的掌握情况,实践部分侧重考查学生的综合应用能力。在实际操作中,理论考试占60%、实验考试占40%,这两部分成绩都在期末完成,占课程总成绩的70%。理论考试试题一般包括选择题、填空题、读程序写结果、程序设计题等类型。实验考试题都为程序设计题,采用4选3或5选3的方式,从程序正确性、程序风格、编程思路等方面综合评价。
2)平时成绩与期末考核相结合的评分方式。
期末考核重在体现学习的结果,平时成绩则侧重于体现学习过程。在课程总成绩中,平时成绩占30%,即本课程有30分来自平时的学习过程。平时成绩一般包括出勤与作业情况、平时实验情况、课程设计情况,以上3项各占总成绩的10%。在学期开始第一堂课的时候将课程评分方式告知每一个学生,这就要求学生必须抓紧平时的学习,若平时成绩小于15分,则取消本课程期末考试资格。