程序设计语言类课程教学选题方法探讨

时间:2022-09-26 10:13:35

程序设计语言类课程教学选题方法探讨

摘要:程序设计课程几乎是所有高校理工科专业的基础课,对枯燥琐碎的语法细节必须辅以例题讲解。以C语言为例,结合教学经验,对程序设计语言类课程的教学组织和教学选题方法进行总结和探索,形成了一套行之有效的教学选题方法,对提高教学效果有明显帮助。

关键词:程序设计;C语言;教学选题

中图分类号:G434文献标识码:A文章编号:16727800(2012)008021702

作者简介:鲁萍(1979-),女,西安建筑科技大学理学院讲师,研究方向为计算机仿真、计算机网络、多媒体技术。

0引言

程序设计课程几乎是高校所有理工科专业的基础课,以培养学生实践创新能力为导向,增强学生程序设计能力为目的。这类课程在课堂授课中对枯燥琐碎的语法细节必须辅以例题讲解,选择恰当的例题能有效地提高教学效果,有助于学生掌握程序设计的思想方法,培养逻辑思维能力。以《C语言程序设计》课程为例,笔者在多年教学中总结了例题选择的一些基本原则和方法,对提高教学质量有明显帮助。

1避繁就简,用完整程序辐射零散知识

C语言教学离不开繁琐的结构及语法细节的学习,不利于从整体上掌握C语言,而且过分琐碎可能会打击学生学习兴趣,从而丧失学习的动力。笔者认为学习C语言应避繁就简,用完整程序辐射零散知识。

比如函数的基础知识包括:函数的定义、声明、调用,函数的返回值,函数的形参和实参,这些知识点可以融进一个典型例题里。例如,从变量定义开始,逐条执行语句,通过多媒体动画演示计算机所对应的操作:①主函数为变量a、b、c分配存储单元;②键盘输入为变量赋值;③主函数调用自定义函数max:为形参x、y分配存储单元并由实参a、b进行值传递;④为变量z分配存储单元;⑤执行if语句为z赋值;⑥返回主函数,带回z值赋值给c,之后释放xyz的存储单元;⑦输出函数。以上每一步都有相应的程序流程动画演示,让学生可以深刻理解程序的执行以及函数的基础知识。通过动画演示存储单元分配的过程,学生易于理解,并为后面数组元素和数组名作为函数参数区别打下铺垫,也为局部变量概念打下铺垫。

2以C语言编程为主,数学模型构建为辅

《C语言程序设计》课程对理工科各专业学生来说,其意义在于让学生掌握程序设计的思想方法,培养逻辑思维能力,能够将自然语言描述的问题转化为计算机语言描述。因此,选择算法案例时尽量避开复杂的数学计算,多选用有实际生活参考的应用算法。

比如古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少?

要解决这个问题需要两个步骤:①构造数学模型;②编程序,将数学模型用C语言表示。这个问题的数学模型是 Fibonacci数列,要讲清楚如何构造出这个数学模型很麻烦,使一些学生因听不懂算法失去继续学习的兴趣。而C语言教学的任务是将一个已经构建好的数学模型用C语言表示出来。因此,对于这类问题应尽量避免讲解构建复杂数学模型,只要求学生对给出的模型进行编程即可。

再如第二章算法,例子非常多,而且大部分例题需要较为复杂的算法,如果每题都把精力集中在具体的算法研究上,可能就会让学生陷于算法的迷宫中而迷失方向。应用短小典型的算法例题说明流程图表示问题即可。

3难点分散,化整为零

第四章输入输出函数的格式规定是C语言中非常繁琐的一部分内容,讲起来枯燥无味,学生自学也是毫无头绪。掌握这部分内容的最好方法是上机实践,观察不同符号的输出格式变化。可是在教学实践中,当学生学到这部分内容时还不具备良好的自主编程能力,很多学生会因此失去信心。鉴于此,笔者对这部分教学内容进行调整,不再专题讲授,而是分散教学。在前三章的教学例题中,注意选择恰当的输入输出语句,让格式由易到难,让学生见一个记一个。以笔者部分教案为例说明,列出以下例题中出现的输入输出函数及教学提示。

printf ("This is a C program.\\n"); //输出字符串

printf(“sum is %d\\n”,sum);// %d 格式串输出整数

scanf("%d,%d",&a,&b); // 输入 ,%d整数,&

printf(“The area is %f”, a);// %f 输出实型

printf("%c %c\\n",c1,c2);// %c 输出字符型

通过前三章的例题,学生已经熟悉printf函数,在第四章对前面的格式综合小结,学生很快就能掌握基本格式。scanf格式雷同,scanf的讲解重点是输入数据格式。选择例题要前后呼应,前面的例题尽量为后面的知识作铺垫,讲解时稍加提示,即可达到难点分散的目的。

4前后呼应,环环相扣

例题不但要反映本章节的知识重点,还要成为后续章节例题的铺垫,难度逐渐加深。先让学生解决最简单的问题 , 从易到难,依次提高问题的难度。学生对前期简单任务掌握较好,添加新知识时可以把精力集中在新知识上。如果每个章节的例题都独立无关联,则学生除了掌握新知识还要努力学习新算法,使重点不突出。笔者以教案中的部分例题系列为例进行说明。

例1:键盘输入2个整数,交换输出(第三章)。

知识点:C语言程序初步,输入、输出函数, 2个变量的交换。

例2:键盘输入2个数,求两个数的最大数 (第四章)。

知识点:分支结构、if语句。

例3:键盘输入10个数,求其中最大数(第五章)。

知识点:单循环结构,while、do while、for语句。

例4:键盘输入10个数,找到最大数置于最后一个位置(第六章)。

知识点:一维数组、循环(例3)、分支(例2)、交换(例1)。

5结语

在程序设计语言类课程中,精心组织教学内容,设计挑选课堂例题能起到事半功倍的效果,在完成教学任务的同时也能抓住学生的兴趣。根据例题进一步设计习题作业,通过举一反三的方法能有效地强化学生程序设计能力,培养逻辑思维能力。

参考文献:

\[1\]谭浩强.C程序设计\[M\].北京:清华大学出版社,2005.

\[2\]宋毓震,李兆锋.C语言教学的实践与思考\[J\].内江科技,2007(7).

\[3\]杨理云.《C语言程序设计》教学方法探索\[J\].中国成人教育,2007(5).

\[4\]李豫颖.C语言教学改革浅见\[J\].贵州教育学院学报:自然科学版,2008(9).

\[5\]张庆岚.梯式教学法在C语言教学中的运用\[J\]. 长江大学学报:自然科学版,2008(4).

\[6\]鲁萍,候筱婷.应用型本科计算机图形学实践教学环节改革\[J\].软件导刊,2011(6).(责任编辑:余晓)

上一篇:图世界 第9期 下一篇:任职教育院校计算机基础课程教学实践改革研究