实例拓展法在结构化程序设计教学中的应用

时间:2022-10-28 07:22:57

实例拓展法在结构化程序设计教学中的应用

摘要:本文提出将实例拓展法应用于程序设计课程的教学中,介绍结构化程序设计课教学过程中如何选择实例,以引导学生循序渐进地理解相关概念和编程方法。实践证明,通过教学方法的改进,学生的学习积极性和学习效果整体有了明显提高。

关键词:程序设计教学;实例拓展法;结构化程序

0 引言

在传统的结构化程序设计课程中,教师往往按照知识点的先后顺序和难易程度讲解程序的基本结构。在课堂上也只是列举一些典型例题来引导学生理解所讲内容,例子之间可能没有内在的逻辑关系。因此,常常造成学生只能靠死记硬背学习程序结构的各种语句,不能真正理解为什么使用这样的方法编写程序,无法达到灵活应用的教学目的。为此,在教学过程中,应该选取更加合适且具有合理的逻辑关系的例子,便于学生深入理解相关知识。

1 实例拓展法的原理

实例拓展法属于教学模式的一种,其显著表现是教师的教和学生的学,都是围绕实例来完成,使得学生通过积极主动地运用学习资源,进行自主探索和互相协作学习,在完成教师教的实例同时,产生新的实例的一种学习实践活动。它有利于培养学生的自主学习能力和独立分析问题、解决问题的能力,尤其适用于计算机课程的教学。

2 实例拓展法的应用

下面以VB程序设计课程为例,来说明教学过程中如何选择合适的实例,以便于学生的拓展学习。所用实例分为两大类,一类在教师课堂讲解时使用,另一类在学生上机练习时使用。

1)课堂讲解所用实例。

课堂实例的精心设计是教学设计的关键。实例的安排应考虑学生心智发展水平、不同年龄阶段的知识经验以及生活中的实际需求。实例的拓展难度应该由浅入深,让大部分学生通过思考都能完成,并且要能够充分包含所讲授的知识点,能够很清楚地说明问题。

结构化程序设计的课程内容主要包括5大部分:顺序结构、选择结构、循环结构、数组应用与过程设计。在教学过程中一定要遵循课程内容之间内在的逻辑关系,由浅入深、循序渐进地讲解。

下面列举出讲解结构化程序时所用的实例,程序代码从略。

例1顺序结构程序举例:输入圆的半径,计算圆的面积。介绍程序的基本组成,包括数据输入、数据处理和数据输出3个部分。

例2选择结构程序举例:对例1进行拓展,让学生思考,如果输入的半径小于0时该如何处理。引入选择结构的if语句。

例3选择结构程序举例:通过键盘任意输入三个数,求它们的最大值和最小值。介绍if语句的两种格式(单行格式和多行格式)。

例4选择结构程序举例:求分段函数的值。介绍两种多分支结构的语句格式(if语句和Select Case语句)。

例5循环结构程序举例:在窗体上显示1-10之间的奇数。引入循环结构For…Next语句。

例6循环结构程序举例:对例5进行拓展,让学生思考,如何实现求1-10之间的奇数之和。

例7循环结构程序举例:对例6进行拓展,求1+3+5+7+…的值不超过100时的最大奇数。引入循环结构Do…Loop语句。

例8数组应用举例:对例3进行拓展,让学生思考,如何实现求10个数的最大值和最小值。引入数组的概念和静态数组的使用方法。

例9数组应用举例:对例8进行拓展,让学生思考,如何实现求任意多个数的最大值和最小值。引入动态数组的使用方法。

例10过程设计举例:对例3进行拓展,将求三个数的最大值和最小值分别定义成两个函数,并调用函数。引入过程的概念以及Function过程(即函数)的建立和使用方法。

例11过程设计举例:对例10进行拓展,将求三个数的最大值和最小值分别定义成两个Sub过程,并调用Sub过程。引入Sub过程的建立和使用方法,并与Function过程进行对比。

