郑续玲 宋喜荣
● 教材分析
《感受信息的编程加工》是教育科学出版社出版的《信息技术基础》第三章第二节的内容。本节课主要是通过编制一个小程序,让学生初步了解信息编程加工的一般过程,初步认识程序代码,感受利用计算机编制程序解决问题的魅力。教材没有详细介绍编程加工的关键步骤“算法”,但是这部分内容是学业水平考试的考点,所以引入算法的定义及算法的作用对学生了解编程加工的各个环节更有帮助。
● 学生分析
学生已经学过第一节的内容,知道了什么是编程加工,但是对编程加工的过程不了解,更不了解编程加工的关键步骤“算法”。所以,这节课我对算法从详处理。由于算法有三种描述方法,其中流程图这种描述方法在数学等其他学科中均已接触过,流程图描述方法的介绍可以从略处理。
● 教学目标
知识与技能目标:理解算法的概念;了解信息编程加工的一般过程;认识程序代码。
过程与方法目标:通过信息编程加工的一般过程,锻炼学生思维,培养他们解决问题的能力。
情感态度与价值观目标:使学生感受计算机解决问题的独特魅力。
● 教学重点与难点
重点:认识算法的定义及重要性;算法的三种描述方法;熟悉编程过程及调试过程。
难点:算法中的伪代码描述方法;编程过程及调试过程。
● 教学资源
计算机安装VB6.0简体中文版。
● 教学过程
任务一:玩游戏体会什么是算法
师:我知道大家都喜欢玩游戏,今天给大家推荐一款小游戏,这个游戏叫“过河”。游戏的规则是这样的:把人和狮子都送到对岸,任何一边的狮子都不能比人多,否则狮子吃人;船每次只能承载两个。同学们能否成功?大家试试看。
学生尝试。
师:有哪位同学过河成功了?
个别学生“过河”成功,表述并演示做法。
师:为什么大多数同学没有成功呢?是因为没有正确的过河方法!请“过河”没有成功的同学按照正确的方法再试一次。
师:解决问题是要讲究方法的。解决问题的方法和步骤就是算法。我们这节课要学习信息的编程加工,算法是信息编程加工的关键步骤。
任务二:琢磨生活实例,认识优秀算法的重要性
师:是不是所有解决问题的方法都是合适的呢?带着这个问题,我们再来看一看我们身边的例子。王虹从早上起床到上学前这段时间要做以下几件事(如表1)。
师:王虹同学安排这些事情共需要28分钟的时间。从节约时间的角度考虑,你会如何安排呢?
生:先刷锅,把鸡蛋煮上,在煮鸡蛋的同时,可以叠被、洗脸、刷牙,然后再吃早点(如下页表2)。
师:咱们一起来比较这两种做法。
教师引导学生思考:同样的任务,按照方法二安排,为什么会节约7分钟呢?
生:利用煮鸡蛋的时间去叠被、洗脸、刷牙,所以节约了时间!
师:解决问题不仅要讲究方法,还要寻求最佳的算法。
任务三:用数学中的例子,体验信息编程加工(课件展示例子)
师:有了这样的思想基础,我们通过下面这个数学例子来体验一回信息的编程加工。有一个三角形,边长分别是3、4、5,三个角分别是90度、30度、60度。假设坐标系已经画好,你会如何画这个三角形呢?(见图1)
生:用两个点的坐标描出线段。
师:不错!还有别的方法吗?
师:大家都知道一笔画写字吧。那我们能不能一笔画把这个三角形画出来呢?
生:从坐标原点出发,沿着三角形的形状,一笔画画下来。
师:我们一共找出了两种方法来画这个三角形。方法一:从(0,0)沿x轴正方向开始画出长度为4的线段,从(4,0)开始左转150度画出长度为5的线段,左转120度画出长度为3的线段。方法二:从(0,0)到(4,0)绘制第一个线段,从(4,0)到(0,3)绘制第二条线段,从(0,3)到(0,0)绘制第三条线段。
师:这两种方法我们是用自己的话描述出来的。我们日常生活中使用的语言是自然语言。用自然语言描述算法可行吗?这种描述让算法通俗易懂,但是也有缺点,请同学们看这句话“这个人谁都不认识。”是什么意思?
这句话包含了两种意思:“别人不认识这个人,这个人不认识别人”。可见,自然语言描述法容易让人产生误解。还有更好的方法来描述算法吗?带着这样的疑惑,我给大家介绍第二种描述方法——流程图。流程图是算法的一种图形化表示方法。我们在数学课中已经学过。相信大家已经不再陌生。看看用流程图描述的算法,和自然语言相比,它的优点是什么?
生:流程图描述更形象直观。
师:我们分析问题、写出算法,最终的目的就是要编成程序,让计算机去执行。可是上面这两种描述方法,虽然通俗易懂、形象直观,但还不能直接转化为程序语言。带着这样的问题,下面再给大家介绍第三种描述方法——伪代码。伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。
师:(给学生展示伪代码的描述方法)同学们打开第1个文件。看看下列代码,它没有填写完整,请你读一读下列代码,并把它填写完整(如表3)。
假设描绘线条的命令如下。(解释下面单词的意思)
Forward(参数):向前走多远。
Left(参数):左转多少度。
line(),():从某一个点到另一个点绘制线段。
默认箭头方向朝上。
咱们一起来看看这位同学的正确答案(如表4)。
师:伪代码描述算法容易转化为程序代码,算法简洁易懂、方便修改和可读性好。请同学们比较以上两种方法,你更容易接受哪一种方法?
学生讨论并阐述观点。
师:第二种方法所用语句较少,执行时间少,所以更优秀。算法是有优劣的,通过开动脑筋,我们可以找出更好的算法。
我们研究算法的描述,最根本的目的是用于编程,提高编程效率。下面我们将进一步将算法用于编程任务中。
任务四:认识程序代码,上机调试
师:我给大家推荐一个可视化的编程工具VB6.0。我们先来认识一下这个软件(见图2)。
①右面第一个小窗口是工程的属性窗口。在这里你可以管理你的工程文件。
②左面是控件窗口,你可以选择你需要的控件把它拖动到程序界面上。
③右下是控件的属性窗口。在这里你可以修改控件的属性。
④中间是程序的主界面。
如何用VB编出我们这个程序呢?大家只需要做两件事情就可以了(如表5)。第一,拖动“按钮”控件到主界面上。修改它的Caption(标题)属性为“绘图”。 第二,在按钮的click事件里面加入让计算机绘图的代码。由于同学们没有编程基础,下面我把按钮里的代码介绍给大家。①scale方法:用以定义坐标系;②line方法:用于在对象上画线;③RGB函数:表示颜色,RGB(red,green,blue)。
师:做好这两件事情,你就可以运行一下程序看看你的成果了!大家动手试试吧!编写程序上机调试往往不能一次成功,是一个反复修改尝试的过程。
教师巡视指导学生编程。
师:成功地完成任务的同学帮助遇到困难的同学。
师对学生的操作进行评价并鼓励。
● 课堂总结
师:这节课我们主要是体验了信息编程加工的一般过程。请同学们思考这个一般过程是什么?哪一步最重要?
教师引导学生对本节学习内容进行归纳。
教师归纳要点:分析问题-写出算法-编写程序-上机调试。写出算法是最重要的,没有一个正确上佳的算法,就不可能编出优秀的程序!
● 教学反思
算法是《信息编程加工》的灵魂,但是学生却不太感兴趣,所以这节课引入了一些比较有趣的例子,如“人狮过河”、“早上起床后的安排”,目的是让学生认识算法的概念和算法的重要性。这样安排让教学气氛比较活跃,条理清楚,不同层次的学生都能积极参与到课堂讨论中来。算法描述部分是基于高一数学模块三中的已学知识,知识点的难度小,所以整堂课学生的参与度较高。
本堂课内容偏多,有些地方的讨论不够深入。第一,学生第一次接触VB里控件的使用,对控件的使用方法一无所知。如果时间允许,可以再多举一些例子,让学生加深对控件的认识。第二,本节课对学生上机调试关注不是很多,其实上机调试学生会出很多错误。如代码没有添加在按钮控件的click事件里面,代码中的标点符号容易输成汉语的标点符号等。学生认识了程序代码后,最好能亲手输入程序代码。在这个过程中,可以认识程序代码的输入规则,如VB程序里标点符号如何输入?教师也应该多给一些辅导和帮助。