例谈算法与程序设计模块中循环结构的教学策略

发表时间:2020/10/28   来源:《教学与研究》2020年10月下   作者:丁伟
[导读] 循环结构是高中信息技术选修模块《算法与程序设计》中的重要内容,也是算法部分的重点和难点,学生理解起来难度较大,应用更是无从下手,如何帮助学生度过这道坎,增强学生借助算法与程序设计解决实际问题的信心及能力,成为困扰信息技术教师的一个难题。

江苏省东海县房山高级中学,丁伟 222341

【摘要】循环结构是高中信息技术选修模块《算法与程序设计》中的重要内容,也是算法部分的重点和难点,学生理解起来难度较大,应用更是无从下手,如何帮助学生度过这道坎,增强学生借助算法与程序设计解决实际问题的信心及能力,成为困扰信息技术教师的一个难题。本文结合笔者多年的教学实践,对循环结构教学的整体思路进行了梳理,阐述了循环结构教学过程的组织和实施策略,以期给广大信息技术教师提供实践参考和必要的启发。
【关键词】算法与程序设计  循环结构  教学策略
        一、循环结构的教学目标和整体教学思路
        1.循环结构的教学目标
        在循环结构程序设计中,着眼于知识、能力和情感三个纬度,教学目标应设置为:
        (1)充分理解循环的概念,理解循环结构的基本思想和语法规则;
        (2)掌握For/Next和Do While /Loop循环的基本结构,理解其执行过程;
        (3)能选择合适的循环结构编写简单的程序,解决实际问题;
        (4)培养学生利用循环思想解决实际问题的能力,激发学生学习编程的兴趣,提升学生的信息素养。
        2.循环结构的整体教学思路
        循环结构教学的整体过程可分为四步:首先,从最基本的图形输出问题引出循环的概念,并用流程图分析执行过程,帮助学生直观理解“循环”的含义。接着,给学生介绍用于循环次数已知的For/Next循环,然后针对不能预先确定循环次数的循环问题,引出Do While /Loop循环,最后,借助一系列案例,帮助学生内化知识,形成技能,提升素养。
        二、教学过程的设计与组织
        1.引入典型案例,建立对循环的初步认识
        (1)引入问题
        为减少示例代码对学生理解“循环”含义的影响,引入的案例需脱离程序设计语言的约束,能够纯粹地体现循环的含义,让学生以最基本的逻辑思维能力去思考,找出求解的算法。因此,笔者以“在窗体上显示5行‘VB欢迎你’”开始入手,引导学生讨论输出100行相同内容的方法,引发学生对“需要反复操作”的关注,建立“循环”的概念。此时,教师执行一个For/Next示例程序(代码如图1),但不对程序语法做详细说明,引发学生解决重复性问题的兴趣。
 

        (2) 用流程图分析算法,总结循环结构的基本要素
        教师在执行完上述案例程序后,组织学生讨论:①为什么要用循环②需要循环多少次③谁为循环次数做统计④每次循环过程中做什么⑤循环怎样结束等问题,展示流程图(如图2所示)。学生在问题的讨论中,既充分理解了循环的含义,又学习了循环语句的基本结构以及循环结构的执行过程,逐渐形成对循环结构的三个基本要素(循环变量、循环体和循环终止条件)的理解,强化了循环结构程序设计的思维模式。
        2.分析实例,实现“循环”算法
        (1) For/Next解决循环次数已知的问题
        在具体教学中,笔者以教材中的“为希望工程捐款”为例,引出For/Next语句的一般形式:


        For 循环变量=初值 To 终值 [Step 循环步长]
  [循环体]
  [Exit For]
Next [循环变量]
For/Next的N-S图所图3所示。
        在讲授For/Next循环结构时,需要重点说明两点:①该循环结构是如何执行的;②循环变量的初值、终值、步长要怎样设计,才能确保循环在有限次执行后自动结束。
        通过例子得出结论后,教师要不失时机地再次设疑。在教学中,笔者设置了:①1-100之内的偶数/奇数的和(任务难点:循环变量的变化幅度);②1*2*3*……*20(任务难点:累加器的初始化);③1+ ?+?+……+ 1/100 (任务难点:构造累加通项)三个问题拓展学生视野,内化知识。在此处,教师可以引导学生从循环的执行过程、循环结束的控制、循环变量的作用、累加器的含义及使用等方面思考问题,并鼓励学生通过自主探究、小组协作的方式解决问题,示例代码见表1。

         (2)Do While /Loop解决循环次数未知的问题


        前述的几个问题解决后,教师及时抛出另一个问题:以现有存款规则,要存多少个月才能使存款余额多于500元?该问题由于循环次数(即存款次数)未知,故应用 For﹍Next 循环来计算分析将难以实现,从而引出循环的另外一种结构 :Do While/Loop循环。
Do While/Loop语句的一般形式:
Do While<条件表达式>
  <循环体语句>
[Exit Do]
Loop
Do While...Loop语句可以在程序中实现“当”循环,其N-S图如图4所示。
        3.拓展案例,提高分析和解决循环问题的能力
        为了更好地引导学生进一步探究循环规律,活学活用,笔者从不同章节中选取了一系列经典问题,对抽取的知识点进行了重新规划与整合,形成了如下案例群 (见表2):

        三、总结与展望
        课堂积极采用讨论式和任务驱动式教学方法,用实例引导学生主动发现、分析和处理问题,加深了学生对核心概念的理解。通过实例教学,让学生在实践和解决问题的过程中自己去体会“循环”的思想,发现循环体的构建方法和规律,锻炼了学生的思维能力,培养了学生借助算法和程序解决问题的思想。

 

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: