APP下载

基于能力培养的C语言上机实践课程教学探究

2018-10-21赵晓华

高教学刊 2018年16期
关键词:C语言程序设计

赵晓华

摘 要:为了更好的提升C语言上机实践课程的授课效果,提高学生程序设计的能力,帮助学生更好的掌握C语言的基本语法,建立良好的编程习惯,文章分析了目前该课程上机存在的问题,并针对存在问题提出了对策和方法,通过这些方法在实践教学中的应用,有效地提升了实践教学效果。

关键词:C语言;上机实践;程序设计

中图分类号:G642 文献标志码:A 文章编号:2096-000X(2018)16-0118-03

Abstract: In order to better improve the teaching effect of computer practice course in C language, improving students' programming ability, helping students better master the basic grammar of C language and establishing good programming habits, this paper analyzes the problems existing in computer practice of this course at present, and puts forward countermeasures and methods aiming at the existing problems. Through the application of these methods in practical teaching, teaching effects are effectively improved.

Keywords: C language; computer practice; program design

前言

C语言因其运算符丰富、语法灵活、程序书写自由,能针对硬件编程等特点而得到广泛的应用[1]。目前各大院校的多个专业开设了该门课程。对于计算机相关专业的学生来说C语言是他们学习其他语言的基础,学好该课程能帮助学生掌握程序设计的基本思想、建立良好的逻辑关系,培养软件开发的基本技能,对于非计算机专业的学生,C语言能够帮助同学了解程序设计的基本逻辑,对于培养学生良好的逻辑思维能力有较好的帮助,从而帮助学生学习其他课程[2]。

一、C语言上机教学中存在的问题

C语言语法多。程序逻辑复杂,为了使学生更好掌握该门课程的基本知识,上机环节是不可缺少的[3]。上机实践能帮助学生理解基础语法,通过程序调试,捋顺逻辑关系,掌握程序撰写中语法的规范表达,用户思想的程序逻辑表示,然而在上机实践中,学生编译程序会出现很多问题,根据调试结果存在的程序错误提示不能很好地修改程序,主要存在以下问题:

(一)语法表达错误

C语言语法特别多,而且语法表达稍有不妥,程序就运行不下去,单纯的讲解语法,因其多且学起来枯燥,授课效果并不好,学生因为基本语法不清,语句顺序混乱导致程序运行不下去。

(二)逻辑表达错误

程序调试过程中逻辑表达错误,程序逻辑不通,加之学生普遍英文水平欠佳,对于程序调试过程中给出的改错信息不能很好的理解,从而导致程序修改不得当,程序调试不下去,自己编写的程序代码运行不出结果,久而久之就挫伤了学生学习该课程的积极性。

(三)上机实践准备不够充分,学生缺乏动手主动性

教师下发上机任务后,学生对作业没有做足上机前的准备,不是带着编程的逻辑来上机,学生仓促上机编写程序,程序编写的思路不清晰,导致上机中程序调试不下去,从而影响了上机效果。

(四)上机任务没有新意

很多C语言教材中的案例以数学问题为主,直接给出了数学模型,学生觉得没有新意,不能较好的理解计算机工作的真正意义,调试程序频繁出错,又不知道错误原因,这就极大挫伤了学生学习的积极性,实践课的作用大大被削弱了。

上机实践是C语言课程教学的重要环节,通过上机实践,学生能够较好的掌握C语言的语法,及时发现自己理论学习存在的不足,从而加强语法学习,理解基础语法在编程中的重要性,通过上机任务程序代码的编写和程序的调试,使学生了解理解C语言的逻辑表达,并能够正确的应用C语言提供的关系运算、逻辑运算准确、严密的表达实践任务的逻辑需求,从而能够灵活应用这些逻辑在C语言中描述实际问题,更好的利用该门语言解决实际问题。

二、C语言上机实践教学的改进

针对目前C语言实践课程中存在的问题,对C语言上机实践教学提出了改进措施,以更好的做好C语言实践教学,提升教学效果,切实提高学生的编程能力、分析问题的能力、构造算法的能力、C語言语法学习和应用的能力。

(一)明确目标,激发兴趣

