李振环

初步掌握计算机进行信息处理的几种基本方法,认识其工作过程与基本特征,这是算法与程序教学最基本的要求,也是最初的教学内容。本节课以前学生主要学习的是办公软件,是用现有软件来处理相应的信息。本节课是让学生体验用自己编写的程序来解决实际问题,使其进一步了解计算机程序的特征与功能,体验分析问题、解决问题的基本过程与方法,进而提升学生自主处理信息的能力,也拉近了学习与技术的距离。

高一的学生已经具备了一定的计算机使用能力,但大多数是使用常用软件处理信息。对于计算机程序的了解只限于能举例说明,对它的本质知之甚少,他们以前可能很少或者根本没有接触过计算机编程,因此,程序和编程对学生来说,有一定的神秘感。另外,学生现阶段已经具备了一定的逻辑思维、分析问题、表达思想的能力,也掌握了相关的数学知识。

本节课的教学设计,旨在营造和谐的生活化计算机程序体验课,通过一系列的情境创设和学生探究、推导、体验等学习活动,力求让学生体会到计算机程序在生活中起的作用,自己动手编制计算机程序解决身边的具体问题,进而了解利用计算机程序的特征与功能,明确解决问题的过程,有意愿把这样的方法融入到现实生活中去。其中,本节课重在利用数学的“推导”思维引导学生进行算法与程序的设计,更有利于培养其计算思维。

● 情境导入,引起对程序功能的思考

学生思考下列两个函数的二次函数图象,尝试根据数学知识手绘函数图象。

Y=-3x2+5x+9

Y=2x2+4x+9

教师用VB程序绘制二次函数图象。

师:说一说在手绘与程序绘制过程中有哪些不同的感受?

设计意图:比较手绘和程序绘图象,让学生感受程序的效率。初步感受编程解决问题,以及和生活的联系。

● 自主学习,感受程序的基本特征与功能

师:自主学习教材相关内容,并回答下面问题。①举例说明,计算机程序有哪些特点、用途,与硬件的关系是什么?②计算机语言有哪些,发展过程与特点是怎样的?

设计意图:先由学生自学理论知识,并设置问题帮助学生更好地理解程序的特征与功能,从计算语言发展历程理解程序越来越方便的特点,在掌握程序知识的同时提高编程的自信心。

学生进行活动,自主学习并思考问题。学生通过对实例的探索,研究如何绘制同心圆,体验编制计算机程序解决问题的全过程。

(1)分析、提出问题:同心圆的特点是什么?(圆心相同,半径不同。)

(2)设计算法:调用Circle函数,并讲解Circle函数中参数的意义。

Circle (4000, 4000), 1000, vbred

圆心坐标 半径 颜色

算法为:①确定圆心;②确定半径;③确定圆的颜色。

设计意图:学生未接触过VB,所以选取了代码简单易懂的同心圆,只需一个Circle函数即可。圆心坐标相同,半径大小不同,其实就是确定Circle函数的三个参数。

(3)开始编写程序,向学生提示基本过程。

①添加按钮控件作为执行按钮。

②双击按钮进入代码编辑窗口。

③编写代码(如下)。

Private Sub Command1_Click()

Circle (4000, 4000), 1000, vbred

Circle (4000, 4000), 1500, vbred

End Sub

第一句、最后一句程序自动添加是按钮的单击事件,可以理解为程序的开始和结束。写两个语句,即调用两次Circle函数,画两个圆,通过改变参数的值来画不同的圆。

(4)调试运行:运行程序,主要是VB软件的使用。

(5)检测结果:测试的结果运行即可得,如果得到的结果是同心圆说明结果正确,否则需要检查错误的地方并且改正,再次运行检测。

设计意图:学生经历了利用计算机程序语言解决实际问题的基本过程,对编程有了一个全面的了解,初步了解了VB程序软件和基本使用方法,解密了编程的神秘感,拉近了信息技术与生活实际的距离。

● 小组合作,在“推导”数学关系中深化计算思维

由于学生从未接触过VB,如果采用与数学结合的方法让其理解、体验算法的设计,学生能更容易地完成程序,也可以更有思维深度地去化解程序中命令参数的应用难点。本环节采用的方法就是数学推导法,也就是根据基本的算法与程序,推导出更复杂、更有趣味的图形算法与程序,提高编程时运用参数的能力。

设计系列任务,笔者倡导学生通过小组合作完成任务,以更直观清晰的实例探索推导程序的特点与功能。

小组任务一:按照编程的基本过程,自主完成以下图形(如下页图1)。

设计意图:同心圆是圆心坐标不变,半径变。任务一是不变半径、变圆心的横纵坐标。是对Circle函数的迁移与运用,也是对编程过程的体验;为任务二做过渡,让图形更丰富,让算法与程序设计更有挑战性。体现用推导方式理解程序中参数变化对算法设计的影响,以及体现程序的功能。

小组任务二:合作完成以下图形,看看哪个小组做得快(如图2)。

小组活动:学生分为8个小组,1、8组做图A,2、7做图B,3、5做图C,4、6做图D,其中核心的工作是分工进行数学推导,计算各圆的半径和圆心。

设计意图:在学习过程中,学生发现知识的规律,增强推导问题的能力以及逻辑思维的严密性、条理性;懂得知识的迁移学习;体会程序画图的准确性和美感,感受算法与程序设计的功能;增强在推导思维与计算思维形成中的小组合作能力和团队意识。

小组作品展示:展示自己小组的作品并相互评价。

设计意图:让学生能够感受到成功的喜悦。

小组任务拓展:自由发挥,绘制出自己的创意图形。

设计意图:让学生充分发展个性,既加强对知识的应用也增强应用的灵活性,锻炼了学生的想象力。

小组作品展示:展示自己小组的作品、各个小组相互评价。

设计意图:学生能够展示自己的个性设计。

● 课堂小结,梳理计算用程序解决问题的基本过程

师:本节课大家对算法与程序的关系、程序的功能方面有何收获和感受?

学生活动:针对自己设计程序的过程与最终作品,回答问题,并谈感受。

设计意图:利用对算法与程序设计基本知识的总结,帮助学生明确算法与程序的概念,便于学生理解记忆;了解学生的编程感悟,便于下节课深化推进具体的算法教学。

● 教学反思,思维的突破与理解程序本质的现实差距

纵观整个教学过程,笔者认为本课存在以下一些优点与不足。

在整个教学过程中,用问题引领学生主动思考,自主学习和任务驱动都体现了以学生为主体——学生思考,学生实践。对学生的评价采用学生互评的方式,总结也由学生来回答,都充分体现了学生的主体地位;实例贴近学生生活,以数学为实例进行推导,贴近学生的学习实践,能够让学生更容易地理解计算机程序,也锻炼了他们分析问题的逻辑性、条理性;小组合作加强了学生的合作能力和团队意识,也提高了任务完成的效率,让学生体会到合作的重要性;采用拓展任务,充分发挥了学生的个性。

总体的困惑是:学生对计算机程序的本质在理解上有一定的困难,本节课因时间有限也不能够深入探究计算机程序,怎样形象地说明程序的本质及其运行原理还有待思考和完善。另外,学生的编程基础基本为零,所以在代码的编写和VB程序的使用中教师需要明确讲解和演示,但是演示过后仍有许多学生对VB的使用还是掌握得不够好,影响了课堂教学的推进。