基于范例教学的应用探究

2012-04-29 12:36陈志文
中国信息技术教育 2012年4期
关键词:程序设计语句解决问题

陈志文

笔者在教学Pascal语言基础时,以学生喜爱的动画故事《喜羊羊与灰太狼》为情境,精心选择有代表性的基础知识设计了生动形象的典型范例,组织学生开展学习探究活动,引导学生完整体验设计程序解决范例问题的过程,用较少的时间在学生头脑中建立起较清晰的知识脉络,初步形成程序设计的思想和方法,收到了较好的效果。

● 迁移式范例:从易入难,培养学生举一反三的能力

程序语言只是解决问题的一个工具,教师在教学时必须注重充分挖掘程序语言背后的方法和原理,引导学生对所学知识进行有效理解和迁移。迁移能力是学生学习的一个重要标志,对学生来讲,学习的成效并不仅仅是掌握了多少程序设计的知识和技能,更重要的是能够在新的情境中应用已有的经验去解决新问题,获取新知识。

范例1:羊村也迈入了信息时代,慢羊羊村长打算给小羊们制造一台自动售卖机,听说小朋友们正在学习程序设计,就把编写核心计算程序的任务交给了你。要求实现的功能如下:输入两件商品的价格(均为整数),输出应该付多少钱。

羊村、自动售卖机等元素贴近学生的生活,需要解决的问题难度适应学生的智力发展水平,能使学生产生浓厚的兴趣,树立学习信心。接下来教师可通过模拟人脑解决问题的过程引导学生明确解决问题的三大步骤(如图1),并添加程序头部代码等内容加以完善,使学生顺利掌握程序基本结构、变量及常量概念、输入输出语句等基础知识。掌握了这些必要的基础知识后,开始引导学生进一步探究迁移。

迁移式范例所选择的教学内容是基础知识技能,重点关注学生知识能力的迁移。本例中教师从人解决问题的过程引申到计算机解决问题的步骤,从计算两件商品总价拓展到计算更多件商品的价格,从用简单加法解决问题迁移到采取其他计算方法。注重了程序设计中“设计”的思想方法的引领,使学生体验了解决问题的一般步骤和方法,在潜移默化中形成自主解决问题的信心和思路,避免产生学了语法知识却仍然不会设计程序的尴尬。

● 纠错式范例:以谬求真,培养学生缜密的思维习惯

典型的错误资源应该成为引导学生攻克难点的突破口,成为培养学生的查错纠错能力、训练学生缜密的思维能力的宝贵范例。纠错式范例是一种预设生成性错误资源,是对教学过程中学生发生错误的环节、错误情况及原因作了预先的设计,故意让学生出错,从而让学生经历发现错误、分析原因、纠正错误、反思提高的过程。

范例2:慢羊羊村长为了提高售卖机的人气,决定搞一次优惠促销活动,为购物总价满100元的小羊打九五折。他命令喜羊羊在原有的基础上改进程序,编写程序可难倒了喜羊羊,还是请你帮帮忙吧。

这个程序可以用简单的IF语句解决,稍加引导,学生就很容易根据所学内容写出程序,这个程序有个致命的语法错误,由于s声明为标准整数类型,在执行“s:=s*0.95”这一赋值语句时就会出现变量类型不相容的错误。这个错误学生是无法避免的,因为在此之前学生还没有接触过实数变量类型。设计这个范例的目的不仅仅是为了让学生巩固IF语句、接触实数类型及其他变量类型,更重要的一个目的是为了让学生在经历纠错的过程时对“变量相容”这一程序语言的语法规则记忆深刻,使学生认识到在编写程序的时候,要预先考虑好各变量的用途,为变量赋值的时候,必须使值和变量类型相符,要养成编写程序以后静态查错的习惯。

纠错式范例让学生在经历错误的过程中学习,让学生带着错误去感知、去辨析,在习得知识和技能的同时,获取了自己独特而又难忘的学习体验。学生对“错”之所以“错”了解得越深,那么关于“对”之所以“对”也就认识得越“透”。

● 概括式范例:融会贯通,引导学生将知识内化成能力

算法的选择对程序设计的重要性不言而明。好的算法写出来的程序代码简洁,执行效率高,需要学生拥有良好的信息处理能力,从已有的知识经验中概括总结出正确的有创造性的解决思路。学生习得的知识技能一多,也有可能会产生相互的干扰,从建构主义的角度来看,教师应帮助学生对学习内容所反映的事物的性质、规律以及该事物与其他事物之间的内在联系达到较深刻的理解,完成知识建构。

范例3:新年到了,羊村联欢晚会的压轴大戏是幸运大抽奖活动,只要哪只聪明的小羊能够在5次以内猜对奖品的价格(均为整数),那他就能领到奖品了。当然,每次猜数都会给出“too large!”或者是“too small!”的结果。编写抽奖程序的重要任务就要交给你了。

这是一个充满趣味的游戏程序,学生编程来实现的难度也不大,只要教师略一点拨,学生便可顺利地用REPEAT语句写出程序。在学生兴趣高涨地调试把玩这个程序的时候,教师可趁热打铁地提出用WHILE语句来修改这一程序(程序片断对比如图2)。同时引导学生仔细观察,标出两个程序语句在数据初始化、循环条件表述方式、循环体内部等方面的不同之处,认真分析产生这些不同的具体原因,比较两段程序执行起来的效率,体会两个语句的使用方法和特点,并能根据程序设计的需要灵活选用相应的语句,优化程序结构。

学生在用程序解决问题的道路上,将面临很多概括比较和优化选择。概括式范例以激发学生求知欲望,提高学生发现问题、分析问题、解决问题的能力为根本出发点,通过比较和概括突破某一阶段教学内容的重难点,进而在学生的头脑中建立各个知识点的联系,并将知识内化为能力。

● 规划式范例:自顶向下,培养学生统筹规划能力

自顶向下,逐步求精是结构化程序的首要原则。设计程序解决问题是一个系统的过程,每一环节都不容出错。教师应有意识地在日常教学中指导学生从总目标开始设计,将复杂的、大的问题划分为小问题,找出问题的关键和重难点,经过若干步逐步具体化的过程,将复杂问题转换成简单的问题集合。学生一旦形成了良好的规划设计能力,调试测试程序所耗费的时间将会大大缩短,代码的执行效率也会更高。

范例4:我们为羊村设计的自动售卖机虽然能够完成计算,但是功能简陋,运行以后也没有什么操作提示,羊儿们在使用中碰到了不少的麻烦。请你用所学的知识重新规划一个界面友好、功能丰富的设计方案,让像懒羊羊这样笨的小羊也能轻松操作。

这是一个综合性的主题探究活动,教师可指导学生在头脑中搜索已经掌握的算法与知识,快速建立与所要解决问题的联系,经过集体讨论确定程序设计的总目标,如在屏幕上列出商品清单,用户输入商品编号及购买数量时程序要列出相应的购物清单等。随后根据确定下来的设计目标,使问题解决的步骤具体细化,并用自然语言或流程图写出算法梗概,最后才是一气呵成编写程序代码。

初学程序设计者往往会犯一知半解就想急于求成的毛病,不假思索就埋头写代码。规划式范例能够有效训练学生系统性地掌握知识脉络,形成系统的思维方法和全面统筹规划程序的能力,初步形成自上向下、逐步求精的设计习惯,避免出现一时“才思泉涌”,半路却突然“断线”写不下去的情况。

猜你喜欢
程序设计语句解决问题
联系实际 解决问题
助农解决问题增收致富
在解决问题中理解整式
重点:语句衔接
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
化难为易 解决问题
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
如何搞定语句衔接题