C语言上机实践一定要有明确的目标,使学生有学习的动力和深入学习的兴趣。上机目标分为知识目标和能力目标,能力目标力在掌握C语言的概念和语法,能力目标着重培养编程能力。教师设计上机任务单,下发上机内容,让学生很清楚知道上机的目的和意义,从而做到有的放矢。例如:在学习C语言输出函数printf()时,知识目标力在理解输出函数中格式控制符和参数的意义和作用。能力目标重在培养学生练习题中输出函数的灵活应用。教师设计任务单,任务单内容分为两部分:理解语法,巩固课堂知识;编程练习,灵活运用。任务单详细设计见表1。根据练习掌握的情况,在编程题中如何根据输出要求书写输出格式控制,这样的方式有助于学生了解上机的侧重,又不挫伤学生学习的热情从而使学生较好的掌握输出函数格式控制,达到练习的目的。

(二)教师提前下发任务,学生课前精心准备

在每次上机之前,教师下发上机任务单,学生根据任务单设计程序编写思路,回顾课堂教学内容,动手撰写程序语句,并对自己编写的程序阅读分析,检查程序设计是否完成题意的要求,这样有效的节约了时间。上机的重心是验证程序的语法表达、逻辑思想,上机前的深思熟虑,上机调试中问题的检查分析,有效的提升上机实践效果。

(三)纠错整理,提升编程能力

在程序调试过程中,因为书写或程序逻辑表达错误、语法错误等原因往往导致程序运行不下去,学生因为底子差,语法掌握不好、逻辑思路不清等原因往往查不出程序错误所在,教师在上机实践中加以引导和协助纠错,学生这次记住了下次又不会了,那么整理自己调试中存在的问题就很重要。一般的语法错误,编辑程序时,系统会根据行做提示,学生无需读懂错误提示行的全部信息,将这些常见错误整理,多次上机之后,学生自己就具备了纠错的能力。C语言常见的语法错误如下:

1. 变量定义时不符合变量定义规则,不区分大小写;

2. 程序编写中的符号中英混用;

3. 变量在使用前没有值;

4. 输入输出格式控制与前面的定义不匹配,导致得不到正确答案;

5. 选择、循环嵌套控制语句格式不正确;

6. 数学函数调用没有书写#include“math.h”命令行;

7. 函数调用却没有声明;

8. 调用函数时实参形参类型、数目不匹配;

9. 语句结束没有分号;

10. 关键字拼写错误。

例如如下的错误提示:

Error E:\WinTc\WinTc\frist.c 5 :Function call missing)in function main

学生无需全部读懂,只需要依据关键字“Error”知道有错;“5” 意思是错在第五行;“missing)”漏掉了括号,全部意思就是第五行少了一个“)”。

由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改。在程序书写中有很多错误提示,也许是由一条语句错误产生的,只要修改了这条错误,其他错误会随之消失。一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。调试程序是一个艰苦、心细、又有技巧的事,只有经常上机多调试程序,才能不断地积累经验、提高程序调试技能。

(四)循序渐进,逐步提升

实践任务以知识线索和教学内容来设计,对学生知识能力运用具有较强的针对性。教师还应根据学生的实际水平准备上机任务,太简单了,学生敷衍了事,觉得没有意义,太难了,学生没有思路,无从下手,又会挫伤学习的积极性。因此教师在布置上机任务时应循序渐进,以课堂案例为切入点,逐步加深难度。以循环嵌套为例,教师讲述的案例是菱形图案的输出,那么上机案例可以这样设计,上机任务与课堂案例有相似之处,还是图案设计、双重循环嵌套,但是程序的难度却在逐渐增加,学生可以根据自己的实际情况选择完成。具体设计见表2。

这样,一个又一个任务的实现会帮助学生建立编程信心,从而从心底愿意进一步学习,建立扎实的编程基础。

(五)精选上机任务,注重趣味性

在设计上机任务时,教师应注重學生解决实际问题能力的培养,注重实践任务的趣味性,让学生在任务分析中掌握程序设计的逻辑,在上机调试中能灵活运用学习的算术运算、关系运算、逻辑运算等表达任务中描述的问题,以调动学生编程的积极性。例如顺序结构的练习中,大象喝水问题、选择结构中石头剪刀布游戏设计、循环结构中猴子吃桃问题等。这些都是非常有意思的题目,能够有效激发学生思考的兴趣,学生根据题意,建立编程的逻辑思想,设计算法,并利用学习的基本语法编写程序,并上机调试验证,通过自己编写调试程序,学生会有一种成就感,从而为下一步学习奠定基础。

