高中VB程序设计中“循环结构”的教学设计研究与实践

2019-01-26 10:27孙旭萍
速读·下旬 2019年1期
关键词:VB程序设计教学设计

孙旭萍

摘 要:高中阶段《算法与程序设计》模块的教学采用VB程序设计语言,其中涉及顺序结构、分支结构和循环结构及对应语句的教学,“循环结构”程学设计是重要的环节,奠定了学生读程序、编程序能力的基础,笔者从教学目标的设置、教学方法和教学策略的选择、教学活动的实施、教学内容和练习形式的整合、教学评价的实施等方面进行研究、实践,针对高中VB程序设计中“循环结构”的教学设计提出自己的一些见解。

关键词:VB程序设计;“循环结构”;教学设计

高中信息技术课程选修模块之一的《算法与程序设计》的教学,旨在让学生体验寻找算法并利用计算机编程解决实际问题的过程,培养学生设计简单程序的技能,另一方面是为了提高学生的信息素养和计算思维能力。但是该模块的内容难度较大、较抽象,学生不宜理解,其中“循环结构”的教学是重点和难点,需要学生具有较强的逻辑思维能力,很多学生都会在这个环节的学习遇到障碍。

用怎样的教学方法和教学策略来设计教学,很大程度上影响了教学效果。教学设计就是运用系统方法将学习理论和教学理论的原理转换成对应的教学目标、教学方法和教学策略、教学内容、教学评价等环节的具体设计并创设教学活动的系统过程。本文以高中VB程序设计中“循环结构”的教学为例,针对高中VB程序设计中“循环结构”的教学设计提出自己的一些见解。

一、对“循环结构”程序设计的教学设计进行研究与实践的重要性

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结構。它可以降低重复输入代码的工作量,提高效率,这是最能体现计算机程序设计解决问题优点的程序结构。因此,对于程学设计初学者来说,最基本要求就是要能充分理解循环结构的基本思想,并熟练掌握循环结构程序设计的技巧。

完善和理解流程图、强调语法格式、分析代码执行过程、案例分析、布置作业及讲解,这是大多数教师对循环结构教学所采用的常规教学流程。这种流程以VB程序设计语言的理论知识为主线,重点强调知识的传授,忽略了学生知识建构的过程,不利于学生对算法思想的理解、建构和计算思维的培养。导致学生的“学”过于死板,不能实际运用到解决实际问题上去,不利于提高学生的学习积极性,让算法与程学设计的学习流于形式,效果欠佳。

教学设计要从“为什么学”入手,确定学习目标,进一步确定教学内容,分析教学中要解决的问题,选用相应的教学策略,最后对教学的效果进行全面的评价,以达到“教”与“学”最优化的目标。因此“循环结构”的教学设计也是非常重要的。

二、“循环结构”程序设计的教学设计研究与实践

(一)教学目标的确定

教学目标是指在教学活动中希望学生通过学习达到的学习成果,即通过教学让学生发生某种变化。因此要确定好学生的起点和预期位置,即做好学情分析。

本课程的教学对象是高中生,程序设计的初学者,具备最基本的算法思想,在循环结构的学习前已经具备顺序和分支两种结构程序设计的基本知识,能够利用顺序结构和选择结构程序设计解决一些简单问题。循环结构是顺序和分支两种结构的深入,更是后续章节中典型算法学习的知识准备,掌握好循环结构的编程,可以利用单层循环和嵌套循环解决数组的使用,并对程序的阅读起到至关重要的作用。

高中VB程序设计“循环结构”的教学目标是:①充分理解循环结构的含义和执行流程;②能用循环结构解决实际问题,并得到算法模型;③掌握和理解For-Next和Do While-Loop语句,并能应用到程序设计中去实现算法,体验成功的快乐。

(二)教学方法和教学策略的选择

基于以上教学目标,分析在目标达成过程中的教学重点和难点,选择合适的教学方法,确立行之有效的教学策略。程序设计语言是一种工具,学生在掌握各类语句语法结构的基础上,更重要的是引导学生经历分析问题、寻找解决问题的算法、编写程序、调试程序等用计算机解决问题的过程。

