• 倪凌云 “编写程序的步骤”教学设计
  • 2009-9-11 浏览() 【
  • 以兴趣扬帆,用游戏导航

    锡山高级中学实验学校 倪凌云

    【研究的问题】

    在中小学信息技术教学中,程序设计一直是师生倍感头疼的内容。程序设计难教难学,源于计算机语言本身高度的抽象性和严密的逻辑性。虽然,Visual Basic语言较之其它语言要易学好懂一点,但它仍需要必要的抽象思维能力和数学知识作为支撑。如何“蹲下身来让大部分学生能够得着” ,让学生学得轻松、有效,是我们在本学期一直应关注的问题。

    【设计依据】

    教材简析:

    《编写程序的步骤》位于省编教材的选修部分第一单元《走进程序设计》的第二节。在初中信息技术教学中,程序设计部分始终是教师觉得难教,学生觉得难学的部分,而这一节中的“算法与算法描述”更是这一单元的重中之重。学好这一节,能为整个VB的学习奠定一个良好的基础。

    本课是程序设计的第一课时(第1节《程序设计与计算机软件》,我们让学生自学了解,没有占用课时。),起始课的好坏将直接影响整个单元的后继教学。例如一部优秀的电影一般都有一个精彩的开头,一开始就抓住观众的心,使他们有动机、有兴趣往下观赏。

    学情分析:

    初二的学生虽具备了一定的计算机使用经验,但大多数是与软件的使用和网络应用有关,程序设计对他们是崭新的、具有挑战性的知识。而且这个时期的学生正处于感性思维向理性思维过渡的时期,很多时候仍需要感性思维的支撑。因此在教学中应强调程序设计与生活的关系,注重启蒙和兴趣的培养,并以趣味性的练习、富有引导性的教学语言、明白流畅的教学思路调动学生的情感,在晦涩的程序设计和学生之间架起一座桥梁。

    【教学目标】

    知识与技能

    1、了解利用计算机解决问题的基本过程,认识算法的地位和作用。

    2、初步掌握使用自然语言或流程图对算法进行描述。

    过程与方法

    1、通过实例让学生体会程序设计的基本过程与方法,理解算法思想,会用自然语言或流程图表达一些具体问题的算法。

    2、通过对现实问题的分析与解决,让学生认识到生活中到处是程序,而程序解决的往往就是生活中的现实问题。

    情感态度与价值观

    1、体验程序设计的内涵及魅力,产生对程序设计的求知欲,形成积极主动地学习态度。

    2、通过问题的分析与解决,帮助学生克服程序设计的畏难情绪,培养他们严谨、缜密、科学的程序设计作风。

    【教学过程】

    一、问题导入,揭示教学内容

    大家有没有玩过电脑游戏?有没有同学想过自己设计和编写游戏?

    游戏就是程序,要想设计、制作游戏,就应该学习“设计程序”。今天我们便来学习课本第二节《编写程序的步骤》(出示课题)。

    二、联系生活,讲解程序设计过程

    (过渡)程序设计的过程和平时我们解数学题的过程是一样的。

    1、解数学题的过程(师生共同总结):


    2、程序设计的过程

    请学生完成以下“连连看”:


      总结:(教师用PPT展示并要求学生在课本上划出)

    程序设计的过程为:首先对要解决的问题进行分析,在拟定出一套解决的方法与步骤,最后选用一种计算机能接受的程序设计语言来描述具体的步骤。

    二、游戏激趣,建立算法概念

    1、玩“猜生日”游戏

    游戏规则:两个同学为一组,互相猜对方的生日(不要月份,只要日期。如12日)。

    2、说一说你猜的方法

    方法一:在1~31中随意选数猜

    方法二:从大到小逐个猜

    方法三:从小到大逐个猜

    方法四:……

    3、算法的概念

    (过渡)大家在解决“猜生日”这个问题是采用的不同的方法和步骤,也就是采用了不同的算法。

    总结:(教师用PPT展示并要求学生在课本上划出)

    算法:解决问题的方法和步骤。

    思考:算法是程序设计过程的第几步?

    有了解题问题的方法与步骤,我们就可以通过某一门计算机语言来编程实现了。计算机语言很多,如:Visual Basic、Turbo Pascal、C语言、C++、Java等。但是,计算机语言只是一种工具,如果你大脑中没有解题的方法与步骤,光有工具是没有用处的。所以,算法称为程序设计的灵魂(教师用PPT展示)。

    三、实例演示,了解算法择优

    (过渡)刚才大家在解决“猜生日”这个问题时采用了不同的算法,那“猜生日”游戏程序又是如何解决这个问题的呢?

    1、运行“猜生日”游戏

    “猜生日”游戏位于“网上邻居”的“teacher”中,请你运行并计算猜的次数。

          

    教师进行统计,得出结果:最少1次,最多5次。

    2、“猜生日”游戏的算法

    看来该游戏的算法优于大部分同学的算法,那它又是怎么猜大家的生日的呢?

    假如老师的生日是12日,计算机猜了哪几个数?假如生日是27日,计算机又猜了哪几个数?

    (师生共同总结)猜中间数的方法

    3、算法择优

    上面的例子让我们可以明白一个好算法必须用到科学的方法,我们在解决问题时应努力找出最简单的方法。

    4、练习:

    A、一位商人有9枚银元,其中有1枚略轻的是假银元。你能设计用天平(不用砝码)将假银元找出来的算法吗?(称量次数越少越好)

    B、有十箱表壳(每箱装有10只)。已知其中的9箱是全钢的(每只重100克),另一箱是半钢的(每只重90克),全钢与半钢的外形与颜色一样。要求只称一次,就可将这箱半钢的表壳从10个箱子中区分出来。

    四、对比教学,讲解算法描述

    1、自然语言的弊端

    (过渡)刚才大家使用了自然语言来描述解决某个问题的方法与步骤,也就是用自然语言来描述算法。

    用自然语言来描述算法通俗易懂,但比较繁琐,不简洁。有些问题用自然语言来描述有时会产生“歧义”。

    如:初二男篮打败了初一男篮取得了冠军。

    问谁是冠军?

    张三对李四说他的小孩考上了省锡中。

    问谁家小孩考上了省锡中?

    2、流程图介绍

    (过渡)除了自然语言外,我们还可以用流程图来描述算法。它的特点就是直观、简洁、易懂,而且逻辑关系清晰。

    流程图的概念、符号名称、含义(教师用PPT展示并要求学生在课本上划出)

    3、用流程图描述“猜生日”算法


     

     

    4、练习:

    请画出“求底边a为3厘米,高h为2.5厘米的三角形面积”的流程图。

    五、拓展练习,提升学生兴趣

    (过渡) 一些复杂问题的解决方法与步骤必须要有全局眼光通盘考虑。请大家开动脑筋,找出解决下列问题的算法。

    1、农夫过河游戏:一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条小船。乘船时,农夫只能带一样东西。当农夫在场的时候,这三样东西相安无事。一旦农夫不在,狼会吃羊,羊会吃菜。请设计一个方案,使农夫能安全地将这三样东西带过河。

    2、牧师过河游戏:有3个牧师和3个小鬼一同在A岸,要把这6个都运送到对岸B去,中间隔了条河,只有一艘船,船上只能载2个牧师(或者小鬼)随意组合 但是在同一岸的人数只要少于鬼的数量,那么人就会被鬼吃了。请问您要怎么样把这6个都运送到对岸B去呢?注意:船上一次只载两个,且到对岸后必须有一人或一鬼划船回去接下一组;还必须保持全过程两边都不出现鬼比人多的情况。

    六、总结归理,告知后继学习内容

    1、通过学生谈收获的方式对课堂知识进行总结归理。

    2、告知后继学习内容

    通过这堂课的学习我们已经学习了程序设计的步骤、算法和算法描述等知识。根据程序设计的步骤,大家猜一猜接下去的任务是什么?

    以后我们便要开始学习如何用Visual Basic语言来编写程序,希望大家课后有时间可翻一翻《第2单元 VB程序设计基础》的相关内容。

    【教学反思】

    算法是程序设计的灵魂,也是整个程序设计中难点。为了上好这一堂课,我先后多次易稿,最后确定了以上教学方案,该教学方案注意了以下几点:

    1、回答了学习的必要性问题

    “为什么要学习程序设计?学习程序设计能为我们干什么?”这是学生在学习程序设计时经常问老师的问题。如果教师引导不当,就会导致学生没有明确的目标,缺乏学习的动力,直接的恶果便是:学生上课不认真→感觉听不懂→实际操作时玩游戏→一学期下来一无所获。所以,在本堂课上我用各种与生活相关的趣味性练习潜移默化地回答了学生这些问题,最后让他们深刻感觉到程序设计解决的问题是和我们的生活息息相关的,学习这一部分知识是非常有必要的。

    2、克服了传统教学的误区

    以前的教学程序设计教学,在教学内容的编排上,陷入一个误区:过于注重语句、语法等程序设计语言所涉及基本知识的讲解,忽视在构建程序过程中应用于分析、解决问题的一种逻辑思维的训练,忽视对整体知识综合应用能力的训练。这种“只见树木,不见森林”的教学就是造成学生动手解决实际问题能力差的直接原因。在本堂课中,我们抛开语言,从算法的角度来解决实际问题,在问题分析、思考、解决中提高了学生的能力。

    3、设计注重趣味性、生活化与挑战性

    程序设计一直是学生最头疼的知识点,如何使枯燥的教学内容变得富有趣味性,让学生学得轻松、有效?这是我们本学期编程教学需要解决的关键问题。在设计时我本着生活化、趣味性与挑战性的原则,进行了以下尝试:

    ①用“有没有玩过游戏?用想不想自己设计游戏?”作为开场白,引入课题;设计了贯穿始终的“猜生日”游戏,讲解程序设计过程的“连连看”游戏,最后拓展部分的多个“过河游戏”。游戏化策略满足了孩子的天性,又在“学与玩”之间架起了一座桥梁,将课堂融于游戏中,使教学形式游戏化,让学生在情趣盎然的游戏中学习知识,掌握技能。

    ②在讲解各个知识点的过程中,多次引用了生活中的实例:如在讲解程序设计的过程时,以生活中解数学题的过程为媒介;在讲解用自然语言描述算法的弊端时,使用 “谁考上了省锡中”和“谁是冠军”这两个生活中最普遍的问题生活化的实例让学生感觉到程序设计并不是高高在上的,它能解决生活中的实际问题。。

    ③练习富有挑战性,如天枰称重、过河游戏,本身就是网上非常经典的智力题。为了解答方便,教师还从网上下了相关Flash的动画。题目本身加上动画的辅助,极好的激发了学生的好胜心,很多学生下课迟迟不肯离去。是呀,十几岁风华正茂的他们有谁肯轻易认输呢。

    整堂课下来,学生掌握情况良好。但在设计过程中,尚存在以下疑虑:

    “过河游戏”放在哪什么时候做?给学生多少时间?

    拓展练习“过河游戏”是很好激发学生兴趣的一块练习,是放在上课前,还是在下课前几分钟,还是直接就放在课后?这一直是我倍感为难的地方。如果放在课前,会不会导致学生直接被它吸引,而没有心思好好听你讲课,也没有心思完成其它练习?如果放在课后,会不会起不到应有的效果?放在课上,有些班级稍微进度慢一点根本就没有时间。经过反复的思量,我还是采用了以下方案:如果上课有时间,让学生完成部分,如果你有兴趣,课后可继续练习;如果上课没时间,直接放在课后。两种方案均要求学生将练习结果进行记录,这样老师也就可以很好了解学生的学习情况了。

    所以,一份设计通过反复的思考,老问题解决了,新问题又产生了。这需要我们反复的实践、思考与调整。也许,这就是教学富有魅力的地方了。

  • 返回顶部】 【关闭】 【打印
  相关文章
  • 暂无相关文章
  • 网友评论
  • 登录 现在有条评论 查看全部评论
  • 标题:
  • 内容:
  • 验证码: