魏振华, 刘志锋, 蒋年德, 徐 玮, 王红玲
(东华理工大学 软件学院,江西 南昌 330013)
Cosplay示范—模仿教学法在《C语言课程设计》中的有效应用
魏振华,刘志锋,蒋年德,徐玮,王红玲
(东华理工大学 软件学院,江西 南昌 330013)
摘要:培养具备动手实践能力和自主创新能力的软件工程专业应用型人才是大学计算机教育的首要目标,实践是专业的根本,课程设计是实践教学最重要的方式之一。通过以Cosplay类比课程设计,首次提出Cosplay示范—模仿的教学方法。该方法通过教师示范课程设计过程,降低了大一学生对课程设计的恐惧感;通过在模仿中采用分组教学方式,角色扮演方法和弹性考核机制,增强了学生的兴趣和信心,逐渐深入理解了软件工程思想,进一步改善了程序调试能力,最终达到加强其程序设计能力、创新能力和团队协作精神的教学目标。实践教学结果表明,该方法显著改善了C语言课程设计的教学效果,并为学生开展后续相关课程设计做好铺垫,更为促进实践教学改进探索了新的思路和方法。
关键词:《C语言课程设计》; 实践教学; Cosplay; 示范—模仿
魏振华,刘志锋,蒋年德,等.Cosplay示范—模仿教学法在《C语言课程设计》中的有效应用[J].东华理工大学学报:社会科学版,2015,34(1):92-96.
Wei Zhen-hua, Liu Zhi-feng,Jiang Nian-de,et al.Effective application of Cosplay demonstration-imitation teaching method in C Language Course Design[J].Journal of East China Institute of Technology(Social Science),2015,34(1):92-96.
培养面向社会需求,具备动手实践能力和自主创新能力的软件工程专业应用型人才是大学计算机教育的首要目标[1]。《C语言程序设计》(以下简称“C语言”)作为计算机及相关专业入门级的核心专业基础编程课程,是实践性和工程性极强的应用型课程。然而在计算机专业知识结构框架中,该课程的前导课程少,而后继课程多,很多后继课程都需要在此基础上完成实验[2]。它的学习效果会极大程度影响学生后续相关课程,如数据结构、操作系统、算法分析以及其他高级语言的学习,甚至与其就业后的发展都有直接联系。因此,运用正确的、科学的、实用的教学方法就显得十分必要。
1C课程设计的重要性和存在问题
中国高校专业课教育越来越重视实践环节,大家普遍认为: “实践才是专业的根本。”而课程设计就是实践教学最重要的方式之一[3]。
专业课课程设计一般安排在专业理论知识学习后。专业课课程设计可以进一步巩固和加深学生对专业理论知识的理解,提升学生应用专业知识解决实际问题的能力,是必不可少的教学环节。
东华理工大学软件学院(以下简称“学院”)《C语言课程设计》(以下简称“C课设”)安排在大一第一学期的第18周,是学生在学习完C语言后的一次全面综合项目训练。C课设的教学目标是让学生掌握基于结构化程序设计思想的小型项目开发流程,其中包括功能分析、模块划分、算法设计、编码实现等的全部流程;掌握课程设计报告的撰写,用软件工程的思想来描述项目的开发过程。为了将课内实践和课外自学有机结合,学院将16个学时的上机实践分为4次,集中安排在5天内,每次上机后留充足时间,要求学生去查阅资料,提升获取信息、解读信息的能力。
(1) 学生兴趣不足,畏难情绪严重。对于刚刚步入大学的一年级学生而言,C语言作为第一门重要的专业基础课,掌握其纷繁复杂的语法规则已经很难,更别提领悟程序设计思想以及课程设计。经过C语言专业理论知识的学习过程后,对于它的兴趣已经消耗殆尽,并对人生第一次的C课设产生严重的畏难情绪。
(2) 调试程序能力差,过分依赖教师。在上机实验过程中,同学们做得最多的就是验证教材和习题指导书里面的源代码。当程序无法运行或者运行结果错误时,大多数同学感觉莫名其妙,只能依赖于教师。而平时实验时间短,课程安排紧密,加之对于动态调试程序的畏惧以及课程设计中对于调试程序的逃避,使得学生基本不能掌握调试程序的方法。
(3) 宏观把握课程设计能力很弱。C语言的学习中一直都是离散的知识点,学生无法把这些离散的点贯穿起来综合应用于C课设。当教师将C课设题目和功能列表告知学生时,学生很茫然。他们不清楚C语言中学的那些知识点和C课设如何关联。学生还停留在具体的、形象的知识上,而不能宏观地、逻辑地把握课程设计的思路。
(4) 理论应用实际能力无显著提高。经过16个学时,一个星期的C课设过程,同学们一直在手忙脚乱地拼凑题目中给定的功能和课程设计报告文档。当C课设结束时,经过现场检测发现他们仍无法深入地理解和灵活地运用所学理论知识指导课程设计的全过程和面向过程的结构化程序设计思想。
针对上述C课设中存在的问题,同时避免对后续相关课程设计的不利影响,本文将Cosplay角色扮演教学法融入C课设教学过程,通过类比提出示范-模仿的C课设教学方法。该方法有效地减少了学生对C课设的恐惧,并在老师的引导下逐渐建立自信和能力,从模仿别人的程序到创造自己的程序,最终掌握了C课设的系统过程,提高了理论联系实际的动手能力。
2Cosplay及其一般过程
在课堂上,兴趣是至关重要的因素之一。“教学有法,但无定法,贵在得法”[4]。有些时候,常见的方法并不能引起学生的兴奋,如果我们用流行的或者日常可见的案例来类比教学过程,如Cosplay就具有流行性,易引发兴趣等特征,这可以启迪我们以后教学的新思路。
Cosplay,是英文Costume Play的缩写,比较狭义的解释是模仿、装扮虚拟世界的角色,也被称为角色扮演[5]。
Cosplay的一般过程包括编剧本、选角色、做衣服、排练、做音乐和道具、比赛。该过程与课程设计的全过程(确定选题和功能、分配选题、设计和实现、测试、准备演示数据和流程、检验)相吻合。通过以Cosplay类比C课设过程,能很大程度上激发学生的好奇心,并形象地理解课程设计的过程和内容。
Cosplay和C课设过程对比如图1所示。其中,小括号内的斜体内容代表与Cosplay过程对应的C课设环节。
图1 Cosplay和C课设过程对比
通过结合 Cosplay 做针对性、适应性的教学组织设计,循序渐进地把C课设引向深入,有利于实现课程设计的教学目标。
3示范—模仿教学法
传统的四阶段教学法把教学过程分为准备、教师示范、学生模仿和总结练习四个阶段,其中,“示范—模仿”为其核心[6]。在程序类课程的课程设计过程中,示范—模仿的教学法尤其受用。
学习编程语言的一般过程是:(1)“读”:读懂别人写的程序代码,从中学习语法和经验,对于初学者这必然是新的开始;
(2)“仿”:在别人程序的基础上,稍作修改或者模仿出局部不同的程序,这是学习编程必经的中间过程;
(3)“造”:学会改写和模仿之后,按照功能需求自己独立“创造”程序,这是学习某种语言和工具之后的终极目标。
通过C语言理论知识的学习,同学们已经阅读并验证了大量的程序,语法和经验都有了一定程度的积累。此时进行C课设,需要从强化“仿”开始。对于从未有过小型项目开发体验的大一学生而言,要想模仿,必然要依赖于教师形象、详尽、系统地示范。
在C课设过程中,通过与Cosplay过程类比,教师示范包括功能分析、模块划分、算法设计、编码调试、演示汇报、撰写报告以及如何模仿的全过程,使得学生非常明确模仿什么和如何模仿。进而降低学生的畏难情绪,并在脑海里建立起一套形象生动的C课设的内容和过程。
4C课设教学改进的具体实施
C课设的教学过程主要包括准备、示范和模仿三个阶段,如图2所示。
图2 C课设过程之三阶段
准备阶段包括学生动员和材料准备。
(1)学生动员。动员学生的过程实际上是充斥着缓解和施加压力的矛盾的过程。缓解压力是指在示范阶段教师会生动详尽地展示C课设的全部内容和过程,只要认真领会,学会模仿,C课设并不难;施加压力是指在模仿阶段教师仅处于咨询、辅助地位,学生自身处于核心、主导地位,不能依赖教师,需要通过学生自身和所在团队的力量克服重重困难。并且,C课设结束时的考核方式是非常严肃和残酷的,每个同学都要经过老师的严格检验,包括程序功能演示和说明,代码详解和重写。这就使学生从一开始就确立了端正的学习态度,蒙混过关是不可能的。
(2)材料准备。1)C课设任务书(选题和功能要求)和安排表(分组及其选题等),学院要求至少课程设计2周前告知学生,使学生有足够的时间搜集资料和分析设计。教师选题犹如编剧写剧本,选择一个难度适中、具有一定的趣味性并与同学生活息息相关的题目是开展课程设计的首要任务。通过历届C课设的经验总结,各种信息管理系统,比如学生成绩管理系统、运动会成绩管理系统、图书管理系统等具有可行性和现实意义。考虑到学生自身的差别和成绩的区分度,对于实现管理系统时采用固定长度结构体数组、任意长度结构体数组、链表这三种不同数据结构的程序,评定成绩时分别给出0.8、1.0、1.2的权重系数。教师为学生分组和分配选题好比导演敲定角色,需要教师充分了解学生的程度和特点。教师根据选题的难度和工作量,确定2~4人一组,组内一般根据程度、性别进行协调。2)示范用的综合应用案例。教师必须对该综合案例开发中的每个环节都了如指掌,并准备好相关所有的代码和文档等演示资料。
经过第一个阶段的准备,学生必然目标明确、态度端正、情绪乐观地等待示范过程。
示范阶段在C课设过程中处于中间桥梁的地位,起着至关重要的纽带作用。
该阶段对于学生来说,好比是自己Cosplay之前,先看教师如何用Cosplay角色扮演C课设的全过程,相当于“看剧”。
示范过程包括:(1)概要设计:根据选题的功能描述,进行系统功能模块划分,给出系统功能模块图;(2)详细设计:确定采用的数据结构以及函数原型;(3)编码调试:以典型函数为例,如插入、删除、修改、查找、文件读写等函数,现场完成编码并引导学生掌握调试程序的方法;(4)演示检验:测试程序功能无问题后,准备几条典型数据记录,按照预先设计的流程,如运行系统、插入记录、查找记录、修改记录、删除记录、保存文件、系统退出等,边演示边阐述;(5)模仿过程:对于摆在眼前的已经完成的管理系统项目源码,引导并演示如何使它变成自己选题的功能和代码,包括确定功能划分、数据结构和函数原型,然后在别人的代码上逐项修改,如结构体名、数据成员名、函数名、参数类型和个数等,演示修改过程和完成后变成另外一个项目的全过程。经过这个演示和训练,学生掌握了这种示范-模仿的基本方法,明确了完成C课设并不像想象的那样困难,建立了初步的信心,只等实践过程来检验。
在示范过程中,教师主要传授给学生的是课程设计的思路和如何模仿的过程,引导学生应用“自顶向下、逐步细化、模块化”的结构化程序设计思路。同时,引导学生根据错误和警告信息,分析辨别是语法错误还是逻辑错误,并鼓励学生使用调试工具,应用断点跟踪和对分查找等调试方法,去主动地发现和解决问题,进而为学生自己Cosplay做好准备。
模仿阶段是学生实战演练,自己Cosplay的过程,是理论和方法应用于实践的终极阶段。在这个阶段学生是真正的主角,教师真正起引导作用,如图3所示。
图3 C课设模仿阶段教学模式实施
(1)制定计划:16个学时里需要完成整个项目的分析、设计、实现、文档和评估的全过程,必须预先制定计划才能确保课程设计的顺利开展。
(2)组内分工:首先组内确定小组长,结合软件开发的分工特点,将Cosplay角色扮演法应用到课程设计的分组中,由小组长担当开发经理角色,其他人员针对其特长分别担当需求分析师、架构设计师、开发人员、测试人员等角色,根据开发阶段的不同,各成员可以扮演不同类型的角色。通过分工和小组合作,提高了软件开发效率,并锻炼了学生的团队精神和协作能力。
(3)模仿实施:组员根据自己的分工从事模仿的过程。其中,“做衣服”即设计、编码和调试的过程是最重要和费时的,不仅要完成功能需求,同时还要考虑“成本”即时间和空间的开销问题;“音乐和道具”即演示数据和流程是亮点,再好的作品,都必须准确和流畅地展示给用户才行。
(4)寻求帮助:在该阶段的任何一个环节都可以向组员和老师寻求帮助,教师会提供中肯的意见和建议,逐步引导学生解决问题。
(5)评估结果:以组为单位演示软件系统,然后每个组员都必须经过教师提问(可能要求现场重写部分代码),最终现场给出C课设成绩中的“程序检查”成绩。
经过模仿阶段的实践,学生对项目开展的整个流程和各环节的具体要求有了切实理解,积累了一定的项目开发经验,培养了团队协作能力。
学院课程设计的成绩包括课程考勤、程序检查、课程设计报告三部分的成绩,分别占成绩的30%、40%、30%。其中,程序检查和课程设计报告成绩属于集体智慧和个人努力的共同成果,因此,分组形式的课程设计采用弹性考核机制,即个人考核、组内考核和教师考核有机结合的方式。
课程设计最终考核成绩=考勤(30%)+程序检查[个人自我评价(20%)+组内评价(30%)+权重系数×教师评价(50%)](40%)+课程设计报告[个人自我评价(20%)+组内评价(20%)+权重系数×教师评价(60%)](30%)。
自我评价是促进学生反思的一种有效手段,组内评价可以观察学生组内交流协调时有没有突出表现,而为避免少数学生抄袭课程设计报告,教师评价采用答辩形式,考核学生的实际操作能力、对数据结构设计和算法的理解程度,以及功能和算法的应用亮点。
本文提出的Cosplay示范—模仿教学法,通过C课设实践教学应用过程,产生的教学效果如表1所示(C语言为大一第一学期开设课程、C++为大一第二学期开设课程),
针对C课设中采用传统教学法和示范-模仿教学法,基于六项评价标准(学习兴趣、程序调试、动手能力、团队协作、平均成绩、对后续C++课设的影响等)进行了比对,结果表明:示范-模仿教学法与传统教学法相比,学生学习兴趣更浓,程序调试能力、动手能力和团队协作能力更强,平均成绩有近10分的提升幅度,并且,通过实验对比,在C课设中采用示范-模仿教学法的同学在C++课设中全局把握软件工程思想、自主完成课程设计和程序调试能力、撰写文档和演示汇报的能力均比采用传统教学法完成C课设的同学有更突出的表现,从功能设计到具体实现,都融入更多自己的想法,逐渐开始“创造”具有自身特色功能的软件,更为后续系列相关课程设计奠定方法和实践基础。
表1 教学对比和评价
5结束语
基于Cosplay示范—模仿教学法的课程设计实践教学方式,采用以学生为中心的教学设计方式,以培养学生的程序设计能力、创新能力、逻辑思维能力和协作精神为主线,通过教师示范,学生模仿的角色扮演过程,使第一次参与课程设计体检的大一学生以一种兴趣饱满、目标明确、信心十足的姿态开始一个全新的课程设计旅程。在这个过程中,教师逐渐从示范过程的指导地位转变为模仿阶段的辅助地位,而学生逐渐从示范阶段的接受和消化过程转变为模仿阶段的实践和创造过程。
通过分组教学和角色扮演方法,引导他们主动学习,去深入理解软件设计思想,使学生形成自主和协作型的学习模式。同时,基于分组教学的弹性考核机制,考核内容和评分标准的多元化,使得教学结果更客观,更能调动学生的主观能动性,使其感受参与课程设计过程的快乐和成长。
学生在模仿软件实际开发过程中,培养了能力、收获了经验。但模仿仅仅是实现最终独立“创造”的中间过渡阶段,实践证明该方法显著改善后续相关课程设计的教学效果,充分践行“教是为了不教”的目标,为实践教学改革提供可借鉴的思路和方法。
[参考文献]
[1] 余英,何剑锋,何月顺,等.面向软件开发与服务的应用型人才培养模式探究[J].东华理工大学学报:社会科学版,2013,32(2): 193-196.
[2] 项响琴.德国理念指导下的教学方法改革——以C语言课程为例[J].计算机教育,2013,11(21):37-41.
[3] 李久胜,王明彦,孙铁城.电力电子技术课程设计的探索与实践[J].电气电子教学学报,2008:81-84.
[4] 蔡敬民.地方本科院校应用型人才培养的理论与实践探索[M].合肥:合肥工业大学出版社,2013: 29-33.
[5] 尹士栋.Cosplay在信息技术教学中的应用研究[J].现代教育技术,2009,19(8):42-45.
[6] 路俊雅,马雪松.现代四阶段教学法在高职C语言课程教学中的应用[J].教育与职业,2012,7(20): 150-151.
Effective Application of Cosplay Demonstration-imitation Teaching Method in C Language Course Design
WEI Zhen-hua, LIU Zhi-feng,JIANG Nian-de,XU Wei,WANG Hong-ling
(CollegeofSoftware,EastChinaInstituteofTechnology,Nanchang330013,China)
Abstract:Training applied talents of software engineering with practical ability and independent innovation capability is the primary goal of college computer education. Practice is the essence of the specialty. Course design is one of the most important ways of practice teaching. Through the analogy between Cosplay and course design, this paper proposes a teaching method named Cosplay demonstration-imitation for the first time. This method decreases the freshmen’s sense of fear toward course design through the teacher’s demonstrating the course design process. Through adopting group teaching, role playing and flexible assessment during the imitation process, the students’ interest and confidence increase, and thus they make an intensive comprehension of software engineering thinking and improve their program debugging ability. Eventually, the teaching goal of enhancing their program design ability, the creative ability and the spirit of teamwork is achieved. The practice teaching results show that this method can improve teaching effects of C Language Course Design remarkably, provide foundation for students to develop subsequent related course designs, and search new ideas and methods for practice teaching reform.
Key Words:C Language Course Design; practice teaching; Cosplay; demonstration-imitation
中图分类号:G642
文献标识码:A
文章编号:1674-3512(2015)01-0092-05
作者简介:魏振华(1981—),女,内蒙古自治区通辽市人,满族,博士,校聘副教授,主要从事计算机应用技术、空间信息科学和三维地质模拟等方面的研究。
基金项目:江西省2013 年教改课题(JXJG-13-35-2) 资助。
收稿日期:2014-11-20