关键词:C语言程序设计,实例教学,语法
《C语言程序设计》是程序设计的基础课程,在多数高校中,已经把它作为一门必修的课程,同时,C语言程序没计也是全国计算机等级考试二级语言考试科目。C语言具有非常重要的地位。因此,改善教学方法,提高教学质量至关重要。下面,从几个方面谈谈C语言教学。
1、 明确教学目的,合理安排教学大纲和学时
我校为二类本科学校,为非计算机专业大一学生开设C语言课程,旨在让学生拓宽思维方式,培养学生具有设计程序的能力。为二级考试和本专业的后继课程打下良好的基础。
我校《C语言程序设计》授课学时为32学时,实验学时为16学时,教学以基础知识,语句,数组和函数四部分为主体进行详细讲解和练习,指针做基础介绍和了解内容,能够适应学生的特点,达到较好的教学效果。
2、 明确学生学习目的,激发学生的学习兴趣和热情
通过几个生动的实例如,学生成绩管理系统,数据进行排序,汉诺塔,八皇后问题等,让学生明白,学习完C语言,我就可以进行程序设计了。明确学生学习目的。
3、 加强实例教学,在实例中学习语法
对于非计算机专业同学而言,大量的语法很容易使一部分甚至是大部分学生产生枯燥无味的感觉,很快对这门课程失去信心。为了保持学生对这门课程的兴趣,采用趣味程序的例子进行教学,从而在实例中掌握 C 语言的语法。这种方法的优点是可以根据教学内容,选择合适的例子,以实例为主体,语法为补充,使学生掌握所学内容,在应用中强化语法。经常选用的实例有,华氏温度和摄氏温度的转换,分段函数的计算,阶梯电价,贷款计算,自动售货机价格查询,求三角形面积,利用格里高利公式求圆周率,验证哥德巴赫猜想等。在每个实例的基础上,对学生多提问,并进行扩展,以复习前面学过的知识,也可以巩固当前学习的内容。通过启发式教学,让学生做更多的练习,加深对语法和程序设计方法的理解,掌握课程的精髓。再辅以实验课,教学效果比较显著。
4、 多媒体教学与传统教学方法相结合
随堂编程能够起到非常好的教学效果。教师先引导学生思考如何去编写例题中的程序,然后按学生的思路编程,也可以让学生上讲台来直接实现编程。当场编译运行,比如两个数交换,学生一般会直接进行a=b,b=a,程序结果就会令学生大吃一惊。然后再通过举例如何把一瓶啤酒和一瓶可乐里的液体反装,再进一步编程,学生又恍然大悟。这种方法能够拓展学生的想象空间,激发学生的学习热情。教师也可以在一些编程讲解中,加入一些预先设计好的学生最容易犯的小错误,
向实验课要效率
上机实验这一环节必不可少。教师应该注重够提高学生的积极性,使实验课更有效率。
首先应精心设计上机实验内容,把实验内容和课堂所讲知识有机结合起来,加强学生对知识的理解和消化。每次两学时的实验课,一学时以验证性实验为主,理解消化语法,增强学生信心。一学时以编程为主,教师设计实验题目,内容兼具趣味性和实用性,让学生先对题目感兴趣,再对编程感兴趣。把学生从被动学习逐渐转变为主动学习,让学生从成就中出效率。
其次,要求学生课前写好预习报告,课后完成实验报告,实验课堂随机提问,保证实验课质量。在学生有问题时,看清问题原因,不直接给出正确答案,给学生一定提示,启发学生独立思考。
5、 结束语
要教好C语言,关键在于激发学生的学习兴趣,使学生积极主动、愉快地学。除了讲授语法,更要讲授如何去应用语法。在授课过程中开发学生的创造性思维,使学生具备自主学习的能力。
参考文献
何钦铭,颜晖、C语言程序设计[M]、高等教育出版社,2008、
>> 微课在高职《C语言程序设计》翻转课堂中的应用研究 翻转课堂教学模式在C程序设计课程教学中的应用研究 翻转课堂在高级语言程序设计课程中的应用 浅谈基于微视频的翻转课堂模式在“高级语言程序设计”实验教学中的应用 基于Android的C语言程序设计“翻转课堂”的应用研究 基于MOODLE的高职院校“C语言程序设计”翻转课堂教学改革 基于翻转课堂的C语言程序设计课程教学改革初探 基于翻转课堂模式的C语言程序设计教学改革 传统教学和案例教学在C语言程序设计教学中的应用 行为导向教学法在《C语言程序设计》课程教学中的应用 启发式教学法在C语言程序设计教学中的应用 项目教学法在高职《C语言程序设计》课程教学中的应用 案例教学和竞赛在《C语言程序设计》教学中的应用 任务驱动式教学在高职《C语言程序设计》课程教学中的应用 论项目教学法在高职《C语言程序设计》教学中的应用 “项目驱动”教学在《C语言程序设计》教学中的研究和应用 “任务驱动教学法”在《C语言程序设计》课程教学中的应用 案例教学法在“C语言程序设计”教学中的应用 案例教学法在“C++语言程序设计”教学中的应用 基于任务的教学模式在《C语言程序设计》课程中的应用 常见问题解答 当前所在位置:、
[3]何克抗、 从翻转课堂的本质看翻转课堂在我国的未来发展[J]、电化教育研究,2014,(7):5-16、
[4]Fulton, Kathleen、 Upside Down and Inside Out: Flip Your Classroom to Improve Student Learning [J]、 Learning & Leading with Technology,2012(6):12-17、
[5]张渝江、 翻转课堂变革[J]、中国信息技术教育,2012,(10):118-121、
[6]秦建华,何高大、 翻转课堂:理据、优势和挑战[J]、 现代中小学教育,2014,(5):17-20、
[7]汪琼、 MOOCs改变传统教学[J]、中国教育信息化,2013,(19):26-28、
[8]Jonathan Bergmann & Aaron Sam、 How to make videos your students will love[DB/OL]、 http:///2012/05/21/how-to-make-videos-your-students-will-love/,2012-05-21、
[9]金陵、 用“学习任务单”翻转课堂教学[J]、 中国信息技术教育,2013,(3):20-20、
[10]Baker,W、The Classroom Flip: Using Web Course Management Tools to Bee the Guide by the Side [A]、 The 11th International Conference on College Teaching and Learning [C]、 Jackson Ville: Florida, 2000、
[10]金陵、 设计自主学习任务单[DB/OL]、 http:///learn/ pku-21016#/ learn / content? type = detail & id=200062&cid=216351, 2014-10-25、
关键词:C语言;非计算机专业;教学改革
作者简介:陈伟宏(1976-),女,湖南益阳人,湖南城市学院信息科学与工程学院,副教授;何建新(1975-),男,湖南益阳人,湖南城市学院信息科学与工程学院,高级实验师。(湖南 益阳 413000)
基金项目:本文系湖南省普通高等学校教学改革研究项目(项目批准号:湘教通[2011]315号345)、部级大学生创新创业训练计划项目(项目批准号:教高司函[2013]8号7112)的研究成果。
中图分类号:G642、0 文献标识码:A 文章编号:1007-0079(2013)34-0101-02
随着计算机技术的发展,计算机与其它学科的结合越来越紧密,C语言程序设计已经成为我国高校非计算机专业学生的一门必修课。作为普遍认可的程序设计工具,C语言功能丰富、灵活性强,兼有高级语言和低级语言的特点,是一种面向过程的结构化程序设计语言。[1]该语言适合没有程序设计经验的学生了解程序设计思想、学习程序设计方法。但是,C语言非常抽象,逻辑性和实践性都很强,学生普遍反映难学,如果以传统授课方式对非计算机专业学生进行教学,难以达到理想的效果。因此,本文以高校非计算机专业学生为研究对象,积极探讨C语言课程的教学改革思路,提出“创新教育、理论实践、个性指导、能力培养”的教学理念,并形成行之有效的C语言教学实施方案。
一、C语言教学现状分析
C语言是一种通用性程序设计语言,大多数高校非计算机专业是在大一下学期开设该课程,其先修课程是“大学计算机基础”。C语言课程的教学目标是:掌握语言的基础知识和程序设计方法,培养学生程序设计的基本能力;教学重点是培养学生的实践编程能力。传统的教学方法中,先讲概念,然后介绍语法,最后讲解例子和上机练习,这种教学方式不利于将知识转化为能力。C语言很枯燥,即使上课弄懂了语法知识,但是要独立完成程序的编写经常感到无从下手。根据教学情况,目前C语言教学普遍存在以下几个问题:[2]
1、学习目的不明确,没有学习兴趣
有的学生认为,C语言课程是针对计算机专业的学生开设,而非计算机专业的学生学习C语言对以后的学习和就业没什么帮助,所以没有兴趣。有些爱好计算机的学生认为C语言程序设计编程效果没有Visual Basic、Java等程序设计语言那么直观,总想超前学习当前流行的一些开发工具。甚至有少数学生死记硬背,感觉枯燥无味,进而失去学习兴趣,达不到理想的学习效果。
2、对编程的逻辑思维不熟悉
作为高校非计算机专业学生的一门必修课,C语言程序设计内容多,逻辑思维严密。而他们还是大一学生,还只学过计算机基础课程,没有形成编程的逻辑思维方法,对C语言的语法、程序编译与调试等都不熟悉,导致出现学生学习困难的情况,容易产生两级分化。
3、语法繁琐,兴趣不浓
C语言语法知识点多,语法格式要求相对严格,有常量、变量、运算符、三种程序设计结构、函数、指针等。要写出正确的程序,首先要掌握这些语法知识,然后需要流畅的思路。大多数C语言教材先给出一般的语法格式,然后讲解语法要点,然后举例说明。如果教师按照这种模式授课,繁琐的语法很容易让学生厌倦,再加上程序设计偏离实用性,学生没有兴趣,最后的教学效果可想而知了。
4、实践教学环节薄弱
C语言是一门实践性很强的课程,高校非计算机专业的C语言程序设计教学环节包括随堂实训和实验两部分。由于C语言课时少,内容多,因此随堂实训的时间少。对于实验内容,通常教师布置与语言教材知识点相符的任务,容易出现与解决实际问题脱节的现象。以往的课时设置一般理论课时大于实验课时,这也是影响学生实践能力弱的一个重要原因。如何加强实践环节、培养学生的编程能力是教学改革的一个重点。
二、C语言教学改革思路
多年来,笔者和科研团队成员一直从事C语言课程的教学工作,并对该课程进行了深入研究和实践,形成以学生为中心、以案例教学为手段、以网络学习为补充、强化学生主动学习和实践能力培养的改革思路。
我校是一所地方本科院校,以培养应用型高级专门人才为宗旨,因此,结合C语言课程特点,定位我校非计算机专业C语言课程的教学理念为:创新教育、理论实践、个性指导、能力培养。也就是,以创新教育为最高目标,坚持理论与实践相统一,加强学生的个性化指导,注重学生面向应用解决实际问题能力的培养。C语言的创新教育不是要学生发明一种新技术或新方法,而是在教学过程中不断发挥学生主动应用C语言程序设计手段解决实际问题的意识和能力。[3]理论实践是指教材上的理论知识只有通过实训或实验等手段,才能真正掌握并能在实践中应用,达到理论与实践的统一。对于个性指导,根据学生的计算机水平不同,采取实验内容分层设置等方式,通过灵活多样的教学手段培养学生;用优秀学生的示范效应激励一般学生,利用大多数学生积极向上的学习氛围带动少数后进生不断提高。能力培养是目标,这里的能力是指C语言编程能力及利用C语言工具解决实际问题的能力,可以通过大学生的创新项目、程序设计竞赛、社团活动、实验实训等形式提高学生的实际动手能力。本文在提出的教学理念指导下,对C语言课程在教学方法、实践环节、教学手段和教学内容方面进行了合理有效的改革,并在实践中形成了一套行之有效的教学方案。
三、C语言教学改革实施过程
1、灵活多样的教学方法
教学是课程学习的首选方式,不同的教学方法直接影响教学效果。
(1)先进的教学理念。C语言是计算机类课程的核心和基础,也是非计算机专业学生的必修课,其目的是让学生通过程序设计方法了解计算机解决问题的过程,训练学生的逻辑思维能力,达到能利用语言工具解决实际应用问题的目的。要让学生学好这门课,首先老师要树立先进的教学理念,引导学生自主学习。在教学过程中,把握好三个阶段:上好开学第一课、指导好的学习方法、正确引导学习兴趣。
非计算机专业学生在开学第一次上C语言课程,他们还只学过大学计算机基础,这与程序设计课程的学习方法不同,所以在上第一堂C语言课时要介绍课程的教学要求和学习目的,并让学生结合自己的专业制订有兴趣的学习计划。有了学习计划,还要强调自学的重要性。在介绍C语言课程特点时,提出适合不同层次学生的学习方法。当遇到问题时,鼓励学生学会网络求助和与同学相互交流,引导学生对知识的探究,培养学生自学和解决问题的能力。
(2)案例教学法。案例教学是一种经典的教学方法,它采用互动模式,以案例分析为基础,一般要求涉及丰富的知识点,具有针对性、系统性、可实践性和启发性。[4]C语言教材内容繁多,有十多章,一般第一章为概述,第二章为语法知识,如果按部就班进行讲授,第一节课内容会抽象枯燥,学生容易厌烦。如果通过案例直接引入主题,例如求圆的周长,能尽早让学生建立程序框架概念,并开始模仿编程。对于这个案例,先用语言描述问题及解决步骤,然后现场在C语言编译器中输入代码、添加头文件和主函数,再编译、运行,得到输出结果,这样学生通过这个实例认识了程序框架、语句、常量、变量、函数等,这种解题步骤符合人们的思维,容易被理解和接受。
使用案例,还能对教学内容进行适当取舍和组合,起到降低难度、分散重点的作用。例如,循环结构程序设计是教学的重点和难点。对于一个多重循环结构的程序设计,如果引入案例讲授,采用手工执行循环和编译器单步跟踪调试的方法分析程序,循环体的功能就会变得清晰了。[5]
(3)多种编程方法拓展思维。同一个问题,鼓励学生采用多种方法编程实现,并让学生分析它们的不同之处。例如,求1到10的累加和。这是一个很简单的计算题,但是可以用多种方法实现,如for、while、do while三种不同结构,scanf、gets、getchar等不同输入输出函数,变量的不同设置等。学生通过尝试用不同方法解决问题,不但能加深对知识点的理解,还能锻炼学生的编程能力,使学生养成积极思考的习惯,做到将所学知识融会贯通。
(4)分层管理,因材施教。根据学生的程序设计水平不同,设置验证型、综合设计型和研究创新型三个层次的案例和练习,对学生分层次管理,不同学生选取不同的教学方法;对C语言感兴趣的学生,充分调动他们的积极性、主动性和创造性,鼓励他们进行超前学习;每组选取一个优秀学生为组长,充分发挥优秀学生的示范效应。通过这种方式,优秀学生激励普通学生,大多数学生积极学习的氛围感染少数后进生逐步提高,达到自主学习和能力培养的目的。
2、有效的实践环节
实践环节包括课内的实训和实验,以及课外的创新活动等,其中实验是检验知识综合运用的重要手段,也是培养学生解决问题能力和创新能力的必要环节。要保证实验效果,良好的实验环境是前提,好的实验方案是关键。
一般C语言课程的课内时间非常有限,要进一步培养学生的实践能力和创新能力,需要充分利用课外时间学习。课外的实践环节除做课后练习外,还可尝试如下措施:
(1)鼓励学生申报大学生创新项目,引导学生参与,提高综合能力。以生活趣味类和专业应用类为主,列出系列创新课题,供学生选择承担,由计算机老师指导完成。
(2)举办和参加各类竞赛,提高程序设计编程水平和创新能力。ACM程序设计竞赛是可选用C语言编程的、在Windows或Linux平台上进行的面向在校大学生的竞赛,目前在我校已全面开展。我校先经过初赛、复赛选拔一批优秀学生参加ACM程序设计竞赛培训,然后每隔一段时间,参加培训的学生还需进行定期考核。如果考核不合格,则建议退出ACM团队,否则继续学习。通过这种多层次、多阶段选拔优秀学生方式参加省级、部级程序设计竞赛,我校学生取得了良好成绩。
(3)开展社团活动或与专业相结合的创新活动。对于非计算机专业学生,教学中渗透专业特色,课外社团活动中包含程序设计内容,这种方式能让学生体会学习程序设计的作用,活跃创造性思维和培养创新能力。
3、丰富的网络资源
随着网络通信技术的快速发展,拓展了网络的时间、空间、形式和内容。目前网络对每个学生来说几乎都是无处不在,无时不有,学生充分利用网络资源学习也是一种有效的方式。因此开发丰富的网络资源,提供学生自主学习平台意义深远。我校学生立项的部级大学生创新项目“在线学习系统”中,目前已开发了面向非计算机专业的C语言课程资源,包括教学大纲、电子教案、在线视频、操作案例、实验指导等,还有师生互动栏目,正在进一步开发在线考试模块。通过创新型网络学习平台,对培养学生自主学习能力起到积极作用。
4、与时俱进的教材
教材建设是课程建设、人才培养的重要组成部分。为适应社会对大学生计算机水平的需求,必须更新教学内容,加强教材建设。建设教材时,要处理好传统与现代、理论与应用、深度与广度的关系,更新教材内容,开阔学生视野,跟上当前新技术的步伐。笔者团队编写了C语言教材及配套的实践指导,为培养学生编程能力提供了有力支持。
5、多方位的考核方式
考试是教学过程的一个重要环节,其本质是检验学生的学习效果,但仅通过期末考试来衡量学生的水平是片面的,不能真正体现学生的实践能力和创新能力。为此,非计算机专业的C语言课程考核方式可以采取以下几种方式:
(1)面向过程的考核。一般情况下,课程的考试成绩由“期末考试×0、7+平时成绩×0、3”组成。C语言课程实践性强,其考核方式可以调整为:由理论考试、上机考试和大作业三部分组成,加大实践操作分数的比重。如果非计算机专业学生通过省级或部级计算机等级考试,学校可制订相应政策,用等级考试成绩代替课程考试成绩。[6]
(2)面向项目或竞赛考核。学生参加项目或竞赛都是培养学生创新能力的重要手段,可将其作为评价学生水平的一个指标。通常情况下,学生立项并结题省级以上项目或者参加竞赛获得省级以上奖励的,学校也可制订相应政策免修或代替课程考试成绩。必须指出,竞赛或项目内容必须与相应课程内容一致或关系密切。
四、结论
教学实践证明,以“创新教育、理论实践、个性指导、能力培养”为教学理念,采取案例教学、一题多解、分层管理等灵活多样的教学方法以及多方位的考核方式。同时建设网络课程资源和教材,以培养学生自主学习能力,有效提高非计算机专业学生学习C语言的教学效果。
参考文献:
[1]谭浩强、C程序设计[M]、第四版、北京:清华大学出版社,2010、
[2]丁海燕、C语言程序设计教学主线与教学创新[J]、高等理科教育,2012,(4):122-125、
[3]龚沛曾,杨志强,顾春华,等、大学计算机实践能力培养的改革和实践[J]、中国大学教学,2008,(6):16-18、
[4]熊启军,宁彬,谷琼、C语言程序设计课程案例式教学研究及实践[J]、计算机时代,2013,(1):55-56、
关键词:C语言;专业相结合;计算思维
中图分类号:G642、0 文献标志码:A 文章编号:1674-9324(2017)02-0168-03
一、引言
目前很多高校都在推行为非计算机专业开设的程序设计类课程改革,研究如何全面提高教学效果。将计算思维融入程序设计是当前课程教学的研究热点[1];很多教育专家和一线教师都提出了以培养计算思维为目标的程序设计类课程教学改革方案[2,3]。C语言程序设计属于此类课程,在注重培养计算思维的同时,更重要的是将教学内容与学生本专业相结合。因此,提出一种融入计算思维、与专业相结合(以下简称S&C)的C语言程序设计教学模式。
二、计算思维的专业化培养
计算思维是信息时代中的每个人都应当具备的一种思维方式,培养计算思维能力已成为计算机基础教学的核心任务[4]。程序设计类课程属于计算机基础课程体系,但是学习的内容和要求是相对的,对不同的人群应该有不同的要求[5]。对非计算机专业学生而言,程序设计语言更像是一个工具,是其在从事本专业工作中可以使用的一个工具。因此,任课教师应考虑到专业需求,将计算思维与专业应用进行融合,让学生感受到利用计算思维求解问题过程中的魅力[4]。计算思维教育的目的是培养一种思维习惯,一种像计算机科学家思考问题那样的习惯[6],虽然计算本身也是一门学科,但是其具有促进其他学科发展的作用,不应该将计算思维局限于此,而是应用于各专业领域。
三、C语言程序设计与专业相结合
为非计算机专业开设的C语言程序设计课程,授课深度和广度有别于计算机专业,很多高校将它作为一门通识课程,使用同一个教学大纲,难以与专业课程紧密衔接。实际上,随着计算机的普及,程序设计语言的使用不再是IT人的专利,很多行业都会涉及到软件开发、编写应用程序。如单片机等智能芯片的开发语言就是以C语言为主[7],学生程序设计水平高低可能直接影响他们的就业和职业发展[8]。因此,有高校教师提出自动化专业的C语言程序设计课程改由自动化教研室承担[9]。但这种做法是否有违开设C语言程序设计课程的初衷?C语言是程序设计的入门语言,最重要的是建立C语言与专业的关联,培养一种独特的处理问题的思维方式,更适合由计算机专业教师授课,在后续专业课程中再由专业课教师进一步引导学生的应用实践。但教学内容要向专业靠拢,能够认识到专业课程和C语言之间的联系点在哪里,并由此制定出相对独立的教学大纲和专业化教学方案。
四、S&C式C语言教学模式
(一)课程设置
虽然学习C语言不需要什么必须的先修课程,但经过授课教师分析[8],与计算机专业学生不同,非计算机专业学生只是孤立地学习C语言,建议将C语言与相关课程配套开设,以自动化专业为例,在同一学期内,先开设C语言程序设计,在课程中后期再开设单片机课程,这样既可以加强学生理论联系实际的能力,又使学生对C语言的学习目的和从业方向更加明确。
(二)教学目标和教学内容
C语言程序设计的教学目标应体现基础性与专业性。基础性是针对后续课程来讲的,学生通过该门课程的学习掌握一定的算法和常用子程序,学会用C语言编写程序,为后续课程打下坚实的基础;专业性是指学生在掌握C语言的各种语法与程序结构的基础上,不仅能够根据实际问题设计算法、编写出解决问题的程序,还可以运用计算思维解决生活中或专业领域的问题。计算思维主要不是靠讲课得来的,而是在学习和应用计算机过程中培养的[5],但理论依然是实践的基础。因此,应将思维训练融入到教学内容中,并将计算思维具体化为对以下几项能力的培养。
1、抽象。从本质上讲,程序设计语言是对人类问题求解过程的抽象,例如,数据与数据类型、表达式、流程控制、函数等都是数据抽象、计算、逻辑推理以及问题约简等人类问题求解思维方法的物化[10]。使用C语言进行程序设计的过程就是利用计算的手段求解问题的过程,这一过程中对问题定义和形式化,以及建立问题的逻辑模型就是对问题的抽象过程,而抽象是计算思维的基本方法。
2、多样性思维。C语言中变量的使用是编程的基础,也是最基本的概念。C语言提供了多种数据类型,如整型、浮点型、字符型、数组、指针、结构体及枚举型等。在求解实际问题时,会涉及到各种各样的数据,如整数、小数、字符,还有一些复杂的对象,如学生个人信息、考试成绩等,为处理这些不同类型的数据,除了要分析数据的对象特征,还要了解各种数据类型之间的差异及其使用方法,通过大量练习掌握并灵活应用这些数据类型,这对于训练学生多样性思维有极大帮助。
3、问题分解。C语言是一门模块化程序设计语言,在求解一个复杂问题时,一般采用逐步分解、分而治之的方法,即将一个大问题分解成若干相对较易求解的小问题,再分别进行求解。C语言的函数就是程序的基本组成单位,在编写一个复杂程序时,将整个程序的功能划分为若干功能较为单一的程序模块,即用函数实现每个单一功能,然后再将所有函数像搭积木一般,组合起来。函数有其独立性,即要保证高内聚,低耦合;但却不是孤立的,使学生理解调用函数和被调用函数的相关知识和二者之间的相关性。
4、算法。算法是解决问题的方法和求解问题的步骤。解决同一问题会有不同算法,算法设计是C语言程序设计的核心。引导学生学会利用已有知识,学会从多个角度分析问题,采用不同的类型、结构都能解决问题;同时,引导学生进一步分析各算法的差异,不仅可以巩固知识点,还能加深学生对不同数据类型、程序结构化的认识。在教学内容中设置一些与专业应用相关的案例,增加趣味性的同时,激发学生的学习兴趣,增强与本专业的联系。
5、递归。递归就是用自身定义自身的方法。C语言允许使用递归,以应用递归求解的问题为例,使学生理解递归的工作原理。例如,利用公式n!=n×(n-1)!求一个自然数的阶乘,可以用以下函数进行计算。
int fact(int n)
{
if(n
return 1;
else
return n*fact(n-1);
}
跟踪i=fact(3)这条语句的执行过程,从中了解递归函数逐层调用和展开的过程。
6、程序。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,在系统的IPO模型中,程序是算法的实现。C语言以顺序结构、选择结构和循环结构作为基本的程序结构。学生在求解问题时选取合适的程序结构,练习使用相应结构的语句,训练其结构化思维;编程过程中,为了实现程序的整体,要考虑如何协调各类函数,从而强化一体性思维;任何程序,无论是简单的还是复杂的,都按照一定秩序有序执行,为解决不同问题要采用不同要素、结构组成程序,这可以强化学生的有序性思维。
7、动态性思维。C语言中很多知识点的运用都体现了动态思维。例如,根据计算对象的类型使用不同类型的变量,在多种类型数值进行混合运算时,其结果又能根据精度要求动态地向高精度类型转换;循环结构中,循环变量值的变化是程序动态性的最佳体现,在单步调试时,能够清楚地观察到循环变量及相关变量值的每一步变化;在函数定义中形参的设定也是训练动态性思维的重要知识点,每次调用函数时,函数所接收到的实参都是不同的,只有具有动态性思维,才能真正理解函数实参和形参的概念。
(三)教学方法
在课程教学中,教师应具有不同的角色,课程前期,教师是讲授者、主导者,以讲授法为主,通过对比记忆等方法帮助学生接受C语言各种定义的方式和语法结构;课程中后期,教师是协助者、引导者,采用翻转课堂教学法,让学生成为课堂主体。教师应设计好课前任务,及时获得反馈以调整课上活动;课上进行分组讨论和以专业性案例为主的任务拓展,引导学生举一反三,研究规律,掌握方法,让学生认识到C语言程序设计与专业学科的密切关系。翻转课堂的有效实施需要一个过程,既是学生接受、适应和主动参与的过程,也是教师根据不同课程班逐步调整实施方案的过程。
教学方法的有效性以学生的学习自主性为前提,而激发学生的学习动机似乎一直是教师与学生之间的较力。C语言与专业相结合可以在一定程度上提高学生学习兴趣,因为大多数学生是依据自身兴趣选择专业的,但这还不够。依据ARCS模型,增强学习者动机的四个要素:Attention、Relevance、Confidence和Satisfaction。在教学开始阶段,引入一个C语言开发的专业案例吸引学生注意,激发学生想进一步探究的好奇心;进而建立C语言与专业学科的关联,使学生清楚教学目标和学习内容的价值;在课前任务中布置一些较简单的任务,以此增强学生的学习信心,课堂上进行任务拓展时提供一些有些难度而学生又能解决的问题,让他们感觉到自己的能力“非凡”,最后让学生明确自己取得的成果是自己具有能力并付出努力的成果;在实践环节布置的项目任务为学生提供了在一种真实或模拟的情境中运用知识的机会,感受到学习的价值、学习的快乐,从中获得满足;对学生的学习结果提供反馈,如对课堂表现好的学生给予口头表扬,维持后续的学习动机,面对全班公布考核方式的评分标准,让学生感受到教师评价的公平性。
(四)实践环节
为了鼓励学生积极进行实践,应该不断加强C语言实验平台建设,在校内使用OJ(Online Judge)系统[11]。但要使OJ系统更好地发挥效用,教师必须对题目进行正确描述和引导,以及对测试用例考虑充分,增加与专业联系密切的实验内容,减少验证性实验内容;布置合作式项目任务,并以此作为大学生研究性学习和创新性项目,训练学生在实际工作中协调、合作和创造能力。学生还可以利用OJ系统进行阶段性测试,促进自主性学习。
(五)考核方式
课程的考核方式决定着教师如何教这门课,也决定着学生如何学习。目前C语言程序设计课程的考核方式为“平时表现+期末考试”的形式,期末考试采用无纸化上机考试,是评定学生成绩的主要方面,排除了考试各环节中人为因素的影响。试题库涵盖教学大纲规定的所有知识点,难度适宜、重点突出。
但全面考核学生的程序设计能力不能仅依赖于期末考试,应重视平时课堂和实践环节的考核,采用作业自评和同伴互评的评分机制。自评是学生比对评分标准自查;同伴互评是学生通过相互批改作业相互学习,是形成性评价的有效手段,能够帮助学生更积极主动地参与课程学习,增加了再次回顾知识、温习知识和总结自身所得的机会,促进更深层次的思考。为了使这一评分机制能有效开展,教师要制定一个好的评分标准,不同的“评委”依据这个评分标准对同一个作业进行评判应得出同样的判断;考虑到同伴互评中可能出现的问题,如学生不遵照评分标准打分等,做出相应的对策,使学生能够自觉以评分标准为指导,高质量地完成作业,然后根据评语对照评分标准修改完善自己的作业。
五、结语
应用型大学非计算机专业的计算机应用教育,应以能力为导向,使学生具备在各个领域应用计算机的能力。作为应用性较强的专业基础课,C语言程序设计能否学好关乎到后期专业课程学习的效果。根据专业特点,采取与专业相结合的C语言教学模式,培养学生将计算机处理问题的思维方式运用于本专业领域的能力,为各学科问题求解带来一种思想、策略、方法和手段上的变化,促进各学科的突破性发展。
参考文献:
[1]刘军、面向计算思维的程序设计教学实践[J]、计算机教育,2015,(14):116-118、
[2]乔淑云,黄刚、程序设计类教学改革与计算思维之培养[J]、计算机教育,2012,(19):17-19,23、
[3]聂兰顺,战德臣,宋巧红、计算思维的教学内容与方法研究――以“算法”和“系统”两种问题求解的计算思维为例[J]、工业和信息化教育,2013,(6):21-27、
[4]冯博琴、对于计算思维能力培养“落地”问题的探讨[J]、中国大学教学,2012,(9):6-9、
[5]谭浩强、研究计算思维,坚持面向应用[J]、计算机教育,2012,(21):45-49,56、
[6]陈国良、计算思维的表述体系[J]、中国大学教学,2013,(12):22-26、
[7]卢振利、应用型本科院校自动化相关专业中51单片机项目C语言六步编程法教学研究[J]、电工技术・理论与实践,2015,(5):228-229、
[8]俞敏、对自动化专业C语言教学的思考[J]、高校教育研究,2009,(3):135,137、
[9]陈丽敏,邵长友、基于自动化专业C语言课程教学改革的研究[J]、中国电力教育,2013,(31):76,90、
[10]郝兴伟、大学计算机――计算思维的视角[M]、第3版、北京:高等教育出版社,2014、
[11]廖雪花,厉兰洁,唐思娩、基于OnlineJudge的C语言程序设计实验课教学改革研究[J]、计算机教育,2016,(6):130-133、
Research on Teaching Mode of C Programming for Students of Non-Computer Science
LUAN Ruo-xing
(Computer Center,Liaoning University of Technology,Jinzhou,Liaoning 121001,China)
关键词:案例教学;C语言程序设计;竞赛;教学方式;改革
中图分类号:G42文献标识码:A文章编号:1009-0118(2013)02-0165-01
C语言功能丰富,表达力强,使用灵活方便,应用面广,目标程序高,可移植性好,既具有高级语言的特点,又具有低级语言的许多特点。因此近年在国内外得到迅速推广应用和广泛应用。《C语言程序设计》课程作为计算机专业的入门课程和理工科专业的必修课程,也是国家计算机等级考试可选编程语言之一。课程不仅重视理论教学,更加强调学生的动手实践能力[1]。
但C语言概念比较复杂,规则繁多,使用灵活,学生掌握起来有一定的难度。传统教学过程中存在很多问题,比如实践教学内容与理论教学脱节,上机过程学生随意性大,教师难以在有限的上机课时内对全部学生问题进行解答,学生自学能力不强等。因此对《C语言程序设计》课程教学方法及考核模式进行改革势在必行,案例教学方法和竞赛的应用是解决此类矛盾较好的措施[2]。
一、改革思路
对《C语言程序设计》课程改革的思路是以学生为主体,以实践为主导的教学方式,从而激发学生的兴趣,使其既掌握适当的C语言程序理论知识,更具备较强的实际编程技能,能满足现在工业对技术应用型人才的需要[3]。
二、教学平台和资源库建设
课程的矛盾之一是课时的不足,因此课程需要加强课程平台和资源的建设,使学生能够利用的软硬件资源丰富,将学习时间从课堂内延伸到课堂外,甚至毕业后,弥补课堂教学课时的不足。本课程建设的资源包括:(一)教材的建设,本课程出版的教材包括:《C程序设计应用教程》(中国铁路出版社),《C程序设计实验指导》(中国铁路出版社),《C语言程序设计基础教程》(清华大学出版社);(二)多媒体教学课件;(三)案例教学数据库;(四)考试题库。同时平台上建立问题解答和互动板块,让老师在课堂外也可以学生的问题进行解答,解决教师课堂上时间不足,问题太多,“下不了课”的问题[4]。
三、教学方式的改革
孔子曰:“知之者不如好之者,好之者不如乐之者”,爱因斯坦说过:“兴趣是最好的老师”,因此提高学生的学习兴趣,使课堂生动是最好的教学改革方式,能够让学生从被动学习化为主动学习。
(一)案例教学方法的运用。《C语言程序设计》是一门实践性、应用性很强的课程,单一的理论讲授,学生会感到抽象、枯燥、掌握不牢。因此可以堂课演示几个由C语言编写生活中用到或者见到的小程序,如“计算器”、“五子棋游戏”,同时让学生自己编辑实现后并和源代码对比,在增加学习趣味性的同时,增强学生的自信心。另外将老师参与的科研和生产实际的C语言程序案例引入到课堂,在提出问题、分析问题、解决问题的思路下,将各个重点、难点转化为具体的问题和案例,然后围绕这些问题和案例进行深入讲解。在引导学生思考和记忆的同时,让学生“看得见”,“摸得着”,将教学从课堂延伸到工业场景[5]。
(二)课程竞赛的引入。竞争能够激发“攀比”的思想,因此在课程内开展《C语言程序设计》竞赛,选出优胜作品参加《全国程序设计大赛》,在实战演练中培养学生分析问题、解决问题的能力。让学生感觉上课“好玩”,实现学生课堂内、外自主学习[6]。
四、结语
针对提高学生程序开发应用能力这一中心,对《C语言程序设计》课程进行了学习平台和资源库的建设,同时将案例教学和竞赛引入到课堂教学中,《C语言程序设计》教学改革取得了非常理想的教学效果,无论是在学生成绩的提高上,还是学生的反映上,以及考试的效率上等均达到了教学目的。
参考文献:
[1]陈世基、C语言程序设计实验教学方法的改革与创新[J]、福建电脑,2007,(5):207,196、
[2]丁海燕,邹疆,邱莎、C语言实验教学体系及改革措施[J]、实验技术与管理,2010,27(11):179-181、
[3]刘桂玲、《C语言程序设计》教学改革与实践[J]、软件导刊,2012,11(3):194-195、
[4]袁学倩、《C语言程序设计》课程教学改革的探讨[J]、科技信息,2012,(21):137,218、
C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。
1、传统型
这种教学模式,也是最常用的,课堂上以老师为主,学生只能被动的接受知识的传授。通过最直接“填鸭”式照本宣科,不管学生接受与否,最后的考核也是以知识点的记住与否,造成学生死记硬背,不能真正掌握知识。其基本模式为:学习——回答——纠错——总结。这种模式下,使得教师在教材以外的发挥余地极小,基本是“照本宣科”,强行灌输C语言的概念、特点、编程程序、基本的方法等,整个教学过程缺乏灵活机动、具有启发性的内容,学生被动的接受知识、被动的记忆、被检查、被考试、被批评等,日复一日的教条式训练,不能有效地激发学生的主观能动性与创造热情。
2、任务型
C语言教学区别于其他学科,在理论知识的传授之外,还需要培养学生的实际动手能力,因此,很多学校也采用“任务型”教学模式,基本模式为:根据具体要求提出任务—鼓励学生设计方案—实际操作—解决任务。在日常的教学中,学校大多会利用电脑等锻炼学生的实际动手能力,利用实际操作,锻炼编程、逻辑等能力,从而掌握C语言的基本知识。例如翻转课堂模式,教师将知识传授环节制作成教学微课,课前提供给学生预习,通过预习使课堂的实践性练习目的性更明确,教师随堂对学生遇到问题进行指导分析,从而培养学生独立思考能力和实际操作能力。这种模式的采用,相对于传统模式,有其进步性,这也是C语言等专业性、操作性学科区别于其他学科的特点决定的,在这种模式下更取决于教师自身的素质、知识、能力等,是整个课程的掌控者、引导者,他们的能力直接关系着教学成果。
二、信息化背景下面临的挑战
随着科技的发展,信息化在教学领域的应用越来越普遍,信息技术的日新月异,也使得其在课堂上,已经不仅仅是局限于简单地计算机和多媒体运用,移动技术、智能化与虚拟技术等为我们的教学提供了新的思路和方法,如何能使我们的教学与高速发展的信息化相结合,是教育领域不断探索的课题。C语言程序设计等课程具有很强的专业性要求,主要是建立在计算机信息技术的基础上,对于信息化的反应更为灵敏,传统的课堂上,以教师为中心的“面对面”的教育模式面临着挑战和冲击,用技术手段的灵活性与便利性来增强课程学习的兴趣和接受能力。随着新技术的广泛应用,会促使传统的教学模式发生变革,以教师为中心的教学模式逐渐转化为互动式教学模式,达到更好的教育效果。在C语言课程设计教学领域,进行信息化教学改革的尝试,充分利用信息技术,变革教学手段和模式,是信息化发展的必然要求。只有实现C语言课程的信息化教学改革,使得教育信息化能够普遍运用,才能展现出信息技术在推动C语言教学中的强大威力和广阔前景。
三、教学模式改革的基本对策
教学模式直接反映出一定的教学理念,也直接决定着教学成果。随着信息化的发展,教育信息化逐渐打破传统的教学模式,在这样的背景下,C语言教学模式的改革任务艰巨,如何构建新型的信息化教学模式也是我们在实践中不断摸索的问题。
1、充分利用信息化的科技手段
信息化的科技手段,给我们的教育领域带来变革,尤其是计算机领域的学习,其主要是建立在信息化发展的基础上,因此在教学中,更要与时俱进,与信息化的发展程度相互依存,相互辅助,C语言课程设计教学中,可以充分利用信息化的科技手段,如计算机技术、云计算技术、多媒体技术、网络技术、虚拟现实技术、通信技术、移动学习技术、人工智能、传感器技术等,这些技术的发展,带来C语言教育领域的变革。为提高C语言教学质量,激发学生学习C语言的积极性,我们可以在课程建设过程中充分利用现代技术带来的便利与多样性,以及趣味性。如在教学课件设计上,利用多媒体技术,图、文、动画并茂,减少其枯燥的理论传授,增加趣味性;利用网络技术,实现在线教育,建立“C语言程序设计”网站,分组进行网站维护,运用编程能力进行更新;应用现代的通信技术,建立微信学习群,让学生分享自己的学习经验,共享学习资源。
2、案例引导式教学模式
改革C语言教学模式,另一探索的模式为案例引导式教学模式,C语言的教学,是为了培养学生读程序、调试程序、写(仿照)程序的能力以及规范性编程的能力,学习最主要的目的是为了应用,对于编程的应用,只有具体的应用场景,即案例,才能更容易被接受,更易懂。案例引导式教学模式,在别的专业课教授中,常被使用,主要特点就是用案例去引导知识点的掌握,对案例进行分析,通过分析启发学生的思路,将学生带入到具体的案例中,让学生有一种“身临其境”的代入感,从而掌握具体的知识,学会在这种场景下解决问题的方法,这种模式的教学更有针对性、系统性。案例引导式教学模式在C语言课程设计教学中的运用是指针对C语言课程的每一个核心知识点,建立配套的案例,通过这些案例的学习和掌握,使得学生在例子的佐证下,更加了解C语言的应用,这种案例的设计,和我们的书本知识相结合,把理论知识融入到具体的案例中,进行综合性的阐述,如具体的计算机程序的编写,设计游戏环节,运用所学的C语言知识设计网站,并使之运行,可以在班吉内分组进行维护等,并加以各种领域成功案例或者失败经验的案例,让学生能够更进一步了解其应用范围、能力、领域等。
3、实践教学模式
C语言课程设计的学习,所需的能力不再是死记硬背,而是更注重实践和应用,因此我们在教学过程中,不能只传授书本知识,还要锻炼学生的动手能力和编程能力,实践教学模式应运而生,依靠大量的实践,将所学的知识转化为实际操作,得到进一步的应用。信息化技术为这种教学模式提供支撑服务,我们可以在课堂上设计各种实践环节,也可以在课堂后与各种软件公司、游戏公司、网络公司等合作,增加实践机会,让学生在具体的实践环节中,真正了解C语言的知识,并主动内化这些知识,变为实际操作能力。在这种教学模式改革中,如何能够更好的提高实践能力需要通过各个环节的相互配合,如课程设计上,增强实验、实训环节,让学生在熟练掌握C语言语法、程序结构的基本理论的同时,通过大量的实践操作,进一步掌握C语言的知识,学会编码;同是,积极与各软件、互联网、网络公司签订实践基地,让学生可以在实际应用中,边做边学,提高学生逻辑思维、实际操作能力,真正实现教学目的,熟练掌握计算机编程能力。
作者:王桂华 单位:营口职业技术学院
参考文献:
[1]徐新海,林宇斐、注重计算思维的启发式C语言语法教学[J]、计算机教育,2014(17)、
关键词: C语言 典型案例分析 教学方法
一、引言
C语言具有功能强大、表达力强、应用面广、目标程序效率高、可移植性好等良好的特性,它既具有高级语言的优点,又具有低级语言的许多特点[1]。目前,很多新型的语言都衍生自C语言。因此,C语言也就成为所有计算机程序设计人员必须掌握的一种通用高级程序设计语言。但是,C语言繁多的数据类型和复杂的语法结构使得C语言成为了一门既难以学习又不易教授的课程。
二、经典案例分析教学法与传统教学方法的比较
C语言的教学任务,主要有以下三点:熟练掌握基本的语法知识,能够轻松的阅读程序,灵活的编写程序。
传统的教学模式通常是“三步曲”,即:提出概念解释概念举例说明。应用这种模式教学,过于注重语句、语法等细节的讲解,对学生分析问题、解决问题的能力训练不够,这样学生只能学到一些枯燥的、容易忘记的、支离破碎的语法规则,不能具体灵活的应用这个概念。
案例是对一个具体情景的记录。经典案例分析教学法就是通过选择一个具有代表性的案例,对其分析研究来得出所要教授专业知识、技能或内在原理。适当地选择案例能将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中。这样能大大地提高学生学习的积极性,而且能够掌握一些相应的编程思想。
三、案例分析教学法在实际教学中的应用
1、针对具体要求,适当选择案例。
在C语言教学中,依据课程的具体要求,教师应该选择难度适中、大小合适、贴近学生兴趣的案例,当然所选择的案例要能贯穿本课程所授课的内容[3],使我们将要学习的新知识都隐藏在这些案例中。
2、分析案例,提出问题,引入教学内容。
每个案例中隐含着已学过的知识和新的知识,在分析任务时,我们应以教师为主导,学生为主体进行研究、讨论引导学生分析案例,提出问题,根据提出的问题及时讲授新的知识。例如,在讲解“自定义函数”时,教师可引入如下案例:计算数学式P=Mi/K!(M-Ki)的值,其中M=8,K=3[2](P163)。先要让学生思考如何完成该任务和在完成任务的过程中将会遇到的问题。在分析这个案例时,我们可以将该案例先分解成:求M!、K!和(M-K)!三个子任务,然后做乘除法即可。这时候我们就发现利用我们之前学过的知识就要针对这三个子任务重复的写三次求X!的语句组。这样就太繁冗了,有更简洁的方法吗?这时教师就可以及时地提出自定义函数这一概念了,以及函数的定义与调用相关的语法。学生带着问题去听,理解起来更容易。当我们以一种更简单的方式解决了问题后,学生就会有发现新大陆的感觉,这样就激发了学生的求知欲,调动了学生学习的主动性。
3、经典案例分析法在教学过程中的侧重点。
在教学过程中,案例分析教学法以程序设计为主线进行教学,这就要求教师有意识地淡化C语言中语句、语法的介绍,并尽量避免过多讲授C语言一些容易引起错误的细节,而重点介绍程序设计方法和思路,在分析程序和程序设计中让学生逐步熟悉语法和应用语句,并把各种编程思想贯穿于算法分析和程序设计的过程中。其中语句、语法等细节问题需要在实验中不断的调试、修改来加强熟练度,很多算法也要通过实验来验证。因此,实验在C语言教学中也占有举足轻重的地位。
4、通过经典案例分析熟练掌握典型算法。
在实际的教学过程中,我们发现一些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程就束手无策。一般来讲,一个较复杂的软件可以按功能分割为若干个典型的小模块,每个小模块最终都成为功能单一,结构清晰,接口简单,容易理解和编写的小程序。只要学生掌握了典型案例的算法,就可以将这些算法像搭积木一样组装成相应的软件算法了。因此,在教学过程中,教师应要求学生对一些典型案例的算法熟练掌握,如累加、累乘、排序、查找等,为以后编写程序,软件设计奠定基础,同时对典型案例的算法的熟练掌握,也会增加学生学习计算机语言的信心,从而提高学习兴趣。
四、结语
编程人员熟练掌握一门程序设计语言固然重要,但更为重要的是具有编程思维能力和开发能力。通过教学实践证明,教师选择合适的案例教学,可以让学生掌握所学的内容,对培养他们的编程思维能力和提高他们的软件开发能力都有很大帮助。
参考文献:
[1]谭浩强、C语言程序设计[M]、北京:清华大学出版社,2002、
关键词:《C语言程序设计》;教学内容;实验内容;课后思考;考核方式
中图分类号:G642文献标识码:A文章编号:1009-3044(2011)20-4917-01
《C语言程序设计》在各高等院校广泛开设。不同学校的学生对这门课程要求不一样,对一般本科院校的学生来说,这门课程难度偏大,学习起来有一定困难,不易学习!随着课程教学的改革,许多学校对这门课程课时进行了压缩,教师根据课时也进行教学调整,随着课时减少,很多学生没有养成自学的习惯,导致教学效果不理想。《C语言程序设计》对大部分学生,是接触的第一门计算机语言课程;它学不好,直接影响到学生后面对计算机学科的学习,数据结构、算法分析等课程也就很难开展。根据以上现象,本文拟从教学内容、实验内容、课后思考以及考核方式等方面进行探讨,提出《C语言程序设计》教学改革方案;期望跟任课教师交流学习,共同提高教学质量,培养学生C语言的编程能力。
1 教学内容调整
由于C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到困难,迫切希望能找到一本容易入门、容易学习的C语言教材。对目前国内各高校使用教材分析发现,C语言教材章节安排一般如下:C语言概述,算法,数据类型、运算符与表达式、顺序程序设计、选择程序设计、循环控制、数组、函数、预处理命令、指针、结构体与共用体、位运算、文件等[1]。这样的安排很符合学习逻辑,但很多教材数据类型、运算符与表达式论述过多,弄的很复杂,在没有计算机组成原理的知识背景下对数据类型、码制等问题的学习,几乎不可能做到真正理解;如果在这些内容花过多篇幅描述,或花过多时间讲解,会把学生刚从第一章中学习了几个C程序例子激发学C语言的激情慢慢抹灭,甚至有的学生因为理解不了,对学C语言产生害怕的心理,不利以学生的学习。
针对上述问题,对教学内容调整如下。第一章概述精细讲解几个例子(输出、2个数加法、2个数最大数),第2章只精细讲解一个例子(5!阶乘),其他的例子简单讲解,第3章讲解数据类型时,只要求学生掌握基本数据类型定义,对基本类型存储、范围、类型转换可以后面章节例题中讲解。顺序结构可以跟基本数据类型合并起来讲解,使学生上机、实验都有了练习的内容,持续了学生学习C语言的热情。一般院校学生的学习主动性不是太好,保持学生的学习兴趣很重要。
2 实验内容思考
实验是提高学生实践能力的主要途径之一。在学习C语言过程中,经常会听到学生说:“上课我能听懂老师所讲的,下课让我自己编写程序,我就不知道怎么入手了。”这样的现象在刚开始学C语言的学生中普遍存在;这种现象会打击学生的积极性,也不利教师教学。在刚开始教学的章节,教师可以固化下简单程序编程的步骤。如一个程序体有4部分组成,变量声明(变量定义)部分、输入部分、数据加工、输出部分;通过输出思考程序输入,通过输入、输出来确定程序的变量,再通过原始数据推导数据加工。当学生把这几个问题都弄清楚了,也就能顺利写出程序。经过前面章节简单程序的编写,到函数章节时,再提高学生对复杂程序编写能力。
实践教学内容的设计上,以巩固和综合运用课程上讲解的主要知识点为主线,内容应该具有趣味性和实用性,以从简单到复杂的任务驱动方式,要求学生从一个代码较短的程序开始逐渐完成一个代码较长的实验程序的设计。要求题目可以如下:身高预测、模拟计算器、猜数游戏、小学生算术测试、餐饮服务质量打分、学生成绩管理、模拟数字式时钟等[2]。
3 课后习题思考
随着课程教学的改革,C语言课时也大大被缩减;但是编程能力提高唯一的方法就是多读程序多写程。一般院校学生学习的自觉性普通不高,这就要求教师督促和施压;因此,课后习题布置和课后指导学习是很有必要的。课后习题的布置,可以不局限于课本;比如国家计算机等级考试二级C语言的历年真题、国家软件资格水平考试程序员级别的历年真题等都是很好的题材;程序员考试的题目更注重学生的编程能力和程序的实用性。面授时间短、学生多等原因是教师不能回答每个学生的问题,所以教师也可以建立教学网站,方便随时跟学生交流、答疑,也方便教师把课程资源共享。
4 考核方式改革
编程能力是这门课程考查的重点。什么样的考查方式能更科学地反映学生的编程能力?一直是广大教育者思考的问题。传统的考核方式主要是以笔试,理论考试为主,这经常会出现“高分低能”的现象。
C语言的考试可以不进行理论笔试;期末考试以实践环节的考核加答辩的方式。 做到不仅考理论, 同时还要考实际编程能力。平时成绩、实践考核成绩、期末考试成绩按 20%: 20%: 60%的比例评定综合成绩。
实践考查方式如下。学生可以根据自己的能力选择相应题目,进行协作完成;考查题目:1)贪吃蛇游戏;2)蓝黄棋游戏;3)五子棋游戏;4)推箱子游戏;5)骑士游历问题;6)八皇后问题;7)C语言课程设计综合应用实例――学生成绩管理;不懂的学生可以通过跟其他同学协助讨论、查找资料实现程序;对学生考查,采用答辩的方式;从4个方面进行考查: 1)程序的运行情况。A、好;B、 中;C、 差。2)对程序的结构解释。A、 好;B、 中 ;C、差。3)对某些局部模块的详细解释。A、好;B、中;C、差。4)对某些语句的现场编写情况。A、好;B、中 ;C、差。这些题目难度多层次,要经过看书学习,查资料跟同学讨论协助完成;通过答辩,评定学生对理论知识、程序的掌握程度以及编程能力并给学生建议。通过这种方式让编程能力好的学生带动其他学生,让其他学生体会学习的乐趣,编程的乐趣;让同学间互相协助。经过实验这种方法可行有效,但需要教师答辩,花费教师过多时间。
5 结束语
《C语言程序设计》的教学改革应围绕“以课程知识点为核心,以提高学生程序设计能力为主线,培养解决实际问题的应用型人才为目标”的思想,抓好课程理论、实验、考核的每一个环节,重点突出理论与实践相结合[3],根据学生实际情况,因材施教;培养出应用型程序设计人才以及提高教学质量。社会需求、生源都在不断变化,教学改革是个永久性的课题,要求教育工作者与时俱进不断改革创新,寻求适合的教育方法。
参考文献:
[1] 谭浩强、C程序设计[M]、3版、清华大学出版社,2005、