笔者结合多年的教学实践,采用“问题——任务驱动”的教学方法,通过层层设置问题、逐步引申,引导学生在主动思考的过程中提升计算思维的能力,达到较好的教学效果。“问题——任务驱动”教学方法是根据教材内容、学生的认知规律和生活实际,以问题为核心、任务达成为目标的教学方法。主要流程是:提出典型问题(激发学生的求知欲)——分析问题解决的设计思路和方法(引导主动思考,设计算法)——提出拓展设计任务(引导学生讨论、分析和完成设计任务)——归纳总结。

在整个流程的实施过程中“问题”和“任务”的设计是关键,需和教学内容紧密结合,在任务的驱动下逐步完成教学活动,从简单到复杂,循序渐进地完成一系列任务,引导学生养成主动学习和思考、探究学习、协作学习、终身学习的习惯。

(三)教学活动的实施

1.循环结构的提出

问题引入是整个教学活动中相对比较重要和关键的部分,良好的开端有利于后续教学活动的开展,因此引入循环问题的案例要简洁,能够体现循环结构算法逻辑思想即可。很多教师往往会选择经典案例“计算s=1+2+3+4+……+100的和”,但是该案例中需要介绍的知识要点较多,比如循环语句的语法格式、循环结束条件的控制、循环的执行过程、循环变量的变化、累加器的作用等,这样过于复杂的例子不利于学生初次学习循环结构的程序设计,也不利于学生算法模型的建构。

因此在引入问题的选择上,笔者更侧重于选择能够体现循环的意义且只需利用学生最基本的逻辑思维能力去思考找到解决问题算法的案例即可。笔者以打印“生日快乐!”为例,提出以下问题:①在第一行中打印“生日快乐!”,怎么实现?②打印5行“生日快乐!”,怎么实现?③打印1000行“生日快乐!”,怎么实现?学生一般很容易回答前两个问题,多数会采用顺序结构的程序设计,针对问题③多数初学者可能给不了理想的答案。此时就是引出循环概念的最佳时机,通过该问题解决的分析,执行第一个循环结构的案例程序,只要3条语句就能代替1000条语句完成任务,通过以上活动让学生充分理解循环的含义:反复执行语句,降低重复输入代码的工作量。

2.循环语句For-Next的学习

高中VB程序设计中循环语句以For-Next和Do While-Loop的学习为主,笔者认为For-Next语句更易被学生接受,适合学生初次接触循环结构。以下是问题③的For-Next代码(图1):

演示程序运行结果,暂不对语法结构进行说明。而是提出以下问题:①Print语句重复执行了几次?②控制Print语句执行次数的变量是什么?③循环何时结束?在这几个问题的基础上继续提问:④循环语句主要的3行语句的执行逻辑顺序是怎样的?通过这个问题的分析,笔者给出循环语句For-Next流程图(图2)。在展示流程图后提问:⑤循环结束后循环变量t的值是多少?⑥流程图中“t=t+1”在代码中如何体现?从问题⑥引出保留字Step的作用即使用方法。通过以上几个问题引导学生对循环语句For-Next的学习,并在学习的过程中确定循环的几个要素:循环变量、循环变量初值和终值、循环体、步长,最终得出For-Next语句的语法格式。笔者认为让学生在认识具体循环语句的过程中得出一般格式的认知过程比一开始就给出的方式更适合没有任何编程基础的学生学习。

在学习一般格式后,继续提问:⑦步长Step能否为负数?⑧如果步长Step为负数,循环结束的条件又会有什么不同?最后让学生自由改变循环变量初值、终值和步长,并阐述这些值的修改对程序的影响和程序运行的结果。

3.拓展练习

在完成循环语句学习后,可用经典案例“计算s=1+2+3+4+……+100的和”來检验学生对循环语句的理解和应用。在解决的过程中引入了累加器的知识,并延伸到累乘的计算。

在此基础上,笔者再次提出累加算法的变式:“计算s=1+2+3+4+……+n≥100中n的最小值”。提问:能用循环语句For-Next完成计算吗?如果能,循环变量、初值、终值分别是什么?很显然,这个问题将学生拉入了更深层次的思考,从而引出循环语句Do While-Loop的学习。

4.循环语句Do While-Loop的学习

