张吴波 史旅华
【摘要】本文研究了C语言程序设计课程教学中存在的问题,阐述了在C语言课程教学中借助软件设计大赛的平台对课程教学内容和教学方法改革措施,通过将软件设计大赛引入课堂,提高了学生的学习兴趣,夯实了学生的编程基本功,到达了“以赛促学”目的。
【关键词】软件设计大赛 C语言教学 兴趣小组
【中图分类号】TP32 【文献标识码】A 【文章编号】2095-3089(2014)02-0153-02
一、概述
C语言程序设计课程是计算机专业的重要基础课程,在本课程中系统而又详细的向学生阐述了程序设计的思想和程序设计的基本技能,如变量存储数据的思想,程序流程的控制方法、模块化程序设计方的方法等。在计算机后续课程的教学中,都以假设学生基本掌握了程序设计基本技能为基础进行教学的,因此关于本科C语言课程教学方法的研究一直都计算机专业教师非常关心的课题之一。本文介绍了笔者在进行C语言程序设计课程教学改革中将全国软件设计大赛引入课堂教学,提高课堂教学效果的方法。
二、C语言课程的教学现状
在C语言教学过程中,学生普遍反映课程教学的知识点概念性强、理论性强、内容丰富又抽象,具有严密的逻辑性,学习难度比较大。在课堂上教师仍以教授为主,“满堂灌”的形式。虽然不少教师在课堂教学中具有很丰富的授课经验和授课技巧,讲课也非常精彩,学生在课堂上也似乎都听懂了,但是一到下课又全都忘了。教师也普遍放映,现在的学生怎么了!学习积极性都这么差:上课不听讲,作业不交,实验不做,程序写不出来。
事实上真实像我们所想象的这样吗?在笔者的教学过程中发现我们的学生大部分其实并不象我们想象的这样。在教学过程中,我们发现课程刚开始时,学生积极性很高,上课很认真,作业、实验都能准时完成,但是随着课程的深入,学生的积极性就慢慢的下降了,以致很多同学采取了一种“放弃”的态度来学习本课程。
学生为什么会出现这样的情况呢?关键是学生在学习的过程中他对本课程的内容越来越不会。教师虽然滔滔不绝的在讲台上讲的很精彩,但是学生由于前面的知识没有掌握,自然就不了解更新的、概念性更强的知识了。学生由于知识没有掌握,碰到程序写不出来,也就更谈不上交作业和做实验了。例如,在笔者讲授循环中给学生讲授下面的程序:
while(i<=n){
scanf(“%d”,&x);
s+=x;
i++;
}
在授课中认为s+=x和i++表达式学生都已经掌握了,因此一笔带过,但是后来发现学生整堂课下来,都在迷糊s+=x;这句话是什么意思,scanf是干什么的?学生的思维都停顿在这样的一些“低级”的问题上,更加不用说去掌握循环的思想了。很显然循环程序设计的知识同学就都没掌握了,到后来上课效果也就越来越差,碰到后面关于数组、指针就更加是“一抹黑”。因此很多学生的学习积极性也就没有了。
由此可见,学生在学习本课程时,主要还是基础知识掌握不够。因此如何稳打稳扎的使学生掌握本课程的基础知识,是提高教学效果的关键问题。
三、软件设计大赛的开展
在2010年3月,在工信部的组织下,开展了第一届“全国软件专业人才设计与开发大赛”,大赛本着“立足行业、突出实践、广泛参与、促进就业”的宗旨,以向行业提供公正、科学的全国性人才选拔和培养平台,促进学校软件课程的教学改革,培养和提升当代大学生的创新和实践能力为目的,吸引了众多院校的参与。
我校以“以赛促学”为目的,也积极参与大赛,在全校范围内动员学生参赛,经过广泛宣传,吸引了全校300多名同学报名。经过严格选拔最后组织了15名学生参加了第一届的大赛。在大赛的准备中,也积极发动专业教师参与到学生的辅导中,通过集中授课、分散辅导、团队合作的方式,使学生在参与竞赛的过程中提高程序设计的能力。
四、基于软件设计大赛的改革
软件设计大赛广大师生提供了一个良好的平台。一方面通过组织学生参加软件设计大赛,使学生在准备竞赛的过程中开拓了视野,夯实了基本功;另一方面使学生在与其它同学的竞技中得到了锻炼。但是这部分同学毕竟是少数。我们期待的是广大同学的基本功得到夯实,程序设计能力得到提高。
因此在比赛过程中,课程组积极以软件设计大赛作为契机,组织教师对以软件设计大赛作为纽带,对教学模式进行了研讨。总结C语言课程教学中的问题,进行了一系列的教学改革,有机的将软件设计大赛与C语言课程教学结合起来。
1.在课程教学中积极宣传软件设计大赛。通过宣传使广大同学更加了解C语言程序设计的重要性,提高了学生学习的兴趣。
2.建立以点带面的帮扶体系,使参赛学生带动其他同学学习。我校C语言一般开设在大一的第二学期,很多同学在大一第一学期时就想学习C语言。因此我们以参赛学生为核心,在学校内成立了C语言兴趣小组,吸引对C语言感兴趣的同学参加。小组同学通过在一起听讲座,编写程序,讨论等形式,共同学习。通过这样的耳濡目染,使学生在不知不觉中掌握C语言程序的知识,让学生更早的接触到C语言。
3.建立了学生“导师”制度,通过引进优秀学生参与教师的辅导教学,提高教学效果。在授课过程中一个教学班一般都有100人左右。一个教师面对这么多学生也没有精力和时间去管理好每一个学生,我们在教学中吸引参赛同学作为教师的“助教”,辅助教师答疑、批改作业等等。很多同学在学习中都是由于死扣一个小问题,导致了学习的停滞不前。如果让他们感觉到身边都是“老师”,由于学生和学生之间的天然的共同语言,交流起来也非常方便,效果也会比较好,也保障了学生学习的师资。
4.建立了实验室开放制度。通过定期开放计算机专业实验室,一方面为参赛同学提供了良好的训练平台,在开放过程中由学生管理为主,教师辅导为辅的方式,通过在实验室进行交流学习,锻炼了同学的编程水平。另一方面也吸引了许多其他同学的参与,通过与参赛学生的相互学习,使广大同学的编程能力得到了锻炼。
5.将软件设计大赛的赛题引入课堂教学。大赛的赛题来源于实际,可以作为案例教学,提高学生的学习效果。例如在第一届比赛中,组委会提供了显示汉字的比赛样题。在我们的教学中选择其作为典型案例,将其贯穿于整个课程教学,由浅入深,层层讲解,使学生掌握本课程的知识。在讲授循环时以汉字显示的菜单作为入门,引导学生了解循环的特点。在讲授位运算时,通过对字模的运算,显示汉字,使学生对位运算的应用场合有了更深的认识。
6.软件大赛采用上机考试的形式,锻炼了学生实际动手能力,真实的考查了学生的编程水平,非常符合软件开发的思想。因此我们也借鉴软件大赛的方法,取消卷面考试的方法,全部采用上机考试的形式。一方面通过上机考试的形式向学生申明本课程的学习目的是要提高动手编程的能力;另一方面通过实际的上机编程,可以有效的检查学生的学习效果。
7.在全校范围内组织类似软件设计大赛的C语言程序设计大赛,通过借鉴软件设计大赛的经验,将比赛题目的类型、难度向软件设计大赛靠拢,提高竞赛水平,同时也扩大了参赛学生的受益面。
五、总结
通过组织我校学生参加全国软件设计大赛,使我校学生在大赛中得到了锻炼,最重要的是课程组借助大赛的平台,积极探索教学改革的新模式,课程教学的新方法,提高了教学效果,真正达到了“以赛促学”的目的。
参考文献:
[1]边海容.项目驱动教学法在《C语言程序设计》课程教学中的应用[J].科教文汇.2007
[2]周启生. 建构主义理论在C 语言程序设计教学中的应用研究[J].科技信息.2009
作者简介:
张吴波,1977年6月出生,男,汉族,籍贯:湖南邵阳,工作单位:湖北汽车工业学院计算机系,职称讲师,主要研究方向:软件开发。