• 王宗瑛 函数DIY——谈尝试教学法在教学中的应用
  •           2011-7-4     浏览()     【
  • 苏州市第一中学校 王宗瑛

      【摘 要】尝试教学法又称五步教学法。所谓尝试教学法,是给学生创造一定条件或情境,让学生积极主动探索、独立思考、发现问题、分析问题和解决问题,以培养学生的探索精神和自学能力为主要目标的教学方法。尝试教学理论的基本观点是“学生能尝试,尝试能成功,成功能创新”,特征是“先试后导、先练后讲”。尝试教学理论的学科理论依据,主要包括哲学基础、教学论基础和心理学基础等三个方面。从哲学角度看,辩证唯物主义的认识论要求重视学生在教学中的实践活动,使学生获得知识,发展思维,培养能力。
      【关键字】尝试教学  探索  自学  创新
      信息技术课程中的教学方法,就是指为培养学生信息素养、完成教学任务而采取的教与学相互作用的活动方式的总称。
      随着教育改革的实施,我们的教学方法不在局限于原来的教授、练习等简单的几种,我们有了更多的方法,这些新方法有些能更有效的提高学生的探究和合作。不仅有认知心理学的代表作,也有建构主义的代表作;不仅有适合培养学生信息技术知识与技能的,也有适合培养学生情感态度与价值观的;不仅有适合班级教学的,也有适合小组和个别化教学的。只要教师应用恰当,对于全方面的提升学生信息素养是很有裨益的。
      而尝试教学就是一种较新的教学方法,它不同于以往的注入式教法,它充分发挥学生在课堂教学活动中的主体作用,一开始就要求学生进行尝试练习,把学生推到主动的地位;尝试练习中遇到困难,学生便会主动地自学课本或寻求教师的帮助,学习成为学生自身的需要。
      而且这个教学方法有很明晰的课堂操作,尝试教学在长期的教学实践中已经建立了适应各种不同教学需要的教学模式体系,包括基本模式、灵活模式与整合模式三类。根据尝试教学理论的实质和“先试后导、先练后讲”的基本特征,在教学实践中逐步形成了一套基本操作模式,其教学程序分七步:
      第一步是准备练习。
      第二步是出示尝试题。
       第三步是自学课本。
      第四步是尝试练习。
      第五步是学生讨论。
      第六步是教师讲解。
      第七步是第二次尝试练习。
      这七步是一个有机的整体,可以适当修正,也可以二步融合为一,关键看课程的需要。
      尝试教学法从教学论角度讲,尝试教学法符合现代教学论思想的要求,改变了传统的,把知识传授和能力培养统一起来,引起了教学过程中一系列的变化;从心理学角度上说,尝试教学运用了心理学中的迁移规律,重视学生已有的旧知识和生活经验在新知识学习中的作用,使先前的知识结构改组,结合新学得的知识,使学生形成能容纳新知识的更高一级的新知识结构。
      下面是我运用尝试教学法对《什么是自定义函数》所作的教学设计。
      《什么是自定义函数》是教材中第三章第五节中的第二小部分。对它的认识和运用才能让学生真正能用递归法来解决问题,可以说它是使用递归法解决问题的基础。自定义函数在编程中作用很大,我们可以通过一些程序中反复出现的代码来体现使用自定义函数的优越性从而激发学生学习自定义函数的兴趣,并为下一节课使用递归法解决问题做好铺垫。
      【教材分析
      1.教学课题
      3.5.2《什么是自定义函数》
      2.课时安排
      1课时。
      3.课程分析
      通过对典型程序的分析,指出重复较多的代码,然后提出简单的方式——自定义函数。学生自学自定义函数,尝试修改典型程序,结合学生具体情况,老师讲解自定义函数,再让学生尝试更多的题目(循序渐进的)然后由学生总结出自定义函数的优势,展示自定义函数的作用。并在最后设计一个可以用递归法来实现的自定义函数为下节课讲解递归法解决问题埋下一个伏笔。
      【教学目标
      1.知识与技能
      (1) 了解自定义函数的概念。
      (2) 学会和运用自定义函数来解决问题。
      (3) 了解自定义函数的优势。
      2.过程与方法
      (1) 通过对尝试题的尝试,来自学和探讨,然后在老师讲解基础上完成更难任务。
      (2) 利用自主学习和合作探讨学习相结合的方式,完成教学内容。
      3.情感、态度与价值观
      (1) 通过任务的完成,激发自主学习的能力,激发自身的成就感。
      (2) 通过小组讨论与探究活动,提高合作学习、探究学习的能力。
      【教学重点与难点】
      教学重点:自定义函数的定义和使用。
      教学难点:利用自定义函数来解决问题。
      【学情分析
      学生之前已经学习了《算法与程序设计》的前两章及第三章大部分,对算法思想有了初步的认识与了解,对程序设计的三种基本结构也有一定的掌握和运用,对于一些基本方法也有了大致的认知,已经能够对于一些简单的问题采用相应的程序来解决。但绝大部分同学对于一些有点难度的问题还是有些束手无策的感觉,无法透过问题去看到本质,对如何下手进入编程环节有点手足无措,这需要通过一些较多的实例来开拓他们的视线,帮助他们学会编程解决问题。
      【教学方法
      尝试教学法;学生自主探究式学习、互助式学习。
      【教学环境
      多媒体教室、Windows操作系统、VB开发工具、网络电子教室、多媒体课件。
      【教学过程
      一、新课导入
      通过“DIY”这个同学们都熟悉的字眼首先先吸引学生的眼球,而我们今天的“DIY”却是函数。这个DIY的函数就是我们今天所要讲解的自定义函数。
      然后拿出一个典型程序来突显未使用自定义函数的不便。
      二、学生自学
      让学生对照书本和我的PPT教案自己来学习“自定义函数”。边学习边来思考如下一些问题:
      (1)自定义函数写在哪里?
      (2)自定义函数的保留字是什么?
      (3)参数列表的参数个数如何确定?
      (4)自定义函数如何调用的
      三、学生尝试
      让学生针对给出的典型例题开始着手改写。
      学生边写,老师边下去指导,鼓励学生动手写自定义函数,并发现和收集同学们犯的共同错误。对编写完成但带有错误的程序要辅导学生来找错,来修改,直到成功。
      四、学生讨论
      随机请几位同学来谈下他们遇到的问题,有些问题同学们之间就能给出答案,有些共同的错误绝大部分同学都无所适从,急需老师来做出统一的讲解,这个时候的学生记忆是最为牢固的。
      五、教师讲解
      这个老师讲解并不是全盘解释和对学生自学内容的全部复述,而是对学生最容易犯的问题来做个综合解决。比如自定义函数到底写哪里?(写在通用里,并指出如何进入通用);又比如参数如何确定是几个?(这个看具体的函数来决定,这个和标准函数类似比如int函数只需要一个参数,而left函数需要2个参数一样。);还有函数体到底如何来写(这个其实是对原来应该写入主程序中,相同代码的提取);比如典型例题的改写可以写成:
           Function max(a As Single,b As Single,c As Single)
         Dim d As Single
         If a > b Then d = a Else d = b
         If d > c Then max = d Else max = c
        End Function
      中间三行就是函数体,这个也就是提取于刚才例题中主程序中反复出现的几行代码。
      六、二次尝试(探究实践)
      实践一、动手改革标准函数
      学生都清楚sgn函数是一个判断正负及零的函数(当然我们可以当做一个对标准函数的回顾,以带动对前面的内容的回忆)。
      然后我指出如果这个返回到值是中文说明的话是不是比1、0和—1更好呢。然后带动学生来改动这个函数。把事先准备好的要求学生填空的程序发给学生让他们自己来动手写写看。(代码见练习一)
      实践二、动手创建函数
      定义一个求Xn的函数(其中n为大于0的整数)。
      在前面讲解时,我们最多就是只有平方出现过,立方甚至更高次方很少出现,现在出现这个题目正好弥补这方面的缺失。而且这个题目难度也不大,又能体现自定义函数的优势,所以不会使学生感觉难以入手,又能帮助学生全面了解和感受自定义函数(代码见练习二)。
      实践三、自定义函数深入体会
      求4!+9!-6!-7!的值。
      阶乘在前面讲解循环结构时曾经出现过,所以做本题又有助于回忆前面内容,在回忆同时又让他感觉不一样,因为这里是多个阶层的加减,所以按照原来写法势必又长又麻烦,这样他就会切实感觉到定义一个专门求阶层的函数是多么的方便,然后就会去自定义阶层函数,然后实现阶层的加减。同样把这题放在最后一题还有个用意就是在下一节课讲递归的时候能将这个阶层的自定义函数直接改成递归的自定义函数,这样启到一个承上启下的作用,很好的衔接了2节课的内容。
      (代码见练习三)
      实践四、学生自己总结使用自定义函数的优势,同时在学生总结的基础上我给出我的答案。
      七、课程小结
      自定义函数是在标准函数无法满足我们用户需求的基础上提出的,它的使用极大的方便了我们程序员。但要注意要使用自定义函数要先定义,然后再在主程序中进行调用。写的时候要注意格式,记住要在定义的时候让函数名等于某些值。注意在定义时行参的类型,主程序中调用时传递的实参一定要相同类型,否则就会出现BYREF参数类型不符的错误。
      八、课后思考
      针对实践三提出N!的另外一种写法,思考如何将这种写法写入自定义函数中(当然这题也就是为下一节递归做的铺垫)。
      【参考文献
      [1] 李冬梅/李艺著.《信息技术教学:继承与创新》.  高等教育出版社
      [2] 普通高中课程标准实验教科书   《算法与程序设计(选修)》 教育科学出版社
      [3] 普通高中课程标准实验教材  《算法与程序设计(选修)》教师教学用书  教育科学出版社
      [4] 百度知道
      【教学反思
      一、标题为什么要定位在DIY上我想我就是要突出一个自己动手的意识,不论是本节课的内容是自定义函数要求自己动手来写函数这个意义层面上还是我们需要学生脱离只会模仿不会自己动手写程序这个层面上,我们都需要DIY!
      那么要突出DIY就要突出他的优越性,就像我们为什么不直接拿品牌电脑用为什么要自己DIY一样。我们直接给他一个典型例题让他感觉到不使用自定义函数会造成很多重码。接着我们给他的实践中也处处突出这个问题。
      比如说实践一:SGN函数的返回值让我们不能一目了然,那我们该用我们自创的“SGN”函数后非常的显而易见,更让学生感觉到这个DIY非常不错,值得我们去做。
      再比如实践二:如果不定义一个这样的函数我们根本就无法靠标准函数来解决这样的问题,那要解决问题怎么办,那只有我们自己来DIY。
      同样实践三你不自己去定义函数,那么程序将写的很长,而且代码被反复书写,只有通过这样的比较,学生才切实体会到自定义函数的好,才会去学。如果随便选些例题的话,不能突出优越性的话,会使学生感觉到使不使用自定义函数都无所谓,那学来无意义,从而导致本节课彻底的失败,而且不光是这节课的失败,下节课的递归算法同样会因为这节课的失败而无法实施。所以我认为课能不能上好,最重要的是否能调动学生的学习主动性和激发学生学习的积极性,要做好这2点就是要从枯燥乏味中寻求最佳,最能引起学生兴趣的切入点。所以我一直认为有没有一个好的切入点是一节课成败的关键。
      二、在课程实施中我们经常会遇到一些问题,而本课中一直会困扰学生的问题就是BYREF参数类型不符的错误。其实也就是学生对形参和实参的困惑。对于这样的困惑我举了一个我认为还比较恰当的例子。我对学生说形参如同大牌明星一样,实参如同武替 一般,在拍危险程度较高的戏时,我们看到大牌明星就出来走个过场,而我们正在看到那些惊险刺激的场面都是由武替来完成的。那为了防止穿帮,武替的打扮通常和那些明星是一模一样的。同样我们的实参和形参的类型也要一样否则不是穿帮,而是出错了。这样讲解后,学生对于实参和形参就有了个新的认识,也基本不再犯参数类型不符的错误,即使犯了也知道如何改正了,因为大家都不想穿帮。我想一个复杂的概念要让同学们能记住并理解,其关键不是讲多少遍的问题,而是怎么来化简,怎么来找到一个学生们能简单理解的替代物来说通这个概念。这样学习就不再有难点,我们同学掌握起来就更轻松。我想这才是一个老师真正要做的。
      三、尝试教学法为什么适合这节课?我反思了几点,一学生通过前面2章多的内容学习后具备了一定的程序设计的自学能力;二典型例题中的重码问题一直有过困扰学生,学生早就想解决类似问题了;三自定义函数很容易让学生想起曾经讲解过的标准函数,容易引起学生的知识迁移;四自定义函数本身既不是很简单又不是很复杂,非常适合学生来自学尝试,因为不会毫无障碍的就得出结论,也不会难的无法上手;五通过问题的求解,学生能互相取长补短,共同探讨;六对成功的同学他能发现自定义函数能带来很多创新,能弥补很多标准函数无法完成的任务。
      我想不是所有的课堂都只有我们老师一种声音,只有我们老师善教,善导,学生才会善学,善悟。
      附件
      课件素材.rar
      学习材料.rar

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