非计算机专业C语言程序设计教学方法研究
2020-10-09杨传栋范昊王志军张亮
杨传栋 范昊 王志军 张亮
[摘 要] 从教学方法、实践教学、成绩考核以及学生的学习方法等方面分析高校非计算机专业的C语言程序设计课程教学过程中存在的问题。根据作者自身的实践经验,以激发学生学习兴趣和主观能动性为目标,对教学方法和成绩考评方法等进行改革,重点阐述了一些行之有效的方法和措施。
[关键词] C语言;程序设计;教学方法;课堂教学
[基金项目] 2019年度教育部产学合作协同育人项目(第一批)“面向企业需求的学生创新能力培养模式研究”(201901117012)
[作者简介] 杨传栋(1969—),男,山东泰安人,工学计算机专业博士,山东农业大学信息科学与工程学院副教授,主要研究方向为计算机网络、算法设计、深度学习等;范 昊(通信作者)(1978—),男,山东泰安人,工学计算机专业博士,山东农业大学信息科学与工程学院副教授,主要研究方向为计算机网络、Petri网理论与应用等;王志军(1974—),男,山东济南人,工学计算机专业博士,山东农业大学信息科学与工程学院副院长,副教授,主要研究方向为计算机网络、农业信息化等;张 亮(1979—),男,山东泰安人,工学计算机专业博士,山东农业大学信息科学与工程学院教授,主要研究方向为计算机网络、农业信息化等。
[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2020)36-0284-02 [收稿日期] 2019-12-26
一、引言
C语言是许多高校非计算机专业学生学习程序设计的首选语言[1-4]。对非计算机专业的学生而言,学习本课程的目的除了让学生掌握程序设计基本知识,学会编写简单的C语言程序,提高使用计算机解决本专业实际问题的能力外,更重要的是培养并提高学生的“计算思维”能力和创新能力[5]。但实际的教学效果却并不十分理想,很多学生都是学完了课程却不会编程,更不用说计算思维和创新能力的培养[1-4]。2018年6月,教育部发出了全面振兴本科教育的号召,要求“对大学生既要有激励也要有约束,要改变考试评价方式,严格过程考评”,扭转“玩命的中学、快乐的大学”现象[5]。本文分析C语言程序课程教学过程中存在的主要问题,以提高学生学习主观能动性为目标,根据作者多年的思考观察和实践经验,提出了一些行之有效的教学改革方法和措施。
二、C语言程序设计课程教学中存在的问题
1.教学偏重语法规则,忽略编程能力培养。程序设计主要完成两件事情,一是找出问题的求解思路并设计算法;二是根据算法编写并调试程序。显然找出问题的求解思路并设计算法是程序设计的核心和重点。但在实际的教学过程中,繁杂的语法细节会使初学的学生应接不暇渐渐失去学习的兴趣和动力,也使得老师对算法本身设计思想和设计方法的关注度大大降低。习题和试卷内容通常也过分偏重语法知识,忽略了算法设计和实现能力的训练及考查,从而引导学生的学习方法也更加侧重于“记忆”而弱化了实际动手编程的训练。
2.传统课堂教学方法难以激发学生学习的主动性。多数老师仍采用传统的“老师讲学生听”的“满堂灌”“填鸭式”教学方法,这种方法在教授程序设计这种实践性很强的课程时往往显得力不从心。尽管老师在讲台上讲得头头是道,例题演示也细致入微、面面俱到,但学生在整个上课过程中只是被动听讲,缺乏独立思考,参与度不高,以致学生难以集中精力听讲,上不了几次课学生就会逐渐丧失学习热情,教学效果大打折扣。
3.实践教学只注重模仿性训练,缺乏启发性引导。实验教学是学生发挥主观能动性,尝试利用所学知识解决实际问题,进而锻炼提高自己的计算思维能力和创新能力的重要教学环节。但实际教学过程中,许多老师对实验环节只是让学生重复或模仿课上例题,不给学生布置启发性的需要经过思考才能完成的题目;只强调基本语句使用方法的训练,忽略学生独立思考和独立解决问题能力的培养。学生上机大都照本宣科,以看到程序运行出正确结果为目的,很少关注问题求解的过程本身,更不要说举一反三,去尝试用同样的方法解决其他问题,或是考虑用其他方法来解决同一问题。
三、改善C语言程序设计课程教学的措施
针对教学中存在的问题,作者在实际教学过程中不断摸索实践,总结出了几条行之有效的改进措施,在教学过程中应用后取得了很好的教学效果。
1.结合大数据、人工智能等新兴热点,向学生讲解计算機在各行各业中的重要作用,强调程序设计是计算机应用的基础,从而让学生理解开设C语言学设计课程的目的,端正学生学习本课程的态度。
2.采用案例教学方法,突出程序过程讲解。对初学编程的人来说,必须先掌握C语言的一些基本语法才能进行编程。上课时先讲清楚例题所要解决的问题本身,再探讨解决思路并总结出算法过程,然后再结合算法的实现讲解每个步骤所用到的语法知识。这样既加强了程序设计思维方式的培养,又将烦琐的概念和语法知识点都分散到不同的例题中去。
例如,我们的第一堂课从“Hello world”程序的编写开始。第二个例题是编写计算圆面积的程序。这样两个例题基本涵盖了第一次课所要讲授的所有知识点,同时整个讲解的过程也暗示了结构化程序设计“由顶向下,逐步细化”的思想,潜移默化中将这种思想灌输给学生。
对整个课程而言,前期的主要教学任务是基本语法知识的学习和代码编写能力训练,因此选择的例题通常是一些较为简单的问题,但随着课程的逐渐深入,设计选择例题时应该逐渐加大难度,同时通过讲解一些解决典型问题所需的经典算法来重点训练培养学生的问题分析能力和算法设计能力。
3.精心设计实验内容,激励并引导学生独立思考。实验课的目的是通过让学生编辑调试自己所编写的程序来发现并改正其中的错误,以此激发学生的学习兴趣,巩固所学知识和提高编程能力。为了提高学生实验课的效率,需要将实验内容作为作业至少提前一天布置给学生,并要求上机前事先在纸上完成,这样就可避免课上现场编程导致的实验任务不能完成的问题。为了照顾不同层次的学生,实验内容分为基础内容和提高内容两部分,基础内容为必须完成的任务,占实验评定成绩的80%,提高内容难度稍大,一般2个题目,每多完成一个题目增加10分。同时,为了防止个别学生抄袭别人的程序代码,老师在评定成绩时应做到仔细认真严格要求,发现问题及时处理。
4.改革成绩考评方法,发挥考试的激励与诊断反馈功能。目前我校C语言程序设计课程成绩的构成是平时成绩占30%,期末考试占70%。平时成绩由考勤情况并参考实验和作业的完成情况决定,不能反映真实的平时学习情况。期末考试70%的占比过高,导致学生不注重平时学习,只注重期末突击。为了约束学生的学习行为,真正考查学生平时的学习情况,必须对这种成绩考评方式做出改革。
四、结束语
教学是老师“教”和学生“学”两个方面构成的一种师生共同认识和实践的活动[3],但在C语言程序设计课程的教学过程中,教师往往更关注教法而忽略学法,强调老师的主导作用而忽略了学生的能动性,因此应该在激发学生的学习兴趣,发挥学生的主观能动性方面进行教学方法的研究和改革。作者以此为出发点,结合“实践、认识,再实践、再认识”的认知规律,在教学中对课堂教学过程、实验组织过程以及成绩考评的方法及过程进行了初步的改进并取得较好的效果,但如何深层次地从“学”的角度激发学生的学习积极性,更好地发挥学生的主观能动性,仍需进一步探究。
参考文献
[1]莫玲,姚屏.非计算机专业C语言教学方法探讨[J].教育教学论坛,2019(2).
[2]赵娟.C语言理论教学中师生互动模式研究[J].教育教学论坛,2019(9).
[3]袁赟,朱鸿鹏.基于层次模型下C语言程序设计课程教学改革的思考[J].科技视界,2018(9).
[4]李长明.C语言实践教学改革探索[J].黑龙江科学,2019(1).
[5]于晓强,赵秀岩,闫丕涛.计算机程序设计课程中计算思维能力的培养[J].计算机教育,2011(7).