优胜从选择开始,我们是您最好的选择!—— 中州期刊联盟(新乡市博翰文化传媒有限公司)
0373-5939925
2851259250@qq.com
我要检测 我要投稿 合法期刊查询
您的位置:网站首页 > 优秀论文 > 正文

启发式教学在中等职业学校程序设计教学中的应用

作者:杨一戈来源:原创日期:2012-09-13人气:602
中等职业学校的学生,由于缺乏相应的知识背景,加上程序设计语言本身的命令、语法众多,要求严谨,难以理解,所以在初学程序设计时难度很大,如果我们只是按照教材给学生讲解大量的概念、命令、语法、程序设计的方法,学生就会感到不仅内容枯燥,而且还容易对程序设计产生畏学心理,所以教师要善于用生活实例把枯燥无味的“语言”讲得生动、活泼,让学生积极地参与到教学活动中,以此来提高学生的学习兴趣和分析、解决问题的能力。
程序设计教学中,变量值的交换和数据比较、排序、查找是中等职业学校的学生在初学程序时比较难理解和掌握的几个问题。在教学时,教师可以用学生易于理解的生活实例对学生进行引导和启发。
实例一:“冷、热水交换”,交换变量的值
程序要求:交换两个变量的值,如A=3,B=4要求交换后A=4,B=3
启发过程:有两杯水,一杯是热水,一杯是冷水,现在要把两个杯子的水互换,怎么做?
所有学生都回答“再找一个空杯子……”,这样我们把自己的想法用计算机能理解的命令实现,热水(变量A),冷水(变量B),空杯子(变量T)
经过三个步骤,A、B变量的值已互换。一个看似简单的问题,如果只对学生讲解几个命令行,学生都难以理解,但结合生活中学生易于理解的实例进行讲解,学生就容易理解得多,这个问题是数据排序的基础,掌握了数据交换才可以解决数据排序问题(实例三)。
实例二:“比年龄”,找最大数和最小数,
程序要求:输入10个数,找出其中的最大数和最小数。
启发并提问:把10个同学中年龄最大和最小的同学找出来,怎么做?所有的学生都表示能做到,并提出自己的方法。
我们参照其中一个学生提出的完整做法:
1.第一个同学先站出来,旁边画两个圈,表示年龄“大”和年龄“小”;
2.叫出第二个同学,如果其年龄比第一个大则该同学站在“大”的位置,如果比第一个小,则这个同学站在“小”的位置;
3.接着下个同学出来,和“大、小”两个位置的同学进行年龄比较:如果其年龄比站在“大”位置的年龄大,则这个学生站在“大”的位置;如果其年龄比站在“小”位置的年龄小,则这个学生站在“小”的位置。
按这样的方法,重复第3步直至完成第10个学生的比较,最终站在“大”位置的学生就是年龄最大的,站在“小”位置的学生就是年龄最小的。
复习:在程序设计中,判断用if语句;重复执行的程序段,可以用“循环语句”。If语句和循环的执行过程最好用流程图给学生讲解以便于学生理解。
接下来,和学生一起设计程序。有了整体思路以后可以采用学生说老师写或直接让学生写程序的方式,让学生积极参与设计过程,以VFP语言为例程序代码如下(其它语言类似):
Input"请输入一个数:"toa
Max=a&&以第一个学生为参照,Max就年龄"大"的位置
Min=a&&Min是年龄"小"的位置,
Fori=1to9&&提问:为什么是9?
Input"请输入一个数:"toa&&提问:为什么还要写这个语句?
Ifa>max
Max=a
Endif&&提问:以上三个语句的作用是什么?
IfaMin=a
Endif&&提问:以上三个语句的作用是什么?
Endfor
"最大数:",max,"最小数:",min
要求学生一定把程序写成“锯齿型”结构,这样便于程序调试。
实例三、“比个头,按高矮排好队”,进行数据排序。
程序要求:把10个数按大小顺序排列出来。
启发:上体育课了,把10个同学按高矮顺序排列成一行,让学生说出自己的思考及实际做法。
选取一个学生的做法,让他把自己的做法对大家说出来。他的完整做法是这样的:第一轮,第一个位置的学生和第二个学生比较,如果第二个学生比第一个高,则第一个学生和第二个学生交换位置,接着站在第一个位置的学生(可能是已经交换过位置的学生)和第三个学生比,如果第三个学生比第一位置的学生高,则交换位置,按此方法,当完成和第10个学生的比较后,第一个位置站的就是10个人当中最高的;第二轮,找出第二个位置的学生和第三个位置的学生比,如果第三个位置学生比第二个高,则第二个学生和第三个学生交换位置,接下来和第四个、第五个学生比较……,第二轮结束后,第二高的学生已经排在第二位置,以此类推,直至第九轮完成第9个学生和第10个学生的比较后,10个学生就按高矮顺序排好了。
把该生的做法转换为VFP的程序段如下(其它语言方法类似),
可和学生共同完成。
Fori=1to9&&提问:“为什么i不是10?”,学生:“比9轮就行了”
Forj=i+1to10&&提问:问什么j=i+1?此处是难点,老师要多做启发
Ifa(j)>a(i)&&提问:比如第四轮的时候,第四个学生首先和谁比?
T=a(j)
A(j)=a(i)A(i)=t
&&提问:“这三个语句的作用是什么?”,
学生:“数据交换”
Endfor
对于程序设计中提出的问题,要让学生先思考然后再做解答,一定要充分调动学生参与思考,对于各种结构及语句的应用一定要给学生讲清楚,如果学生不明白,要让学生联系实际并逐句解释,让学生弄清每个语句及整个程序的作用,直至完全理解并能按照自己的思维方法写出程序为止。这个实例运用了顺序、选择、循环等三种程序结构,弄懂该程序,对学生进行入门编程及思维的训练有较大的帮助。
对于数据的查找,可以先让学生做这样一个练习:在10个排好序的数中查找是否有某个数。要求学生把自己的做法“告诉”计算机(写程序),学生一般用的都是顺序查找的办法,学生完成后,再把二分法查找的思路给学生进行介绍。对学生可用“按宿舍号找宿舍”的例子进行启发,然后让学生对两种方法进行比较,哪种方法效率更高(时间开销最小),当学生听说用二分法在1000个数中找某个数只要比较10多次就可以时感到很惊奇,这时用“按宿舍号找宿舍”为例给学生讲二分法查找,学生都很能够理解。
初学程序设计的学生,通常是不经过太多的思考就设计程序并且马上运行,这样做往往不是出现语法错误就是逻辑错误,所以要让学生在设计程序时多思考(对具体问题多思考)、多联系(多联系生活实例)、多检查(命令和语法拼写、逻辑思维的转换和实现),教师最好把调试程序的各种方法介绍给学生,学生通过对程序执行情况的分析,可以找出自己的思维错误,对提高学生思维的逻辑性,严密性将大有帮助。
总之,在程序设计的教学时,教师一定善于联系生活,找到学生已经掌握或易于理解的例子,尽量把各种程序设计的问题实例化,逐步引导、启发学生,让学生主动去思考、去创新和尝试,这样不仅可以提高学生学习程序设计的兴趣,还可以推动学生入门程序设计的进程。

网络客服QQ: 沈编辑

投诉建议:0373-5939925    投诉建议QQ:

招聘合作:2851259250@qq.com (如您是期刊主编、文章高手,可通过邮件合作)

地址:河南省新乡市金穗大道东段266号中州期刊联盟 ICP备案号:豫ICP备2020036848

【免责声明】:中州期刊联盟所提供的信息资源如有侵权、违规,请及时告知。

版权所有:中州期刊联盟(新乡市博翰文化传媒有限公司)

关注”中州期刊联盟”公众号
了解论文写作全系列课程

核心期刊为何难发?

论文发表总嫌贵?

职院单位发核心?

扫描关注公众号

论文发表不再有疑惑

论文写作全系列课程

扫码了解更多

轻松写核心期刊论文

在线留言