论文部分内容阅读
在高中信息技术选修课《算法与程序设计》中,在完成了算法初步、VB(Visual Basic,下同)程序开发工具的使用以及VB编程中数据表示与处理等基本知识的讲授后,我们便进入了三种程序基本结构的教学。实践中对顺序结构通常采取“蜻蜓点水”的策略,进而直接进入选择结构和循环结构部分,而后两者常常需要进行多课时的教学与实践。可以说,这一教学模式是建立在对前一知识点牢固掌握的基础之上的,那么学生对于顺序结构是否真的理解呢?不尽然。本人在选择结构教学中碰到的问题说明了这一点,现将此教学案例整理并试作分析,与同行交流。
我先向学生说明程序设计的三种基本结构:顺序、选择和循环。并指出,之前课堂教学中所涉及程序均为顺序结构,即至顶向下逐一执行的结构。鉴于以往的课堂演练,认为学生对此应该不难理解。因此依原教学计划,我们开始介绍选择(分支)结构及在VB中实现选择结构的四种If语句(二种行If语句、二种块If语句),并分别举例说明了其用法。课堂最后布置了上机实践题和书面作业题若干,其中一道上机实践题为“设计一个程序,从键盘上任意输入一个数,判断这个数是正数、负数还是零,并输出结果(输入用文本框对象,输出用标签对象)。”配合实践题,书面作业要求学生在完成实践后,将程序代码抄写在作业本上,并用流程图描述其算法。要求学生抄写程序代码的目的主要是了解几种不同分支语句在学生所编程序中的使用情况,至于画流程图则是检验一下学生对这样一个简单算法的理解状况。
本想此次实践比较简单,实际情况却出乎意料,通过逐一检查学生链接在个人档案袋中的可执行程序,同时对照其作业本所抄写的程序代码以及算法流程图,发现存在的一个较为突出的问题就是实践题的程序代码与所绘流程图不匹配。收集整理的学生编写的程序代码不外乎下列四种形式(见程序1—程序4),而绘制的流程图基本就是两种(图4或图5),也可以视为一种,因为图5仅仅是图4的变形而已。由此可见,不少学生还不能将自己编写的程序与用流程图描述的相应算法正确地联系起来。
找到了原因,问题便有了解决的方向。经过反思,笔者认为教学中有三点需要强调:第一,要着重阐明顺序结构的含义;第二,一条选择结构语句整体可看成一条语句,和其它语句一样,都遵循由上而下顺序执行的规律;第三,选择结构语句虽然包括其它语句,甚至嵌套另一个选择结构语句,选择执行一部分,而不执行另一部分,也不会影响整个程序的执行顺序。
具体到教学实践,需要纠正以往的做法是,要花一定时间阐述顺序结构及顺序执行的含义,尤其需要向学生说明计算机在执行程序时,是一条语句接一条语句执行的,决不会自动跳过一条或多条语句而执行下面的语句,所谓执行一条语句就是要完整地将它执行完。有些语句是“复合句”,就是说它又包含或嵌套一条或多条其他语句,比如:用于选择(分支)的If语句和用于循环的各种语句,对于这些语句计算机会按逻辑判断来顺序执行其包含的所有语句,直到全部穷尽,再执行本条语句下面的语句。这一点需要在讲解分支语句和循环语句的教学中反复强调,以保证学生牢固地掌握这一概念。
为方便学生领会,程序基本结构这一部分内容,宜结合流程图讲解。例如,在解释四种If语句时,除了区别行If语句和块If语句外,还要分清单分支语句(图1)和双分支语句(图2)。弄清了这一点,学生就不难理解为什么程序1和程序2所对应的流程图为图3——程序1和程序2中均各使用了三个单分支语句,同时不难看出,图3就是由三个图1相连起来的图。为什么程序3所对应的流程图为图6?因为程序3先后使用了一条双分支语句和一条单分支语句,而图6正是由图2连接图1而成。至于为什么程序4所对应的流程图为图4或图5,这里涉及了分支语句的嵌套,在程序4中一条双分支语句的一支又包含了另一条双分支语句,仔细辨别就能看出,图4或图5即为图2中的一支中又嵌入了一个图2变形所至。
本案例也再次说明了教学过程中反馈原理的重要性。作为信息技术教师,在完成基本教学后,如不本着对教学负责的态度,及时批改作业、不检查实践结果,就无法得到更多的反馈信息,也就不能准确掌握学生的学习动态,及时发现并纠正教学实践中存在的漏洞。事实上,类似本文提出的问题,在教学实践中是客观存在的、正常的,这就需要我们教师不满足于现状,不断检查、发现问题,总结经验教训,进一步提高教学工作的质量。
我先向学生说明程序设计的三种基本结构:顺序、选择和循环。并指出,之前课堂教学中所涉及程序均为顺序结构,即至顶向下逐一执行的结构。鉴于以往的课堂演练,认为学生对此应该不难理解。因此依原教学计划,我们开始介绍选择(分支)结构及在VB中实现选择结构的四种If语句(二种行If语句、二种块If语句),并分别举例说明了其用法。课堂最后布置了上机实践题和书面作业题若干,其中一道上机实践题为“设计一个程序,从键盘上任意输入一个数,判断这个数是正数、负数还是零,并输出结果(输入用文本框对象,输出用标签对象)。”配合实践题,书面作业要求学生在完成实践后,将程序代码抄写在作业本上,并用流程图描述其算法。要求学生抄写程序代码的目的主要是了解几种不同分支语句在学生所编程序中的使用情况,至于画流程图则是检验一下学生对这样一个简单算法的理解状况。
本想此次实践比较简单,实际情况却出乎意料,通过逐一检查学生链接在个人档案袋中的可执行程序,同时对照其作业本所抄写的程序代码以及算法流程图,发现存在的一个较为突出的问题就是实践题的程序代码与所绘流程图不匹配。收集整理的学生编写的程序代码不外乎下列四种形式(见程序1—程序4),而绘制的流程图基本就是两种(图4或图5),也可以视为一种,因为图5仅仅是图4的变形而已。由此可见,不少学生还不能将自己编写的程序与用流程图描述的相应算法正确地联系起来。
找到了原因,问题便有了解决的方向。经过反思,笔者认为教学中有三点需要强调:第一,要着重阐明顺序结构的含义;第二,一条选择结构语句整体可看成一条语句,和其它语句一样,都遵循由上而下顺序执行的规律;第三,选择结构语句虽然包括其它语句,甚至嵌套另一个选择结构语句,选择执行一部分,而不执行另一部分,也不会影响整个程序的执行顺序。
具体到教学实践,需要纠正以往的做法是,要花一定时间阐述顺序结构及顺序执行的含义,尤其需要向学生说明计算机在执行程序时,是一条语句接一条语句执行的,决不会自动跳过一条或多条语句而执行下面的语句,所谓执行一条语句就是要完整地将它执行完。有些语句是“复合句”,就是说它又包含或嵌套一条或多条其他语句,比如:用于选择(分支)的If语句和用于循环的各种语句,对于这些语句计算机会按逻辑判断来顺序执行其包含的所有语句,直到全部穷尽,再执行本条语句下面的语句。这一点需要在讲解分支语句和循环语句的教学中反复强调,以保证学生牢固地掌握这一概念。
为方便学生领会,程序基本结构这一部分内容,宜结合流程图讲解。例如,在解释四种If语句时,除了区别行If语句和块If语句外,还要分清单分支语句(图1)和双分支语句(图2)。弄清了这一点,学生就不难理解为什么程序1和程序2所对应的流程图为图3——程序1和程序2中均各使用了三个单分支语句,同时不难看出,图3就是由三个图1相连起来的图。为什么程序3所对应的流程图为图6?因为程序3先后使用了一条双分支语句和一条单分支语句,而图6正是由图2连接图1而成。至于为什么程序4所对应的流程图为图4或图5,这里涉及了分支语句的嵌套,在程序4中一条双分支语句的一支又包含了另一条双分支语句,仔细辨别就能看出,图4或图5即为图2中的一支中又嵌入了一个图2变形所至。
本案例也再次说明了教学过程中反馈原理的重要性。作为信息技术教师,在完成基本教学后,如不本着对教学负责的态度,及时批改作业、不检查实践结果,就无法得到更多的反馈信息,也就不能准确掌握学生的学习动态,及时发现并纠正教学实践中存在的漏洞。事实上,类似本文提出的问题,在教学实践中是客观存在的、正常的,这就需要我们教师不满足于现状,不断检查、发现问题,总结经验教训,进一步提高教学工作的质量。