高中编程教育|最后的小唯&编制计算机程序解决问题
编程教育无疑越来越成为信息技术教学的重心,但是如何实施也有不同做法,如基于算法、语法、应用开发、计算思维等不同角度。如今,对如何落实计算思维这一学科核心素养,将成为我们教学的新责任。本期解码,让我们从两个完全不同的教学思路观察同一个教学内容,体验不同的教学过程,探讨程序教学的特点。
编制计算机程序解决问题
——应用编程绘制函数图象
刘志韩 山东省青州第一中学 262500
本节课是必修课程内容,通过这节课的学习主要让学生了解VB的编程运行环境,初步认识程序的作用;体验完整的编程过程,感受计算机解决问题的基本过程;通过实践探究初步培育计算思维。
本节课的主要特点是,在学习任务的设计上,具有层次递进的特点。任务一是基础任务,需要同学们完整的按照老师的演示和要求做出来,在这个基础任务的完成过程中主要是让学生体验完整的编制程序绘制函数图象的过程。任务二是在任务一的基础上以小组为单位,小组长具体分工,通过对函数表达式各个参数的修改观察函数图象的变化,任务二不仅仅印证了数学方法,也让学生体验编程解决问题的特点和算法的意义,并为接下来的任务三做铺垫。任务三是在给予一定提示的基础上发挥学生的想象力自由创作,深化对本节课知识的理解。
课前准备:有效组织才能提高效率
将学生分为4个小组,每个小组选一个小组长,课前交代好小组长本节课需要做的工作,小组成员之间具体的任务分工,小组成员的合作,以及小组长的总结发言等具体事宜,以小组作为评价单位进行评价。
情景引入:用代码与效果共同演绎程序的功能
教师通过屏幕运行程序让学生回答是哪种函数图象。然后,出示抛物线、双抛物线及多个函数的图象程序代码,指向函数表达式,进行观察。
本环节不仅直观呈现出程序解决问题的优越性,也从感官上消除了利用编程绘制函数图象的神秘感,直观感受程序的强大功能,从而激发学生的学习兴趣。
问题分析:问题解决是算法设计的根本出发点之一
教师引领学生回顾数学方法,如抛物线图象取值描点绘制图象的过程。
作为程序设计的灵魂,算法本身是一个非常抽象的概念。由学生已有的数学知识描点法绘函数图象作为切入点,更容易理解计算机编程解决问题的算法思想。为接下来的流程图分析做准备,更好的引出算法概念。
通过课堂效果反馈来看,这一环节的设计非常有必要的,学生在描点绘图中体会到计算机绘图可能采取的方法,即对认识算法概念的生成。
算法设计:在画流程图中让算法与思维紧密结合
教师活动:在体验了取值描点绘函数图象的基础上,分析并完成流程图的制作。参考图示如下。
通过以上流程图,不难深入理解到:算法就是解决问题详细的方法和步骤。算法是程序设计的灵魂,接下来的程序编制也是以算法为依据。可见,对于算法的概念“算法就是解决问题详细的方法和步骤”,学生在零基础的基础上通过具体的分析问题的过程,更容易接受算法的概念。
编制程序:动手实现是计算思维的形成过程
教师与学生一起再回到最初演示的函数图象程序观察、分析:界面的组成包括两个控件,可在运行程序后分析两个控件分别有什么样的功能。然后,体验控件的创建。
1.理解程序的界面设计是做出程序控制的外壳。
为了让学生了解VB程序可视化的特点,从整体上了解VB编程的完整过程,基于学生第一次接受VB语言的现状,通过模仿练习操作是最直接掌握操作的方式。
教师演示在窗体中添加按钮控件和图片控件:以按钮控件作为触发对象,用图形控件,显示图象的区域。教师演示完操作,学生在模仿的基础上完成相应的练习。
2.编写程序代码是进行程序设计的核心部分
为了解代码在程序中的作用,更深层的体验利用编程绘制函数图象的过程,可以让学生初次体验编辑代码。但这一部分的设计,从时间角度考虑不要求学生输入这段代码,而以从整体上理解代码含义为主。这样为接下来的任务做准备,在此基础上完成一个完整的小程序,会降低和分解任务的难度。
首先,教师可以提出设问:仅仅完成界面的设计,程序能够为我们工作吗?当然不能,它仅仅是程序的外壳,我们还没有赋予它灵魂。
然后,教师将事先准备好的代码复制粘贴到VB程序中来,每粘贴一行解释一行代码在程序中作用。
向学生讲解:双击“绘制”按钮,添加代码,以二次函数y = x2为例,进行如下程序的复制。
Private Sub Command1_Click() 程序的开始
Dim x, y As Single 定义数据类型
绘制坐标系
Picture1.Scale (-10, 25)-(10, -25) 定义坐标原点
Picture1.Line (-10, 0)-(10, 0),RGB(0, 0, 255) 定义横坐标
Picture1.Line (0, 25)-(0, -25),RGB(0, 0, 255) 定义纵坐标
复制修改该段代码
For x = -10 To 10 Step 0.0001 x的取值范围是[-10,10],步长是0.0001
y = 2*x ^ 2 函数表达式
Picture1.PSet (x, y), RGB(255, 0,0) 绘制图象
Next x
End Sub 程序结束
接下来,让学生参照教师讲解,完成任务。
任务一:复制代码,快速体验编程
本任务要求学生创建程序界面,通过复制“学生代码”,然后修改代码完成函数y=2x2+3x+4曲线的绘制,并运行程序观看效果。
任务提示: 1.只修改函数表达式,其他代码不变。2.函数表达式输入:乘号* 的输入 ,平方^的输入。
任务一的设计,要求每一名同学都要完成,最快完成任务的两名同学可以为小组加分。在学生任务完成过程中提示表达式中乘号和平方符号的输入这个易错点。
本任务的设计意图有三个方面。
第一,任务一的设计是在老师讲解了程序的每行代码的作用之后,在学生理解了程序代码含义的基础上修改函数参数,因此从技术难度上说,很容易实现操作。
第二,任务一是一个基础任务,要求让每一位同学都操作一遍,这样基础任务需要每一位同学都要求掌握,让学生完整体验编制程序绘制函数图象的过程。
第三,小组成员以最快的速度完成任务为小组加分,无形中给每一个学生一个表现的机会提高了学生学习的兴趣。
任务二:修改代码,深入探究编程核心
在任务一的基础上,通过多次修改函数y=ax2+bx+c, a、b、c参数(小组长分工,组员分别修改a、b、c的数值)绘制观察不同的多条曲线,小组讨论汇总后总结曲线的变化规律。
教师引导学生先回到上课最开始看的图象,思考如何绘制多条函数曲线。有些精美的图案是多条曲线组成的,而且数学上通过图象的对比更容易理解函数的意义。再回到代码上来看,按下面段落分段分析代码的作用绘制多条函数曲线是如何做到的呢?在分析完代码作用之后,可以让学生回答这个问题。
Private Sub Command1_Click() '程序的开始
Dim x, y As Single '定义数据类型
Picture1.Scale (-10, 25)-(10, -25) '定义坐标原点
Picture1.Line (-10, 0)-(10, 0),RGB(0, 0, 255) '定义横坐标
Picture1.Line (0, 25)-(0, -25),RGB(0, 0, 255) '定义纵坐标
For x = -10 To 10 Step 0.0001
'x的取值范围是[-10,10],步长是0.0001
y = a*x^2+b*x+c '函数表达式
Picture1.PSet (x, y), RGB(255, 0, 0) '绘制图象
Next x
End Sub '程序结束
任务提示:将画线的部分复制粘贴后再次修改函数表达式。
本环节的设计意图有四个方面。
第一,通过任务一、任务二的练习让学生更好的掌握了VB程序绘制函数图象的基本操作。
第二,任务三是在任务二的基础上继续理解代码的含义,以及对应图象的变化,更好的与数学知识相印证。
第三,小组长总结组员的观察结果进行汇总总结,在这一过程中更好的锻炼了学生的小组团结协作的能力。
第四,为接下来的拓展任务三打下基础。
任务三:自由创作,形成对编程的成就感
这是一个拓展任务,以小组为单位自选函数表达式绘制图象进行自由设计,讨论思考所选图象是如何制作的。
函数知识补充:y=a*Sin(b * x+c)+d y=a*cos(b * x+c)+d
提供给学生的参考1:完成函数 y = 20*Sin(2 * x) 图象绘制,观察图象变化,思考原因并完成相似图象的制作,如y = 30*sin(2 * x)。
提供给学生的参考1:观察下面图象变化思考原因,完成函数图象的绘制。
本环节的设计意图有四个方面。
第一,激发学生的想象力,拓展学生的思维进行自由创作,形成一定的成就感。
第二,体验程序绘制函数图象的强大功能,进行感受利用编程解决问题的优越性。
第三,任务三小组成员间合作完成,小组成员之间分工明确团结协作,培养了他们小组合作的能力。
第四,继续深化对本节课知识的理解,充分感受了函数与图象之间的关系,完成了对学生计算思维培养的目标。
《中国信息技术教育》2018.8
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com