论文部分内容阅读
摘要:软件工程实践课是一门理论联系实际的实践类课程,传统的以教师为中心的“填鸭式”教学对于没有软件开发经验的学生而言只能被动地模仿,严重地扼杀了学生的积极性和创造性。因此,结合软件工程教学改革项目,提出了以学生为中心的教学模式。实践表明,以学生为中心的教学模式有效地激发了学生在软件工程实践课中的学习兴趣,较大幅度地提高了软件工程实践课的教学质量。
关键词:软件工程实践;以学生为中心;教学模式
作者简介:张雪松(1980-),男,安徽合肥人,大连交通大学软件学院,讲师;张振琳(1975-),女,甘肃金昌人,大连交通大学软件学院,讲师。(辽宁 大连 116052)
基金项目:本文系大连交通大学2011年教学改革项目“ SCL教学模式在软件工程实践课程中的研究与应用”(项目编号:DJDJG201155)的研究成果。
中图分类号:G642.42 文献标识码:A 文章编号:1007-0079(2011)30-0161-02
软件工程实践课是许多高等院校在软件工程理论课教学后开设的实践性教学环节,主要教学内容是让学生独立或者合作完成一个中小型软件项目并提交所有软件制品,教师基于学生平时表现、软件文档的规范化程度、答辩表现和软件运行效果综合评定学生成绩。如何搞好软件工程实践课的教学,是摆在软件工程教育工作者面前的一道紧迫课题。本文结合我校软件工程教学改革项目《SCL教学模式在软件工程实践课程中的研究与应用》,提出了适合软件学院复合型人才培养的软件工程实践课SCL教学模式,并在实际教学中取得了成功。
一、软件工程实践课教学现状
从学生的角度来说,开始软件工程实践课之前普遍没有软件项目开发经验,编程能力参差不齐。面对老师布置的任务书,大多数学生都很茫然,不知道从何入手,软件开发盲目性强,提交的软件文档通常不符合规范化要求。
从教师的角度来说,为了照顾到班级整体的教学效果,只能是重点去抓学生软件文档的书写,一遍又一遍地给学生提修改意见。软件工程实践课从教师监督学生实践,变成了老师代替学生实践,由于学生数量太多导致教师的工作量过于繁重,教学效果不佳。
从教学内容上来看,软件工程实践课是任务书驱动的,学生没有任何可以借鉴的经验,软件完成得好得高分,软件完成得差得低分。成绩考核指标并没有考虑到学生的能力和特点,这种“一刀切”的方式不利于激发学生的兴趣,同时也不够客观。
二、基于SCL模式的软件工程实践课教学改革内容
“以学生为中心”(student-centered learning,简称 SCL)的教学模式自 20 世纪中期产生以来,在西方国家教育界迅速发展,目前已成为西方国家教育界的主流教育理念及教學模式。[1-2]高等教育中的软件工程实践课采用“以学生为中心”的教学模式,核心思想是在整个教学过程中以学生为主体,教师是学习的组织者和指导者;通过教师的引导,充分发挥和调动学生的学习积极性和主动性;通过设计学习环境,利用各种教学资源,采用合作、讨论、情境的方式完成对知识的学习。[3-4]我们结合软件学院的实际情况,对“以学生为中心”教学方法进行了改革。
第一,采取学生自拟题目的方式。首先,学生调研后上报给教师三个待定题目,并给出每个题目计划完成的工作,然后教师评估这三个待定题目的工作量和难度,选择其中一个作为该生此次软件工程实践课的题目,题目一旦确定后不得修改。选题时允许单独开发小型软件项目,也鼓励多人合作开发中大型软件项目。学生调研和选题时间一般为两天,为了保证软件工程实践课的质量,一般在软件工程实践课正式开课前两天会见学生,并向学生布置自拟题目的注意事项,给予学生充分的调研和考虑时间。
第二,因材施教下达任务书。由于软件工程实践课本质上是任务书驱动的,学生最终完成的软件制品是否满足任务书是衡量学生软件工程实践课质量的一项重要指标。但是,任务书经常被许多老师忽视,有的老师由于不了解学生动手能力,完全让学生自己撰写任务书,导致学生从观念上忽视任务书,学生自己偷工减料写出来的任务书毫无指导意义,甚至有的学生直到软件开发后期才想起来还要写任务书。因此,在任务书下达方面我们根据软件学院学生的实际情况,没有完全采用以学生为中心的方法,采取的是“以教师为主导,为学生量体定题”的方式。学生在上报题目时,必须结合自己擅长的编程语言、开发经验和动手能力提交一份自我评价报告,自我评价报告作为教师确定学生题目和填写任务书的一个重要依据。为了避免布置任务书的环节陷入以教师为中心的尴尬局面,任务书在开始执行前,必须由学生阅读并签字保证完成后方可执行,如果学生感觉任务书不合适,教师也觉得可以适当放宽条件,可以和学生商量后做适当的微调。
第三,定期召开情景讨论会。按照需求分析、总体设计和详细设计三个阶段开情景讨论会,在会议上抽选若干名工作能力较强的同学,并给予每个同学15分钟的发言时间,向大家介绍自己软件开发当前阶段的工作成果。随后开始自由讨论,采用相互挑错的方式指出别人当前阶段工作的不规范之处,最后教师当场给予点评并适当补充软件工程理论知识的讲解。因为软件文档的质量是衡量软件工程实践课质量的一项重要指标,通过开情景讨论会的方式可以有效地加深学生规范化软件开发的意识。
第四,建立学生自主评价,同学评价和教师评价三位一体的评价体系。在三位一体的评价体系中,学生自主评价和同学评价应占主要地位。正确、客观的自主评价和互评有利于培养学生正确的人生观,有利于激发学生进一步努力学习的动力,从而形成良性循环。当然,培养学生的自主能力也离不开同学和教师的参与,尤其在学生尚未形成有效自我评价能力的初期,教师评价显得尤为重要。其意义主要在于学习者对自我做出消极评价、妨碍其进一步发展时,教师站在另一个角度理性地找出其不足的同时,更多地发现其积极因素及闪光点。学生自主评价和同学评价应该有明确的评价指标,每个同学的评价对象由教师指定,并且采用不同班级间匿名互评的方式进行,防止彼此熟悉的学生间相互打高分。课程结束时,每个同学的自主评价、同学评价和教师评价都要反馈给学生,让学生可以找到以后学习和努力的方向。
第五,编程实现强调学生独创性内容所占的比例。由于软件工程实践的时间比较短,一般是2-3周,学生完全自己编写代码不现实,所以编程实现阶段允许学生复用网上已有的代码,但是允许复用不是鼓励学生抄袭,要求学生能够看懂自己复用过的代码并且依据个人能力做出一定比例的修改。在软件验收上我们强调独创性内容所占的比例,即根据自己的设计思路对复用代码的改进部分所占的比例。
第六,通过自我总结和自我反思,提交软件工程实践报告单。写总结是进行自我反思的最佳途径,软件工程实践结束前要求每个学生必须完成软件工程实践报告单,对此次实践课的体会做出总结,重点强调列出下一阶段工作目标,这样对软件开发有兴趣的同学可以在假期继续完善自己所开发的软件。
三、SCL教学模式的实践
SCL教学模式的关键在于充分调动学生的学习积极性,提高学生在软件工程实践课中的主导地位。通过实践探索,我们发现“以学生为中心”的教学模式在软件工程实践课中要想有所突破,各个实践环节都要给予高度的重视,从学生的实际情况入手,解决学生实际问题。软件学院复合型双专业学生的专业特点不同,学生对计算机的爱好程度和动手能力不同,要想最大限度的调动起学生的兴趣,从选题到任务分配再到评价指标的制定都需要有弹性。主要措施如下:
第一,选题结合学生专业特点。例如:对于营销+软件的学生,在选题上应该鼓励他们选择销售、客户关系管理等方面的题目,对于日语+软件的学生,由于没有明确的专业特点,在选题上应该鼓励他们选择平时上网接触较多的课题,诸如博客系统、BBS网站、网上购物等等。所以,选题上的学生自主性主要体现在学生可以在自己精通的专业范围内自由选题,由于开发时间较短,跨专业选题代价较大,应该尽量避免。另外,鼓励团队合作开发综合性的软件项目,每个人负责开发一个小的子系统,鉴于学生没有软件项目经验,系统的整体架构应该由老师辅助完成,子系统的开发由学生个人独立完成,系统的集成由负责开发各个子系统的学生在教师的指导下完成。团队开发的方式应该鼓励,因为这样的实践环节更加贴合项目开发的实际情景。对于团队开发的选题,可以通过教师推荐题目,学生申报并集体讨论的方式确定每个小组的最终题目。
第二,任务书要为每个学生量身打造。软件工程实践的任务书是需要特别注意的一个环节,教师下达准确、没有歧义、工作量适中的任务书对软件工程实践课的成败至关重要。学生选题确定后,教师要能够根据学生的自我评价报告布置任务并对该生建立合理的期望,不能单纯拿软件制品的质量给学生打分。用一个不变的标准去衡量所有的学生,很容易打消一部分能力一般但有上进心的学生。所以,给每个学生布置的任务应该是在该生现有能力的基础上经过努力能够达到的,如果学生超额完成了任务应该在成绩上给予奖励。
第三,开情景讨论会要注意保持轻松的气氛。情景讨论会不是批斗会,不要抓学生小辫子,嘲笑某个学生的能力。轻松的情景讨论会对于帮助学生加深规范化软件开发的思想十分重要,开完会一定要让每个学生心里知道自己哪里做的不规范,哪里做得规范,哪里可以借鉴别人的办法。因此,教师在开会时的主持和点评就显得格外的重要,教师开始时只是引导不同层次的学生发言,发言方式可以灵活处理,可以是演讲式的也可以是辩论式的,采取的具体形式取决于班级学生的特点。教师点评时不要指名道姓,要针对学生讨论时的共同问题给予点评和适当的讲解,这样对于解决问题很有帮助。
第四,三位一体的评价体系。学生互评是这个评价体系的亮点,互评主要从选题价值、开展工作的独创性和文档规范性三个方面评价,我们采用不同班级学生间匿名互评的方式,学生姓名不公开。每个学生阅读一篇论文并撰写评阅人评语,这种学生角色的变换很容易激发学生的兴趣,也很容易看到自己的不足。因为,在给别人找错误写评语的同时,每个学生都会联想到自己所做的工作。在互评前教师要首先进行评价,这样做的目的是在学生互评人员配对时有个依据。公布成绩前,学生个人评语、教师评语和其他学生评语一定要给该生阅读,这个环节可以给学生留下深刻的印象,对于提高实践课的教学质量帮助很大。
最后,软件验收看独创性代码比例。这种方式是结合学生实际情况的一个选择,理论上应该是学生独立完成所有代码的编写和测试,但是由于软件工程实践课课时很有限,而软件工程实践课的重点是规范化软件开发的流程而不是编程实现,所以在编程实现环节放宽要求是可行的。允许学生复用网上已有代码,从本质上讲是鼓励学生“站在别人的肩膀”上做事,鼓励原创但是软件开发不必一切都是自己原创的,只要能读懂别人的代码并在此基础上做出适合自己的二次开发即可,这种编程方式也符合现在国内各大公司真实的开发状况,在验收时看运行效果和独创性代码所占的比例。
四、总结与展望
在软件工程实践课中,我们提出的“以学生为中心”的教学改革取得了一定的成效。在具体实践中,尚有以下一些问题需要改进。
1.选题库有待充实
软件工程实践课的选题库规模较小,没有建立系统规范的选题库,使得学生选题盲目性和重复率偏高。因此,考虑以后建立软件工程实践课选题库。
2.情景讨论会形式不多
情景讨论会除了学生讨论和教师点评外,目前没有新的方式和方法,我们考虑设计一些情景案例,使情景討论会的内容更加多样化。
3.三位一体的评价体系尚未在软件学院推广
目前,三位一体的评价体系还处于摸索阶段,只是在个别班级间进行了试点没有得到推广,下一步计划再进行推广普及,同时评价方式和评价指标的量化工作有待完成。
参考文献:
[1]杜思民.“以学生为中心”的大学英语教学模式[J].管理工程师,2010,(2):52-54.
[2]Renate Motschnig-Pitrik.Student-Centered Teaching Meets New Media:Concept and Case Study[J].Educational Technology & Society,2002,5(4):
160-172.
[3]蔺玉萍.“以学生为中心”的英语教学模式研究[J].海峡科学,2007,(7):80-81.
[4]Mihyar Hesson,Kaneez Fatima Shad.A Student-Centred Model[J].American Journal of Applied Science,2007,4(9):628-636.
(责任责任:麻剑飞)
关键词:软件工程实践;以学生为中心;教学模式
作者简介:张雪松(1980-),男,安徽合肥人,大连交通大学软件学院,讲师;张振琳(1975-),女,甘肃金昌人,大连交通大学软件学院,讲师。(辽宁 大连 116052)
基金项目:本文系大连交通大学2011年教学改革项目“ SCL教学模式在软件工程实践课程中的研究与应用”(项目编号:DJDJG201155)的研究成果。
中图分类号:G642.42 文献标识码:A 文章编号:1007-0079(2011)30-0161-02
软件工程实践课是许多高等院校在软件工程理论课教学后开设的实践性教学环节,主要教学内容是让学生独立或者合作完成一个中小型软件项目并提交所有软件制品,教师基于学生平时表现、软件文档的规范化程度、答辩表现和软件运行效果综合评定学生成绩。如何搞好软件工程实践课的教学,是摆在软件工程教育工作者面前的一道紧迫课题。本文结合我校软件工程教学改革项目《SCL教学模式在软件工程实践课程中的研究与应用》,提出了适合软件学院复合型人才培养的软件工程实践课SCL教学模式,并在实际教学中取得了成功。
一、软件工程实践课教学现状
从学生的角度来说,开始软件工程实践课之前普遍没有软件项目开发经验,编程能力参差不齐。面对老师布置的任务书,大多数学生都很茫然,不知道从何入手,软件开发盲目性强,提交的软件文档通常不符合规范化要求。
从教师的角度来说,为了照顾到班级整体的教学效果,只能是重点去抓学生软件文档的书写,一遍又一遍地给学生提修改意见。软件工程实践课从教师监督学生实践,变成了老师代替学生实践,由于学生数量太多导致教师的工作量过于繁重,教学效果不佳。
从教学内容上来看,软件工程实践课是任务书驱动的,学生没有任何可以借鉴的经验,软件完成得好得高分,软件完成得差得低分。成绩考核指标并没有考虑到学生的能力和特点,这种“一刀切”的方式不利于激发学生的兴趣,同时也不够客观。
二、基于SCL模式的软件工程实践课教学改革内容
“以学生为中心”(student-centered learning,简称 SCL)的教学模式自 20 世纪中期产生以来,在西方国家教育界迅速发展,目前已成为西方国家教育界的主流教育理念及教學模式。[1-2]高等教育中的软件工程实践课采用“以学生为中心”的教学模式,核心思想是在整个教学过程中以学生为主体,教师是学习的组织者和指导者;通过教师的引导,充分发挥和调动学生的学习积极性和主动性;通过设计学习环境,利用各种教学资源,采用合作、讨论、情境的方式完成对知识的学习。[3-4]我们结合软件学院的实际情况,对“以学生为中心”教学方法进行了改革。
第一,采取学生自拟题目的方式。首先,学生调研后上报给教师三个待定题目,并给出每个题目计划完成的工作,然后教师评估这三个待定题目的工作量和难度,选择其中一个作为该生此次软件工程实践课的题目,题目一旦确定后不得修改。选题时允许单独开发小型软件项目,也鼓励多人合作开发中大型软件项目。学生调研和选题时间一般为两天,为了保证软件工程实践课的质量,一般在软件工程实践课正式开课前两天会见学生,并向学生布置自拟题目的注意事项,给予学生充分的调研和考虑时间。
第二,因材施教下达任务书。由于软件工程实践课本质上是任务书驱动的,学生最终完成的软件制品是否满足任务书是衡量学生软件工程实践课质量的一项重要指标。但是,任务书经常被许多老师忽视,有的老师由于不了解学生动手能力,完全让学生自己撰写任务书,导致学生从观念上忽视任务书,学生自己偷工减料写出来的任务书毫无指导意义,甚至有的学生直到软件开发后期才想起来还要写任务书。因此,在任务书下达方面我们根据软件学院学生的实际情况,没有完全采用以学生为中心的方法,采取的是“以教师为主导,为学生量体定题”的方式。学生在上报题目时,必须结合自己擅长的编程语言、开发经验和动手能力提交一份自我评价报告,自我评价报告作为教师确定学生题目和填写任务书的一个重要依据。为了避免布置任务书的环节陷入以教师为中心的尴尬局面,任务书在开始执行前,必须由学生阅读并签字保证完成后方可执行,如果学生感觉任务书不合适,教师也觉得可以适当放宽条件,可以和学生商量后做适当的微调。
第三,定期召开情景讨论会。按照需求分析、总体设计和详细设计三个阶段开情景讨论会,在会议上抽选若干名工作能力较强的同学,并给予每个同学15分钟的发言时间,向大家介绍自己软件开发当前阶段的工作成果。随后开始自由讨论,采用相互挑错的方式指出别人当前阶段工作的不规范之处,最后教师当场给予点评并适当补充软件工程理论知识的讲解。因为软件文档的质量是衡量软件工程实践课质量的一项重要指标,通过开情景讨论会的方式可以有效地加深学生规范化软件开发的意识。
第四,建立学生自主评价,同学评价和教师评价三位一体的评价体系。在三位一体的评价体系中,学生自主评价和同学评价应占主要地位。正确、客观的自主评价和互评有利于培养学生正确的人生观,有利于激发学生进一步努力学习的动力,从而形成良性循环。当然,培养学生的自主能力也离不开同学和教师的参与,尤其在学生尚未形成有效自我评价能力的初期,教师评价显得尤为重要。其意义主要在于学习者对自我做出消极评价、妨碍其进一步发展时,教师站在另一个角度理性地找出其不足的同时,更多地发现其积极因素及闪光点。学生自主评价和同学评价应该有明确的评价指标,每个同学的评价对象由教师指定,并且采用不同班级间匿名互评的方式进行,防止彼此熟悉的学生间相互打高分。课程结束时,每个同学的自主评价、同学评价和教师评价都要反馈给学生,让学生可以找到以后学习和努力的方向。
第五,编程实现强调学生独创性内容所占的比例。由于软件工程实践的时间比较短,一般是2-3周,学生完全自己编写代码不现实,所以编程实现阶段允许学生复用网上已有的代码,但是允许复用不是鼓励学生抄袭,要求学生能够看懂自己复用过的代码并且依据个人能力做出一定比例的修改。在软件验收上我们强调独创性内容所占的比例,即根据自己的设计思路对复用代码的改进部分所占的比例。
第六,通过自我总结和自我反思,提交软件工程实践报告单。写总结是进行自我反思的最佳途径,软件工程实践结束前要求每个学生必须完成软件工程实践报告单,对此次实践课的体会做出总结,重点强调列出下一阶段工作目标,这样对软件开发有兴趣的同学可以在假期继续完善自己所开发的软件。
三、SCL教学模式的实践
SCL教学模式的关键在于充分调动学生的学习积极性,提高学生在软件工程实践课中的主导地位。通过实践探索,我们发现“以学生为中心”的教学模式在软件工程实践课中要想有所突破,各个实践环节都要给予高度的重视,从学生的实际情况入手,解决学生实际问题。软件学院复合型双专业学生的专业特点不同,学生对计算机的爱好程度和动手能力不同,要想最大限度的调动起学生的兴趣,从选题到任务分配再到评价指标的制定都需要有弹性。主要措施如下:
第一,选题结合学生专业特点。例如:对于营销+软件的学生,在选题上应该鼓励他们选择销售、客户关系管理等方面的题目,对于日语+软件的学生,由于没有明确的专业特点,在选题上应该鼓励他们选择平时上网接触较多的课题,诸如博客系统、BBS网站、网上购物等等。所以,选题上的学生自主性主要体现在学生可以在自己精通的专业范围内自由选题,由于开发时间较短,跨专业选题代价较大,应该尽量避免。另外,鼓励团队合作开发综合性的软件项目,每个人负责开发一个小的子系统,鉴于学生没有软件项目经验,系统的整体架构应该由老师辅助完成,子系统的开发由学生个人独立完成,系统的集成由负责开发各个子系统的学生在教师的指导下完成。团队开发的方式应该鼓励,因为这样的实践环节更加贴合项目开发的实际情景。对于团队开发的选题,可以通过教师推荐题目,学生申报并集体讨论的方式确定每个小组的最终题目。
第二,任务书要为每个学生量身打造。软件工程实践的任务书是需要特别注意的一个环节,教师下达准确、没有歧义、工作量适中的任务书对软件工程实践课的成败至关重要。学生选题确定后,教师要能够根据学生的自我评价报告布置任务并对该生建立合理的期望,不能单纯拿软件制品的质量给学生打分。用一个不变的标准去衡量所有的学生,很容易打消一部分能力一般但有上进心的学生。所以,给每个学生布置的任务应该是在该生现有能力的基础上经过努力能够达到的,如果学生超额完成了任务应该在成绩上给予奖励。
第三,开情景讨论会要注意保持轻松的气氛。情景讨论会不是批斗会,不要抓学生小辫子,嘲笑某个学生的能力。轻松的情景讨论会对于帮助学生加深规范化软件开发的思想十分重要,开完会一定要让每个学生心里知道自己哪里做的不规范,哪里做得规范,哪里可以借鉴别人的办法。因此,教师在开会时的主持和点评就显得格外的重要,教师开始时只是引导不同层次的学生发言,发言方式可以灵活处理,可以是演讲式的也可以是辩论式的,采取的具体形式取决于班级学生的特点。教师点评时不要指名道姓,要针对学生讨论时的共同问题给予点评和适当的讲解,这样对于解决问题很有帮助。
第四,三位一体的评价体系。学生互评是这个评价体系的亮点,互评主要从选题价值、开展工作的独创性和文档规范性三个方面评价,我们采用不同班级学生间匿名互评的方式,学生姓名不公开。每个学生阅读一篇论文并撰写评阅人评语,这种学生角色的变换很容易激发学生的兴趣,也很容易看到自己的不足。因为,在给别人找错误写评语的同时,每个学生都会联想到自己所做的工作。在互评前教师要首先进行评价,这样做的目的是在学生互评人员配对时有个依据。公布成绩前,学生个人评语、教师评语和其他学生评语一定要给该生阅读,这个环节可以给学生留下深刻的印象,对于提高实践课的教学质量帮助很大。
最后,软件验收看独创性代码比例。这种方式是结合学生实际情况的一个选择,理论上应该是学生独立完成所有代码的编写和测试,但是由于软件工程实践课课时很有限,而软件工程实践课的重点是规范化软件开发的流程而不是编程实现,所以在编程实现环节放宽要求是可行的。允许学生复用网上已有代码,从本质上讲是鼓励学生“站在别人的肩膀”上做事,鼓励原创但是软件开发不必一切都是自己原创的,只要能读懂别人的代码并在此基础上做出适合自己的二次开发即可,这种编程方式也符合现在国内各大公司真实的开发状况,在验收时看运行效果和独创性代码所占的比例。
四、总结与展望
在软件工程实践课中,我们提出的“以学生为中心”的教学改革取得了一定的成效。在具体实践中,尚有以下一些问题需要改进。
1.选题库有待充实
软件工程实践课的选题库规模较小,没有建立系统规范的选题库,使得学生选题盲目性和重复率偏高。因此,考虑以后建立软件工程实践课选题库。
2.情景讨论会形式不多
情景讨论会除了学生讨论和教师点评外,目前没有新的方式和方法,我们考虑设计一些情景案例,使情景討论会的内容更加多样化。
3.三位一体的评价体系尚未在软件学院推广
目前,三位一体的评价体系还处于摸索阶段,只是在个别班级间进行了试点没有得到推广,下一步计划再进行推广普及,同时评价方式和评价指标的量化工作有待完成。
参考文献:
[1]杜思民.“以学生为中心”的大学英语教学模式[J].管理工程师,2010,(2):52-54.
[2]Renate Motschnig-Pitrik.Student-Centered Teaching Meets New Media:Concept and Case Study[J].Educational Technology & Society,2002,5(4):
160-172.
[3]蔺玉萍.“以学生为中心”的英语教学模式研究[J].海峡科学,2007,(7):80-81.
[4]Mihyar Hesson,Kaneez Fatima Shad.A Student-Centred Model[J].American Journal of Applied Science,2007,4(9):628-636.
(责任责任:麻剑飞)