以上的实例主要是在引入相关概念和讲解程序基本原理时使用的,需要在多个课时中讲解。根据所讲内容的课时安排,可适当补充其他实例,更加详细地讲解相关知识,也可以补充一些比较有趣实用的综合例子,如制作计算器、打印九九乘法表、求素数、求水仙花数和完全数等,以扩展学生的思路和眼界。

2)实验练习所用实例。

上机实践是学生巩固课堂所学知识的必要阶段,是检验学生学习效果的有效手段,对提高学生的自主学习能力和实际操作能力具有极其重要的作用[2]。为了让学生能够有效利用上机练习的宝贵时间,教师需要给学生提供一些与课堂讲解实例有关,而且比较典型的练习题,让学生通过思考去独立完成,这样可以使学生深入理解所学知识,灵活掌握编程技术。

下面列举出以上课堂讲解部分对应的上机练习所用实例,程序代码从略。

练习1顺序结构程序练习:输入圆柱体的底面半径和高,计算圆柱体的体积。让学生练习数据输入、数据处理和数据输出三部分的相关语句。

练习2选择结构程序练习:输入两个数,按从大到小的顺序输出这两个数。让学生练习选择结构程序的相关语句。

练习3选择结构程序练习:输入一个学生成绩,判断其所在的等级(大于90为优秀,大于80为良好,大于60为及格,小于60为不及格)。让学生练习选择结构程序的相关语句。

练习4循环结构程序练习:求1-2+3-4+5-6+……+99-100的值。让学生练习循环结构程序的相关语句。

练习5循环结构程序练习:输出1~100之间的偶数,并显示为10个数一行。让学生练习循环结构程序的相关语句。

练习6循环结构程序练习:输入多个学生成绩,计算平均成绩,要求当输入一1时停止计算。让学生练习循环结构程序的相关语句。

练习7数组应用练习:先随机生成30个0-1000之间的随机数,再求这一组数的最大值和最小值。让学生练习数组的定义和使用。

练习8数组应用练习:先随机生成30个0~1000之间的随机数,再显示这一组数中的所有奇数,每10个数一行。让学生练习数组的定义和使用。

练习9过程设计练习:定义一个求阶乘的函数Fact,并调用函数求任意输入的一个数N的阶乘N!。让学生练习Function过程(函数)的建立和使用。

练习10过程设计练习:定义一个求阶乘的Sub过程Fact,并调用该过程求任意输入的一个数N的阶乘N!。让学生练习Sub过程的建立和使用。

在上机练习时,教师应当遵循以下原则:尽量让学生自己完成拓展实例及创新实例,要给学生留出思考、探索、醒悟的时间,并把握好信息反馈,及时了解学生的学习进展及存在问题,在恰当的时候予以点拨。

3 教学效果

笔者通过多年的教学实践工作进行总结和检验,发现使用实例拓展法教学之后,学生从学习兴趣、课堂反应到作业成绩以及考试成绩等各方面都有了明显的提高和改善,学生能够从中学到自己需要的知识,并真正将其转化为实际应用,设计出实用的小软件来,对于他们将来学习其他知识和提高计算机操作水平都有很大的促进作用。

以下为近四年来采用实例拓展法教学之后学生的出勤率、作业成绩和考试成绩的对比图表。通过图表可以看到,通过教学方法的改进,学生的学习积极性和学习效果整体有了明显提高。

4 结语

实例拓展法在程序设计课程的教学过程中发挥着越来越重要的作用,一方面教师通过举例可以把知识点讲解得更清楚,还可以进一步延伸新的实例,对后续的课程讲解做好铺垫,打好基础;另一方面学生在实例的驱动下思考和学习,能够帮助他们理解所学知识的逻辑关系和整体结构。

在具体的教学过程中不能一成不变,必须要明确教学目的,灵活运用,还要注意与其他的教学方法有机地结合,这样才能激发学生兴趣,挖掘其内在潜能,提高技能,培养创新意识,发展个性。

上一篇:浅析新形势下职业中专学生思想教育现状与对策 下一篇:西部高校“计算机应用基础”教学改革探索