因为有了For-Next语句学习的基础,笔者介绍Do While-Loop语句更容易被学生接受,学生可以自主的分析循环条件和循环体,尝试真正去理解循环结构执行流程的含义,流程图和代码分别如下图3、图4。通过比较教学,学生讨论、探究、归纳出:For-Next语句适用于确定循环次数的问题;Do While-Loop语句适用于确定循环条件的问题;有些问题两者皆可用,有些问题只能选其中一种语句执行。

笔者最后再提出问题:在图4中若将语句“n=n+1”和“s=s+n”对换,会给程序带来怎样的影响?针对这个问题的解答,学生必须真正理解循环语句的执行顺序,并清楚每个变量在执行过程中的变化,才能给出正确的答案,得出结论:这样的改动会导致循环变量s在累加的过程中出现不满足循环条件特征的时候,变量n依旧执行了n=n+1,这样使最后输出的n的值大了1,所以要得到正确结果必须要修改Print语句为:Print“n=”,str(n-1)。学生体验到了语句的顺序会影响程序的执行效果。

以上贯彻整个教学活动的10个问题环环相扣,层层深入,引导学生理解循环结构的含义和执行顺序,并初步体验了For-Next语句和Do While-Loop的使用。

(四)教学内容和练习形式的整合

为了能够更深入的理解、使用“循环结构”程序设计,在以上教学活动的基础上,可对教学内容进一步的整合,拓展知识点。在此阶段,教师可通过案例讲解和任务分析,引导学生体验循环结构其他功能方面的应用,比如素数的判断、水仙花数的例举等来探讨如何提前结束循环、如何嵌套使用循环结构。

在练习形式的选择上也可多样化。在教学中发现,如果让学生自己设计算法,编写全部代码解决问题,可能大部分学生无法自主顺利完成,这时我们往往会采用先模仿例题,但是又会出现生搬硬套,当问题发生一些细小变化,又会出现无从下手,做不到举一反三。笔者建议可先做一些程序阅读题,加强学生分析程序执行过程的能力,在这个过程中建议学生可以用列表的形式记录每个变量在程序执行过程中的变化;对于层次低的学生或者较复杂的程序,可以设计一些程序填空题,加深对算法程序的理解;对于一些层次较高的学生或者稍大型的程序,可引入模块处理的思想,将程序分解为若干个模块,再将各模块再分解为更小的子模块,层层分解,层层组织,提高学生分析问题、解决问题的能力,提升编程能力。

(五)教学评价的实施

根据“循环结构”程序设计教学目标,需对学生的掌握情况和能力的提升进行评价,这也是重要的一个环节。评价可以是过程性评价、总结性评价,形式可多样化,但衡量的标准不外乎以下几个方面:①是否理解“循环结构”的含义?②能否说出循环结构的执行流程?③能否正确理解各个变量的含义?④能否说出循环终止的条件?⑤能否读懂程序,正确预测程序的运行结果?⑥能否提出算法、设计程序、选用合适的语句解决实际问题?以上评价的标准层层递进,越往后对学生的要求更高,针对不同层次的学生,我们可以提出不同的要求,达到鼓励、促进的作用

三、总结

高中《算法与程序设计》模块的“教”与“学”是学生计算思维培养的主阵地,“循环结构”程序设计的教学又是其中非常重要的一个环节,奠定了学生读程序能力、编程序能力的基础。以上教学设计是笔者在不断的教学过程中针对零基础初学者,在教学目标的设置、教学方法和教学策略的选择、教学活动的实施、教学内容和练习形式的整合、教学评价的实施等方面的一些研究和实践,旨在提升学生分析问题、解决问题、相互合作的能力,采用“问题——任务驱动”的教学方法能够更有效地将教学目标落到实处。

参考文献

[1]李建峰,车轩.关于VB课程中“For循环语句”教学设计的研究[J].内蒙古师范大学报,2011(1).

[2]吴育含.VB程序设计中“循环结构”的教学方法改进[J].福建电脑,2015(7).

[3]张广群,汪杭军,王保平.问题驱动模式在VB教学中的应用研究[J].计算机教育,2008(22).

猜你喜欢
VB程序设计教学设计
浅析VB程序设计教学方法的改革
《电气工程毕业设计》 课程的教学设计
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
马克思主义基本原理概论课案例教学的几点思考
VB程序设计的教学改革思考
食品专业的《VB程序设计》教学方法探究