首页 > 范文大全 > 正文

由一道例题引发的思考

开篇:润墨网以专业的文秘视角,为您筛选了一篇由一道例题引发的思考范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文以VFP教学为例,通过对循环语句中给出的一道例题,提出了在程序设计语言教学中如何培养学生编程的兴趣和技巧。在教学过程中应因材施教,引导学生在课堂上积极思考,提高分析和解决问题的能力。

关键词:计算机程序设计;学习能力;兴趣

中图分类号:G642 文献标识码:B

文章编号:1672-5913(2007)10-0083-03

1引言

目前,国内绝大多数高校的“计算机程序设计语言”这门课程一般是选择一门语言进行教学。按传统的教学模式,把计算机程序设计作为一门语言来进行讲解,注重语言的基本语句、语法和一些细节的分析,按部就班地依照语言教学的规范,进行“字”、“词”、“句”的讲解,使学生原来很高的学习热情,由于枯燥、乏味的语法和过分的细节约束而失去了对该门课程的学习兴趣,往往产生畏难的情绪。究其原因,是因为教学没有站在如何应用计算机工具编程解决实际问题或实际项目的角度,没有把逻辑与编程思想放在主体地位,没有教给学生如何分析和解决问题,其结果是教师教得很辛苦,学生学得很模糊,遇到问题不知如何分析,好像是在学习第二门外语,而不是程序设计。

根据以上情况,本人在进行实际的教学过程中进行了改革,改变传统的教学方式,利用实验室多媒体的教学优势,在讲解循环语句时做了尝试。实践证明,课堂气氛活跃,互动性强,有利于学生共同参与讨论,锻炼学生的学习能力和创新思维,提高了学生的学习兴趣。

2问题的提出

首先,从一道例题着手分析。

例1:要求输出如下图形:

*********

*********

*********

*********

*********

*********

*********

分析该图形的输出,不难得出如下的结论,该图形输出7行,每行输出9个“*”。

给出伪代码:

for i=1 to 7

? “*********”

endfor

思考:如何用双重循环来实现该图形的输出,给出伪代码,并给出适当的说明。

for i=1 to 7&&输出7行

? && 换行输出

for j=1 to 9

?? “*”

&& 每行连续输出9个“*”

endfor

endfor

从本例中逐步引导学生对于图形的输出由单循环向双重循环过渡,为后面的例题讲解做好准备。

例2:输出如下图形:

*********

*********

*********

*********

*********

*********

*********

通过本例的分析,使学生知道该图形与前面的图形仅仅在输出的格式上有所区别,其他一点也没有改变,对原先的程序只要略做修改就能得到结果。

for i=1 to 7

&& 输出7行

? space(7-i)

&& 换行、每行输出“*”前,输出的空格数与行数存在7-i的关系。

for j=1 to 9

?? “*”

&& 每行连续输出9个“*”

endfor

endfor

课后思考:输出如下图形

*********

*********

*********

*********

*********

*********

*********

3循序渐进,把问题引向深入

具备了上述两个例题的基本知识,就可以逐步把学生的思路引向深入,参与分析与讨论,让他们在学习中有自己解决问题的方法,增加师生之间的互动性。

例3:输出如下图形

*

***

*****

*******

*********

***********

*************

从例2的分析可知,使学生在原来程序的基础上进行修改。对图形的分析发现,输出的“*”为7行,每行输出“*”的个数分别1、3、5、7、9、11、13,在每行输出“*”前应输出的空格数分别为6、5、4、3、2、1、0。通过分析能得到如下的关系:

对例2的伪代码只要稍做修改,就能得到输出该图形的伪代码。

for i=1 to 7

&& 输出7行

? space(7-i)

&& 换行、每行输出“*”前,输出的空格数与行数存在7-i的关系。

for j=1 to 2*i-1 && 每行连续输出2*i-1个“*”

?? “*”

endfor

endfor

课后思考:输出如下图形

*

***

*****

*******

*****

***

*

绝大多数同学提出的想法是把该图形分成两部分输出,第一部分为前4行,第二部分为后三行。这是一种常规的思维模式,是在前面讲解知识的基础上,通过自己的思维,得出的结论。那么,该程序有无技巧可言呢?先提出这样的问题,然后要求同学们共同讨论,分析其中行、个、空格数之间有无关系。

同学们通过观察发现三者之间存在某种联系,关键是如何知道其中的推导关系。

在得出行数和每行输出的个数及每行输出空格数之间的关系后,问题便迎刃而解了。在原来伪代码的基础上进行修改就可以了。

for i=1 to 7&& 输出7行

? space(1+abs(4-i))

for j=1 to 7-2*abs(4-i)

?? “*”

endfor

endfor

课后思考:输出如下图形

1

A

222

ABC

33333

ABCDE

4444444 ABCDEFG

33333

ABCDE

222

ABC

1

A

4结束语

通过讲解、分析利用双重循环实现不同图形的输出,同学们积极参与讨论,本次内容由简到难,通过不断的提问和分析,使学生参与其中,形成师生互动,改变传统的老师讲学生听的教学模式。课后走访一些学生,他们一致认为这样的形式教学效果好,学生也乐于接受,而且课后布置的作业也很快完成了。

参考文献

[1] 王鸿磊,张雪松. 程序设计基础教与学的新模式[J]. 计算机教育,2006,(11):53-54.

收稿时间:2007-2-15

作者简介:陶建平,男,江苏科技大学南徐学院

E-mail: