· 用户注册 · 设为首页 · 加入收藏 · 联系站长 · ·
 | 网站首页 | 互博国际 | 校园资讯 | 互博国际 | 德育之窗 | 科研之窗 | 教师 | 学生 | 家长 | 图片 | 网上评卷 | 
您现在的位置: 互博国际客户端下载 >> 互博国际 >> 教研课题 >> 正文 今天是:
互博国际-程序设计,重加工还是重控制
作者:孙萍    教育科研来源:本站原创    点击数:2489    更新时间:2006-10-26
         【字体:

在新课程的基础模块中,要用较少的课时认识程序,这是很不容易的。课标意图在“信息加工与表达”中介绍程序工作的基本过程与基本特征,这并无不可,但是,由于受“加工”认识角度的影响,可能会对程序的“控制”作用突出不够。


       标准模块
     必修·信息技术基础。
    标准条目
    (二)1.⑶初步掌握用计算机进行信息处理的几种基本方法,认识其工作过程与基本特征。

       程序设计基础知识的教学,传统上从生活算法入手,把程序作为算法的实现手段,再从三种基本结构入手,逐步揭示出程序结构与设计方法,内容较多,难度较大,技术性较强。课标把程序划归到“信息的加工与表达”条目之中,具体的描述为:“初步掌握用计算机进行信息处理的几种基本方法,认识其工作过程与基本特征。”我们看到,大部分教材也相应地把这部分教学安排在了这一范围之中。但是,由于受到“加工”主题的限制,很容易造成对程序功能的误会!
       “加工”、“处理”和“控制”这些词汇的外延很模糊,不宜用它们对程序的功能进行界定,也不便用它们区分程序在计算机中的功能与价值。我们仍然从课标所强调的工作过程与基本特征来讨论程序的功能与意义,借此分析程序在加工、控制上可能存在的差异。

      面对海量的信息,需要程序做什么
      从算法教学内容中,我们已经很容易了解到使用机器解决问题的关键是策略设计。策略的重点在于如何发挥计算机自动化、高速运算和具有判断能力的特点,通过重复的、自动的运算完成海量信息的处理。这也是使用机器把人从繁重的脑力劳动中解脱出来的关键所在。
     
举个例子,我们安排一个人在展厅门口欢迎来宾,来一个人说一声“欢迎光临”,内容很简单,无论谁都可以胜任;但若时间长、来宾多,这件工作就不容易做了,要一个人始终能保持耐心、热情,恐怕很难!所以,不少国际科技博览会在门口安放一个机器人做这项工作,并非仅仅为了体现其高科技水平,也是为了实现迎宾工作的自动化、标准化。为了说明这个问题,我们还可以用Word或Photoshop中的“宏”来进行类比教学。“宏”的操作与我们日常的录音机操作类似,在技术理解上难度不大,如果我们需要同一种规格的大量图片(如学生的电子学籍照片),使用“宏”可以按照一个标准进行快速、自动化的处理。
       现实生活中,我们的信息加工需求所面对的往往是海量的信息:每天变化的股市、成百上千名学生的成绩单、超市里每时每刻的流水账目……所以,计算机的自动化功能是非常必要的。其自动化是怎样构成的呢?
      我们不论是加工信息还是采集信息,只要目的是实现自动化功能,即要使用循环结构(for/next或do/while)控制计算机来完成,所以,程序对信息加工的自动化功能来自于程序的控制功能。

      面对复杂的推理,需要程序做什么
      如果要我们从考试成绩中找出语文成绩优秀并且各科总成绩也是优秀的学生,用电子表格软件的常规功能很不容易做到;如果要我们用Word或其他常用软件来分析“百钱买百鸡”这样的问题,也很难办到。而用程序来构造一种算法结构,就可以通过一层层、一环环的判断来逐步推理,最终得出答案。
      判断是我们用程序解决问题的最基本的方法之一。例如,我们常讲的“冒泡排序”,对其过程的理解是非常重要的,让学生理解了这种过程的算法意义,也就认识了程序的推理过程。我们在教学中要重视对程序环节的分析,可以借用“排队游戏”或者“黑匣摸球实验”,从环节上剖析程序的工作过程,而不要单从结果上强调程序的作用,甚至神化程序的功能。
      要让学生认清程序的结构与功能,在教学中要善于化繁为简。例如,引导学生认识“If/Then”构成的分支结构到底在起什么作用,最好设计一个渐进的过程,可以从基本的“变量数值交换”到“寻找最大数”,再到“冒泡排序”,逐层递进,让学生有阶段、有层次地去认识。不少教材想单从分析一个大程序上来认识程序,在教学中并不容易理顺思路。

      面对的不是信息加工,需要程序做什么
      针对程序的结构与功能,可以举出很多信息加工的例子,这就像以前我们没有重视生活算法时,针对算法一样可以举出很多数学题目,所以,我们要超越例子去看实质。
      正像算法有很多内容与经典数学不很相关一样,程序在很多时候与信息加工的关系也不明显,如程序对机器进行“自动化控制”时就是这样。当然有人会说,控制本身也是通过信息来控制的,这其中的信息流通怎么认识?很明显,像“机械手”这样的机器功能,对信息的作用重点并不是我们所认同的“信息的加工与表达”。至少,机械手的作用与对“图文声像”信息的“加工”是有很大区别的,这种单纯控制作用的程序在信息的输入、输出环节上有很大不同,信息的流程也很不相同,甚至有的很难见到信息的流通,但是程序指挥机器的作用并没有改变。
      同样是循环结构和分支结构的程序,如果举例不同,则体现的功能就有所不同。如果我们为画100个同心圆使用循环程序,这是非常明显的信息加工,因为加工的核心是“画圆程序”,正是其中的“画圆”给了我们信息加工的感觉。但是,如果我们需要让机器人跳100次圆圈舞呢?这里面的圆圈舞是一个让机器转圈的子程序,对这个子程序的100次调用,如果再说是信息的加工,已然是非常勉强了。前者的循环有自动化加工信息的感觉,后者的循环就没有了信息加工的感觉,其实两者的本质功能却完全相同,那就是——控制。

      程序的技术“底层”意义何在
      在生活中,我们使用计算机或网络作为工具,更关注的是信息需求层面的问题。说到程序,如果不从机器的技术“底层”来理解,是很难体现它与操作系统、应用软件的关系的。我们已经认识到,课标的基础模块因为对信息层面上的关注多一些,所以,在加工信息时要求人们关注一些信息加工“底层”的方法是非常必要的。只不过,教材在处理上,或者在我们的教学中,都可能会忽视程序在技术“底层”的功能与意义,从而容易遗漏或误解程序的作用。
      如果从技术“底层”的意义上来理解,“程序构成软件”、“软件是计算机的灵魂”和“算法使用程序实现,计算机才能执行”……这些公认的说法,都能很好地揭示程序的本质。由此,我们能很容易地分析出程序是一种“控制”代码,无论是自动化功能,还是智能化功能,都是在程序“控制”下产生的;无论是操作系统的桥梁作用,还是应用软件的专业服务,都是由程序“控制”来构成的。在程序控制下,有关的信息“处理”与“加工”都会产生自动化、智能化等特征。

         教学建议
      所以,我们在针对信息的加工需求分析程序的作用与意义的同时,还需要附加说明或者增加内容,对程序在“控制”上的本质意义有所介绍,这样才能更好地帮助我们认识程序的结构与功能。
      建议从三个层次来逐步推进对程序的学习过程:
      第一,算法与程序的关系。从算法设计到算法机器化实现,让学生通过阅读或检索此类史实,对人们发明程序的初衷有所了解,对程序的意义也就有了感性认识。
      第二,程序与软件的关系。从操作系统到应用程序,运用实例让学生从软件生成和工作原理角度了解程序的“底层”意义,防止认为用图表软件解决实际问题和用程序直接解决问题是完全不同的方法,要让学生认同它们本质的一致,区分用户效率上的不同。
      第三,程序结构的功能特点。对顺序、分支和循环三种基本结构,运用简单实例分析它们在解决哪些问题上具有优势,对自动化、智能化的根本来源进行分析。这样,不论是加工还是控制,都可以作为特例来剖析。最后,再剖析较大的程序,让学生体验使用程序解决复杂问题的过程,从中可涉及运算、判断和控制等各项作用。另外,也可以拓展从上向下、模块化和面向对象等知识。

        教育科研录入:孙萍    责任编辑:孙萍 
  • 上一个教育科研:

  • 下一个教育科研: