《C语言程序设计》教学之体会
2012-02-15母景琴
母景琴,詹 胜
(1. 唐山师范学院 计算机科学系,河北 唐山 063000;2. 唐山师范学院 数学与信息科学系,河北 唐山 063000)
《C语言程序设计》教学之体会
母景琴1,詹 胜2
(1. 唐山师范学院 计算机科学系,河北 唐山 063000;2. 唐山师范学院 数学与信息科学系,河北 唐山 063000)
针对目前计算机专业《C语言程序设计课程》的教学现状,基于明确“两个思想”和坚持“一个主体”,深入阐述了《C语言程序设计》课程中对教学内容的把握,教学环节的构建以及教师自身能力的提高三个方面的体会。采用的教学态度,方法和手段行之有效,受到学生一致认可。
C语言程序设计;教学体会;两个思想;一个主体
C语言是大多计算机专业学生接触的第一门计算机语言,入门比较困难。本文基于明确“两个思想”(一是提高教师自身专业和人格素质,是学生“学”好的重要前提,二是激发学生“学”的兴趣和热情是学生“学”好的精神动力)和坚持“一个主体”(坚持教学以学生为主体),阐述在C语言教学过程中如何把握教学内容、构建教学环节和提高自身教学能力。
1 教学内容的把握
1.1 三种基本结构的把握
对于初学者来说,编程能力的培养不仅仅是掌握语法的规则,更重要的是了解程序本身的基本结构。程序的三种基本结构包括顺序结构、选择结构和循环结构[1]。对顺序结构和选择结构的理解,学生通常易于掌握,然而对循环结构则相对困难。为了让学生更好的理解循环结构,教师需要从计算机的本质入手来引导学生理解循环。计算机从本质上来讲只会做简单的重复性的操作,比如加法操作,而且,做简单的重复性的操作是计算机的特长。重复性的操作就是循环。计算机语言中的循环结构包含三个方面:循环的初始条件,循环体也就是重复性的操作,还有循环的结束条件。为了加深学生对循环结构的理解,可以拿生活中的循环类比,比如走路就是循环,如果从宿舍走到教室的话,从宿舍出发是循环的开始条件,循环体是迈左脚,迈右脚,循环的终止条件是到教室。也可举例数学上的求和问题,比如求1到100所有的整数之和,循环体为前n项和等于前n-1项和加上第n项。循环的开始条件是n为1,循环的结束条件是n为100。掌握循环结构的基本构成后再去编写符合C语言语法的程序,更容易上手。
1.2 函数和指针的把握
函数是C程序的基本单位,是利用C语言进行结构化程序设计的基础。函数调用是C程序中数据传递的基本方式。程序中数据的传递就像人体的血液一样,对程序的运行起到至关重要的作用,因此函数的定义和调用是教师教学中的重点,如何把普通变量做参数和数组名作参数两种传递数据方式的本质与过程讲清楚,就成为教师教学中的难点。初学计算机语言的学生往往理解不了程序内部数据的抽象流动过程,在讲解的过程中要为学生画出数据在内存中的赋值与传递情况,从数据存储及数值变化的角度阐述数据的传递。
如果说函数解决了数据传递的方向问题,指针就是数据传递的具体实现。指针操作是一把双刃剑,可以使程序变得简洁,也会因指针的指向发生混乱而造成数据操作出错甚至内存读写出错。为了能更深刻的理解指针和使用指针,对于任何一个指针来讲,都要从四个方面去把握,分别是:(1)指针的类型;(2)指针所指向的类型;(3)指针所指向的内存区;(4)指针本身所占据的内存区。再有,指针操作其实都是对内存中的数据进行的操作,因此,在讲解指针操作时候画图演示其过程。
1.3 算法知识的扩充
当学生掌握了程序的基本结构和程序中数据传递的方式和方法之后,制约编程能力发展的问题就是把实际问题转化成为计算机程序的算法问题[2]。由于C语言程序设计课程中更偏重于基本程序的编写,因此很多C语言教材涉及到的算法知识很少。这就会造成学生在独立编写程序时,不知道从何处下手,或者只是停留在能运行出想要的结果的角度,不会从算法的时间复杂度和空间复杂度上去分析程序的效率。例如逆序存放数组元素,学生在写程序时,经常会把逆序输出认为是逆序存放,或者再定义一个数组,把元素逐个赋值,前者的问题在于不懂得数据在计算机中的存储结构,后者的问题是不知道再定义一个数组会增加空间复杂度。像这些问题都要等到后续的数据结构课程或其他算法设计课程中才能学习到。因此从一开始的C语言教学过程中,就适当补充算法知识是非常必要的,有利于学生对编程更深层次的理解;同时等到学数据结构或其他课程知识的时候,学生很容易把所学和新知识联系起来,进而提高学习新知识的兴趣和学习的主动性。
2 教学环节的构建
2.1 如何更快地让学生掌握语法
语法是写程序时应该遵守的规范,死记硬背语法起不到良好的学习效果,可采用创设情境的方法,在程序示范过程中,故意创设出不符合语法的小环节,程序经过运行,出现差错,引起学生的注意和兴趣,再慢慢分析程序,找到问题出现的原因,进而深入地了解语法的使用。
2.2 如何更快地让学生读懂程序
读程序是学生编程的基本功,读高质量和高效率的程序也是提高编程能力的捷径。他人编写的优秀程序也可以“拿来”应用到自己的程序中,前提是要把程序看懂看透。因此,在教学的过程中,要多选择一些优秀的程序做案例,具体讲解程序的运行和数据的传递过程,点评程序的好坏,对程序的结果做出预测和分析,也可以对程序做部分修改,引导学生进行发散性思维。
2.3 如何更快地让学生学会编程
编程习惯的养成,编程能力和编程思想的培养,都需要实际的编程练习。对于初学计算机语言的学生来讲,上机编写程序是很困难的事情,经常会出现上课听得懂、上机脑子空白现象,因此教师应根据课上讲授内容多为学生设计一些题目,并在学生上机的过程中加强辅导和监督,纠正学生在编程中的不良习惯,并让学生体会到编写程序的成就感,提高学生编程的积极性。当然,辅导并不是把学生所写的程序的错误都找出来,而是引导学生利用调试的方法或者实际案例的方法去寻找各种错误,培养学生独立编写和调试程序的能力。
3 教师自身能力的提高
3.1 重视教师示范作用
课堂教学,将语法知识的讲授时间压缩到最短,让学生有大概的了解,然后给学生作示范,教师根据授课的内容选择实际的问题进行分析,并将其转化成为程序,在课堂上亲自动手将其写出来。在写程序过程中,注意程序书写中的各种问题,比如变量名有意义,语句的书写对齐等。教师的示范是学生学习编程的第一步,其示范的好坏直接影响着学生编程习惯的培养,因此,教师不但要提高知识的讲授能力,也应该不断提高自己的编程素质。
3.2 和学生加强交流和沟通,做学生的良师益友
教师要不断精进自己的专业素质和人格魅力,做学生的良师。一个优秀的教师会激发学生学习的兴趣,并对其学习和生活产生深刻的影响。提高教师自身的素质是提高教学质量的关键环节。
[1] Harvey M. Deitel, Paul J. deitel. C程序设计经典教程[M].北京:清华大学出版社,2005:41-43..
[2] 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社, 2005:14-35.
(责任编辑、校对:田敬军)
Some Experience in Teaching the C Programming Language
MU Jing-qin1, ZHAN Sheng2
(1. Department of Computer Science, Tangshan Teachers College, Tangshan 063000, China; 2. Department of Mathematics and Information Science, Tangshan Teachers College, Tangshan 063000, China)
According to the current teaching situation of the C programming language, the means of “tow ideas” to clear and “one subject” to assist are introduced. Some experience of grasping the content of teaching, construction of teaching and improving of the ability of the teacher are deeply studied. The teaching attitude, methods and means are so effective that they are approved unanimously by the students.
C programming language; teaching experience; two ideas; one subject
TP311
A
1009-9115(2012)02-0114-02
2011-03-22
母景琴(1980-),女,河北卢龙人,硕士,讲师,研究方向为图像处理技术。