APP下载

C语言教学中存在问题

2016-12-31林彬

环球市场信息导报 2016年9期
关键词:上机C语言程序设计

◎林彬

C语言教学中存在问题

◎林彬

C语言课程是理工科学生的一门重要的基础课程。本文针对C语言教学中存在的课程学时不足、学生的算法设计和上机编程能力薄弱等问题展开探讨,提出了相应的改革措施和建议。在实际的教学过程中,这些举措能有效地帮助学生更好地掌握程序设计方法,提高学生的编程能力,更好地达成教学目的。

C语言课程的地位

C语言是最重要和最流行的编程语言之一,无论在中国还是在世界各国,“C语言程序设计”始终是高等院校的一门最基本的计算机类基础课程。虽然在过去的十余年中,许多人从C转而使用更强大的C++语言,但C仍然有其自身的优势,而且它还是通往C++的必由之路[1]。

作为面向过程的程序设计语言的代表,C语言是一门非常好的教学语言。通过学习C语言,学生可以掌握自顶向下、逐步细化的结构化编程方式,以及模块化的设计,这一点是至关重要的。可以毫不夸张地说,学不好C语言课程,也就难以学习理解后续的“面向对象程序设计”、“数据结构”等一系列计算机类相关课程的内容。因此,理工科相关专业学生必须掌握使用C语言进行程序设计的基本知识和技能,为进一步学习与应用计算机打下坚实的基础。

教学中的存在问题及探讨

在C语言教学过程中,学生普遍认为C语言概念复杂、语法细节繁琐,解题常常没有思路,一上机写程序就出错,出错了也不知问题所在。结合近几年的教学经验,笔者归纳出当前C语言教学中存在如下几个方面的问题。

课程设置缺乏科学性。C语言课程主要包括顺序、选择、循环结构程序设计,数组、指针、结构体等数据类型,函数的调用,以及文件操作等内容。总的来说,内容相对繁多,细节较为繁琐。且对于初学者来说,数组、指针类型的使用等内容概念复杂(尤其是指针),理解比较困难。笔者认为,合理的课时安排应为64学时。在实际情况中,考虑到C语言课程作为计算机类课程的主要先修课程,往往设置在本科一年级。而同时进行的还有数学、英语等重要的基础课程,也需要占据大量的课时。所以,对于本科一年级学生的教学计划和课时安排往往是非常紧凑的,部分高校对于C语言课程的设置仅为48学时。由于理论学时和上机学时不充足,教学效果自然也就难以得到保障。

如何在学时不足的情况下达到教学目的,这就要求教师改进教学方法,运用现代化的教学手段,注重自身业务素质的提高,切实提高教学效率和教学质量[2]。教师应充分备课并明确教学重点及教学难点,在课堂上主要介绍编程思路和怎样用C语言去实现算法,不要孤立地逐一介绍语法的细节,对于一些非教学重点内容(诸如运算符的优先级等知识点),应引导学生自学完成。因此,有必要对授课计划精心组织,本着强化算法、弱化语言的原则,即把解题思路、方法、步骤当做授课的重点,培养学生分析与解决实际问题的能力。

学生的算法设计能力薄弱。编写一个C程序,首先需要设计算法,然后再考虑适合的数据结构,并用C语言将算法实现。程序的灵魂是算法,而算法的设计是灵活且富有技巧的,需要学生主动思考,这对于初学C语言的学生来说极具挑战。

教学过程中,应改变传统灌输式教学模式,转而采用问题启发式教学,活跃学生思维,引导学生积极思考,而不是被动地接受和理解课本中的算法步骤。应遵循以下四个步骤来解决问题:一是分析问题,明确要做什么;二是给出求解问题的算法流程图;三是根据流程图编写程序代码,四是运行程序,输出最终结果[3]。值得注意的是,流程图对于算法的分析与表示至关重要,教学中必须要求学生看得懂流程图、会画流程图,并且根据流程图能够顺畅地写出程序代码。对于递推、递归、穷举等基本方法,及常用的查找、排序等算法,应让学生有所了解并适当记忆。

学生的上机编程水平亟待提高。学生的上机编程能力普遍不能令人满意,遇到编写程序(尤其是规模稍大一些的程序),往往无从下手[4]。一些学生学习完C语言课程,仍然停留在只会照抄或记忆课本中程序的水平,抑或自己写的寥寥几行代码,根本不考虑编程规范,编译报错看不懂英文提示信息,运行出错也不懂得如何打断点调试程序。这样的情形是非常常见的。

教师在给学生讲解示例程序时,应重点指出关键之处,以及容易出错的地方,要求学生通过自己上机实践来理解程序设计方法[5]。对于常见的编译时错误,可以做一次归纳讲解,但应注意培养学生根据错误提示信息独立分析错误的能力;对于运行时错误,教师应演示并详细讲如何打断点、跳断点、单步执行等常用的调试步骤,必须要求学生掌握程序的调试方法。殊不知,编程水平就是在不断的调试程序、修改错误的过程中潜移默化地不断提高。

此外,笔者由于在从教前具有多年的软件开发从业经验,深知养成良好的编程习惯的重要性。平时应多提醒学生注意变量命名、程序缩进与对齐、添加必要的注释等问题,对于学生今后从事软件开发行业是必须的准备工作。

应该说,提高上机能力也终究还是一个孰能生巧的过程,大量的编程实践是根本。应强调学生多写程序(争取每天编程一小时),并鼓励学生自己写程序,从最简单的程序开始,从而循序渐进,积小胜为大胜。遇到复杂问题应逐步细化,采用模块化设计方法,通过编写函数来解决问题。

C语言难,难在入门。笔者在企业工作时也曾面试过一些本科毕业生,遗憾的是,部分学生经过大学四年的学习,也仍然没有掌握程序设计的基本方法,甚至连一个小程序也写不出来。因此,教师在教学过程中还是应强化算法、弱化语言语法,注重培养学生的独立学习、独立思考、独立解决问题的能力。C语言是一门实践性很强的课程,不断思索如何提高学生的上机编程能力,对于教师来说,应是重中之重。

(作者单位:桂林理工大学 理学院)

广西高等教育本科教学改革工程2015年立项项目(2015GJB252)资助;2014年桂林理工大学《数据分析》教学方法改革立项资助

猜你喜欢

上机C语言程序设计
周金应
标准化护理程序对体外膜肺氧合术患者上机各阶段用时的影响
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
上机数控“可疑”的高毛利率
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
论子函数在C语言数据格式输出中的应用