(六)教师讲评,鼓励为主

每次实践课程教师都应该耐心解决学生上机调试程序中存在的问题,引导学生自己查错,分析问题原因所在。上机实践课程教师都应给予效果讲评,对学生上机中咨询较多的问题做总结,并分析再举例做讲,使存在的问题在第一时间得到消化和解决。对学生实践教学效果的评价基于多鼓励、多赞赏,促使学生建立学习信心,及时解决自己存在的问题。

(七)一题多解,精益求精

C语言的难点是算法,但是在实际学习中,学生学习的难点却在语法的学习和掌握上,为了使学生掌握这些繁杂的语法,在上机练习时,教师要求学生在解决问题时尝试两种或者两种以上的方法,这样既能帮助学生学习语法,又能加强学生对语法的理解。在选择结构中,这种练习方式尤为凸显。例如:选择结构分为单分支和多分支,单分支是用if结构就能完成,但是多分支使用if-else-if和if-if-else嵌套均可完成,有些问题使用switch()开关语句实现更为简洁方便,这些多分支结构既有公共点,又有自己的特点,在解决多分支问题时,同学们尝试用多种方式去实现,自己总结,能较好的帮助学生理解和掌握语法,以便更好的掌握选择结构。再例如循环结构,循环结构有while构成的循环、do-while构成的循环和for语句构成的循环,这些循环结构有相同之处,又有自己的独特之处,一题多个程序设计的编写,学生能够非常清晰的区别和理解这些语法的侧重。

(八)勤于阅读,学习编程逻辑

C语言中诸多的语法是学习难点,是C语言学习的基础,逻辑表达是关键,比较难以理解和掌握,要较快较好的掌握这些繁杂的语法,复杂的逻辑,理解各种运算符构成的表达式,阅读程序是非常有效的方法。通过阅读经典的程序,一则理解程序中基础语法的应用,二则理解现实问题如何通过C语言的方式表达,三则能借鉴程序中的逻辑思路,为自己今后动手实践提供帮助。例如:在判断一个输入的数是否为素数程序中引入了标志位变量,利用标志位的状态判断输入的数是否为素数,这个方法就可以在密码验证程序中借鉴。两个程序相同之处是:

1. 循环条件满足,循环体需要继续执行;

2. 判断条件成立强行退出循环体。

两个程序代码对比如下(图1、图2)。

密码登陆界面问题的难点在于密码判断正确就退出,不正确就再次输入继续判断,引入标志位就很好解决。学生拿到这个问题不知道如何表达逻辑思路,从素数判断案例程序中编程思路得到了很好的启发,问题迎刃而解。

三、结束语

学习C语言知识是个逐步积累的过程,通过上机任务实践,才能发现问题,通过程序的反复修改调试才能逐渐掌握诸多的语法知识,提升自己的编程水平和解决实际问题的能力。在C语言教学中,通过以上的举措,学生的学习的积极性明显提高了,学生的动手实践能力得到了很好的锻炼和提升,C语言课程实践教学取得了显著的教学效果。然而教学方法探索是一个长久的过程,在今后的教学实践中,教师在教学方法,教学策略等方面还应不断的总结和提升,更有效的激发学生思考问题的能力,提升学生实践技能的培养。

参考文献:

[1]卫军超.C语言教学改革探讨与实践[J].创新教育论坛,2017,3:[2]李玉双.C语言程序设计的教学探究[J].教改理论,2015,10:807-809.

[3]张婵.计算机C语言实验教学改革探讨[J].山东工业技术,2014,08:116+113.

[4]李杰.C程序设计语言教学改革与实践[J].信息系统工程,2016,11:50-51.

[5]宋欣,张斌.面向能力培养的C语言程序教学方法研究[J].中小企业管理与科技,2017,10:120-131.

猜你喜欢

C语言程序设计
基于OBE的Java程序设计个性化教学研究
基于Electron.js的风向玫瑰图绘制程序设计与实现
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职计算机C语言教学的探讨与研究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值