《信息的编程加工》教学设计
一、教学目标分析 【知识与技能】 1、了解VB编程环境; 2、初识VB程序代码;
3、了解for…next语句的含义及执行过程 【过程与方法】
1、体验VB编程解决问题的一般过程; 2、认识算法的重要性; 【情感态度与价值观】
1、感受利用计算机解决问题的独特魅力;
2、初识编程,克服畏难情绪,树立学习程序设计的信心。 【教学重点】
1、体验计算机编程加工的一般过程; 2、理解算法的重要作用; 二、教材内容分析
1.课程标准内容《信息的编程加工》教学设计
初步掌握用计算机编程加工信息的工作过程和基本特征; 2.教材作用与地位
教科版《信息技术基础》第三章第二节“信息的编程加工”通过操作和剖析已经编好的计算机程序,在解决实际问题中分析并了解其工作过程,这种通过问题分析形成算法、再利用计算机程序解决问题的思路和做法,对学生帮助很大。
三、学情分析
必修模块一般在高一开设,本节课教学对象即高一新生。他们刚刚开始高中信息技术课的学习,虽然熟悉计算机的基本操作,了解网络的基本功能,但对计算机加工信息的原理还不了解,对编程存在畏难情绪。因此本节课首先以简单然而效果明显的实例激发学生对编程加工的兴趣,然后通过分析代码引导学生积极思考,了解计算机工作内部机制,帮助他们克服畏难情绪,树立进一步了解编程加工的信息,从而达到教学目标。
四、教学重点和难点 1.算法设计的理解。 2.尝试编程的主要过程。 五、教学过程 1.引入
有一类数很有特色:首先它是一个三位数;其次,它的各位数字的立方和就是这个数本身,这类数,有个好听的名称:水仙花数。请大家思考并写出所有的水仙花数。
生:(思考)
师:下面请一位同学把自己的结论说出来和大家交流交流。 生:写不出, 3个未知数,但是只有一个方程,所以计算不出来。 师:那就请你说出方程。
生:……
师:我们来共同讨论如何求出这个方程的解?
生1:我们可以用数学中的穷举法和排除法,也就是首先取数字100,那么对应的a,b,c分别为1、0、0,判断这个方程是否成立;然后再取数字101,再进行判断……如此反复,一直判断到数字999。
师:确实是个很好的方法,但是我们要进行多少次的验证才能够得出所有的水仙花数? 生:900次。
师:如果一个数字验证需要 1分钟,那900次就要15个小时? 生:(抢答)可以让计算机去验证啊。
师:对,我们可以利用计算机的优势:高速度和大容量来帮我们快速解决问题。下面我们来看一个事先编写好的小程序:(打开并运行)
图1 图2
界面(如图 1)很简单,也很明白,在提示语的下方有一“运行”按钮,直接单击“运行”按钮,出现如图2所示界面。该界面上显示出所有的水仙花数,很显然,计算机快速处理数据的能力大大缩短了我们解决问题的时间,瞬间就得出了结果。虽然计算机能快速地求出问题的解,但它却没有思维、不知道如何解决问题,所以我们必须告诉它解决问题的过程和方法。在程序设计中我们称之为算法。实际上,日常生活中也处处存在着算法的应用。
设计意图: “水仙花数”这个动听的名称也激发了学生的学习兴趣。教学过程中,通过学生对“水仙花数”的分析和讨论,引导学生说出计算的规律,从而引出可以通过编程解决问题。
2.算法设计
师:其实算法的设计分两个内容:一是寻找一种方法;二是描述一下实现这个方法的步骤。那么在求水仙花数的过程中,我们应该寻找什么方法?请同学们思考并用自己的语言描述实现这个方法的步骤。其中要包括:从何处着手、解题步骤以及结果处理。
生 1:首先确定水仙花数的范围:是一个三位数,也就是从100到999;判断表达式是否成立,如果成立就是水仙花数;如果不成立就不是水仙花数。
生 2:还要把所有的水仙花数显示出来。
师:生 2补充得很好,如果我们只进行判断,而没把符合条件的数字列出来,那么这个算法就不算完整了。还有没有需要补充的?或者说有没有需要细化的?
生:(思考)
师:(提示)生 1说的等式中a,b,c的值是从哪里来的? 生:是从一个三位数中分离出来的百位、十位、个位上的数值。
师:对于一个三位数,计算机是不知道怎么分离出各位上的数字的,所以还得说明如何分离。请思考如何分离出一个三位数的各位上的数?(提示)以数字 123为例,如何分出1、2、3?
生:123除以10的余数,就是个位上的数。123除以100的商就是百位上的数……
师:细化后的算法已经很明朗了,下面再请一位同学帮我们把刚才说的内容重新梳理一遍。 生:让计算机从 100到999依次进行百位、十位和个位数字的分离,然后对表达式的成立与否进行判断,如果成立就显示出这个数。
师:既然是让计算机完成这项任务,我们直接对其发出口头命令,计算机懂不懂,能不能直接去执行你的命令?
生:不能。
师:所以我们必须把它转换成计算机能够执行的语言,也就是我们平常所说的:通过编程实现。
师:说到程序,大家脑海里立即浮现出一行行代码,其实不然:用户界面是一个应用程序最重要的部分,界面是应用程序呈现给用户的外观,也是实现人机交互的接口。刚才演示的界面中因为有了提示语,所以我们才知道怎么操作这个程序;因为有了按钮,所以单击程序才会运行。
而 VB语言,提供的可视化设计工具,可以直接使用窗体和控件设计程序的界面,大大地提高了程序设计的效率。
3.编程实现
师:请大家启动 VB,观察VB界面,尝试利用窗口左侧的工具箱里的控件设计刚才的界面。
生:(根据投影幕上显示的界面自行操作) 师:巡视并给予适当指导(3分钟)。
师:总结:刚才大家操作得不错,都能找到相应的控件,并将其添加到界面上。但是只有这个界面,是不是就可以帮我们求出所有的水仙花数了呢?
生:不是,程序还没写呢。
师:刚才我们在对象窗口中设计好了界面,那代码应该在哪里写?请大家在视图菜单中寻求答案。
生:代码窗口。
师:下面我们就把用 VB语言描述的算法写到代码窗口中,并且调试,看看能不能正常运行?
Private Sub Command1_Click() Dim i As Integer Dim a As Integer Dim b As Integer Dim c As Integer Label1.Caption = \For i = 100 To 999 a = Int(i / 100) b = Int(i / 10) - a * 10 c = i Mod 10
If a * a * a + b * b * b + c * c * c = i Then Print i End If
Next i End Sub
生:(根据投影幕上显示的程序,在代码窗口中书写)
设计意图:Microsoft中不同软件具有基本相同的风格和界面,甚至不同功能的操作方法也有共通之处,为我们运用原有的知识和经验迁移到新知识、新技术的学习中创造了条件和可能。在界面设计中,学生可以将Word、Excel中窗口操作、文件处理等知识迁移到VB中。通过迁移,提高学生的学习能力。
4.拓展与延伸
师:刚才我们是从 100到999将每个数,都重复如下操作:分离出百位、十位、个位上的数值,并判断表达式是否成立,如果成立就输出,再取下一个数字进行同样的操作。
请大家讨论除了这种算法还有没有其他算法? 生:(讨论)
师:(提示)刚才是从数字出发分离出 a,b,c,能不能换个角度从a,b,c拼出数字? 生:作为百位上的 a可以取1~9之间的任意数,而b和c可以取0~9之间的任意数,从已知的a,b,c求出100*a+10*b+c,看是否等于它们的立方和,如果相等就输出。
师:请大家根据这位同学用自然语言描述的算法修改程序,看能不能得出正确结果。 生:修改程序,存盘,运行。
师:在上这节课之前,大家对“编程”总抱着一种很“神秘”的态度观望,这节课我们通过“求水仙花数”这个实例知道了编程也不是那么的深奥,它也是有章可循的——对于一个问题,首先列出它的算法、然后设计界面,根据设计好的算法和界面,用编程的语言将你的思想体现出来。通过学习和探讨,我们也能利用计算机编程来解决一些简单问题,感兴趣的同学还可以课后利用 VB 的帮助系统了解VB的其他功能,争取编出更多更好的程序。
设计意图:在已经用了一种算法解决问题的基础之上,提示学生可以采用另一种算法,让学生知道解决同一问题可以有多种不同的途径;在学生利用第二种算法解决问题的过程中,通过对两种算法的比较,体现出不同的解决问题的思路,为选修“算法与程序设计”模块中“算法的设计”奠定基础。
5.课后实践活动布置
已知长方体的长、宽、高,利用vb编写一个程序,求长方体的全面积和体积。 。
设计意图:基于课上已经掌握的知识,对学生的能力提出更高要求。