广东省初级中学教材《信息技术》存在的问题探讨
江育奇
摘 ?要 从分析《广东省义务教育信息技术课程纲要(2016修订版)》入手,对广东省初级中学课本《信息技术》(B版)第二册(下)存在的问题进行探讨,指出目前以实例为导向编写“程序设计初步”课本存在的问题,并对“程序设计初步”课本提出编写建议。
关键词 VB;程序设计初步;信息技术;程序设计思想;课本;初级中学;课程纲要
中图分类号:G633.67 ? ?文献标识码:B
文章编号:1671-489X(2019)21-0079-04
1 前言
课本是教师实施教学工作的主要根据,学生通过课本学习知识,因此,课本编写的科学性非常重要。目前,深圳市初级中学二年级信息技术学科教材选用的是广东省初级中学课本《信息技术》(B版)第二册(下)(以下简称“课本”)[1],经仔细阅读“课本”内容发现,“课本”存在较多问题,具体问题分析如下。
2 “课本”编写的科学性探讨
《广东省义务教育信息技术课程纲要(2016修订版)》(以下简称《课程纲要》)是信息技术教材编写的主要根据。现从分析《课程纲要》入手,对“课本”编写的科学性进行探讨。
《课程纲要》有关“程序设计初步”内容分析
1)认识一种常用的计算机程序设计语言,认识计算机程序的作用及其执行的基本过程。如通过使用一段功能简单的程序,认识常用的计算机程序设计语言的工作界面及使用方法,体验程序的执行过程及作用。
2)了解算法的概念及其意义,能够用算法描述实际问题的解决过程。
3)了解流程图的基本知识,掌握将算法转化成流程图的方法。
4)知道计算机程序设计语言中常用变量、常量、数据类型、函数、对象、事件等概念的意义及用法。
5)了解计算机程序的顺序、选择、循环三种基本结构。可以结合实例形象地说明其实施过程;理解并掌握“分析问题—确定算法—程序实现”这一计算机解决问题的一般过程和方法。如根据典型的问题需求(如直接数学计算、根据不同情况的计算、重复计算等),呈现出计算机程序中的三种基本结构,让学生体验这三种基本结构在一般问题解决中的应用。
6)能编写简单程序,解决学习和生活中遇到的简单问题。如应用所学的程序设计语句,模仿计算机程序范例,编程解决类似的简单问题。
由此可见,《课程纲要》有三个主要特点。
1)在《课程纲要》中,对每个知识点都提出明确的教学目标及要求,各知识点前面的不同用词,体现出对各个知识点的不同要求。其中“掌握”一詞出现两次,分别是“掌握将算法转化成流程图的方法”和“理解并掌握‘分析问题—确定算法—程序实现这一计算机解决问题的一般过程和方法”。这两个“掌握”的内容应该是《课程纲要》的关键部分所在。这里还有一个“能够用算法描述实际问题的解决过程”的要求,与两个“掌握”的内容似乎是相辅相成的。其他的要求基本上都只需要“了解”就可以了。所以,培养学生掌握程序设计思想方法是《课程纲要》强调的核心任务。
2)《课程纲要》对实例的要求并不高,只要求“能编写简单程序,解决学习和生活中遇到的简单问题”。笔者认为,应该在《课程纲要》知识框架下举例子,举例子的目的是帮助学生理解和掌握《课程纲要》相关知识。
3)对于窗体设计以及控件等,并没有明确的规定。根据以上分析,在《课程纲要》中强调让学生掌握程序设计思想方法,实例不是课程重要的内容,窗体设计以及控件等在《课程纲要》中并没有明确规定。但“课本”在这些没有明确要求的知识上用尽了功夫,与《课程纲要》背道而驰。
“课本”的设计理念分析 ?从“课本”内容来看,以实例为导向,是“课本”主要的设计理念,甚至课题也几乎都采用实例的名称。“课本”第二章六节内容分别是“第一节 电子相册”“第二节 投票器”“第三节 模拟抽奖箱”“第四节 逐帧动画”“第五节 移动的坦克”“第六节 圣诞贺卡”。如果只看这一章各节课的标题,感觉有点儿像是程序设计实例教程,不像是《信息技术》教材。显然,在《课程纲要》中没有规定要求掌握这些实例的内容,但这些实例却名正言顺地走进了“课本”,还抢占了课题这个制高点。笔者认为,这种以实例为导向的“课本”设计理念,存在两方面的问题。
1)教学目标以制作实例为主要目标,偏离了信息技术课堂教学本来的目标。如第二章第二节“投票器”一课,这节课教学的最终结果就是设计一个投票器,可以认为这就是这一节课主要的教学目标。在这一节课中,“课本”先说明投票器设计的需求,然后根据需求列出相关的知识点,再对各个知识点进行说明,最后完成实例的设计过程。本节课《课程纲要》有两个知识要点,分别是数据类型、顺序结构,这些本来重要的知识点,在“课本”中却被淡化了,只是进行简单的说明而已。试想一下,如果将这一节课的课题修改为数据类型与顺序结构,那么,这一节课的教学内容会有怎样的变化?笔者认为,在这种情况下,在教学内容的设计上必须以呈现相关的知识点为导向,可以根据需要举一些实例,帮助学生掌握相关的知识点;但实例的选择应该是在《课程纲要》知识结构下的例子,像“投票器”这样超越《课程纲要》知识结构,必须添加新知识点的例子,选择的可能性不大。所以,以实例为导向的课本编写理念,有偏离原来预设教学目标的嫌疑。
2)知识的呈现缺乏系统性,难以满足学生自主学习的需求。如在以上“投票器”例子中,有关“数据类型”的知识点说明:“计算机中数据可分为整型、实型、字符型、逻辑型等多种类型。其中整型(Integer)是很常用的一种数据类型。如在投票器问题中,变量票数是以整数的形式不断增加的,不可能出现半票的情况。”[1]以上关于数据类型的描述并不清楚,学生阅读这段话时,恐怕难以理解各种类型变量的定义及其区别,根本无法通过自主学习完成相关知识的学习过程。
以上的这段话还会给人一种错觉:整数就是整型。其实这是错误的,整型数据与整数是两个不同的概念,VB整型是有范围的,在-32768(即-215)至32767(即215-1)之间。笔者认为,“数据类型”是VB重要的基础知识,作为一个重要的知识点,最起码必须让学生了解这些常用数据类型(如整型Integer、字符型String、单精度实型Single等)的定义、表示方法以及区别。由于变量的声明在后续的内容中常要用到,因此,如果在这里能将数据的类型以及变量的声明问题讲透了,学生在今后碰到要对变量进行声明的问题时,就会得心应手,这对今后学习VB具有重要的现实意义。
以上分析表明,以实例为导向的设计理念编写的“课本”,知识缺乏系统性,学生难以使用“课本”进行自主学习,是“课本”存在的主要问题。“课本”编写理念以实例设计为主要目标,往往要根据实例的需求添加一些新的知识点,因而导致淡化了《课程纲要》中所强调的知识点,有喧宾夺主之嫌。“课本”编写理念无论是教学目标,还是知识的系统性和完整性,都偏离了《课程纲要》预设的轨道。
3 “课本”的定位问题探讨
先来看看国家关于义务教育阶段课程编写的有关规定。《基础教育课程改革纲要(试行)》(教基〔2001〕17号)提出:“义务教育课程标准应适应普及义务教育的要求,让绝大多数学生经过努力都能够达到,体现国家对公民素质的基本要求,着眼于培养学生终身学习的愿望和能力。”[2]由此可见,“课本”的定位必须是以“让绝大多数学生经过努力都能够达到”为基本的要求。在《课程纲要》中,关于“程序设计初步”最后的要求是:“⑥能编写简单程序,解决学习和生活中遇到的简单问题。”可见,《课程纲要》关于“程序设计初步”对实例的要求其实不高。
然而,“课本”的第三章是“程序设计综合应用”,从这章的标题可以看到,这章的例子其实已经超越了《课程纲要》的要求。这一章共安排了三节内容,分别是“开发简易记事本”“设计打地鼠游戏”“开发自己的程序”。从教学内容来看,第一节虽然是“开发简易记事本”,但其中用到了“框架(Frame)”“文本框(TextBox)”“单选按钮(OptionButton)”“复选框(CheckBox)”等控件,还有字体属性设置等知识点。然而,《课程纲要》中并没有这些知识点。其他的两节内容也有类似的情况。
经与在一线工作的本课程授课教师沟通,部分教师反映本章节教学内容偏难,能掌握本章教学内容的学生很少,显然不符合“让绝大多数学生经过努力都能够达到”的义务教育课程的要求。综观现行的一些信息技术教材,编写者往往为了体现知识应用的价值,喜欢拔高知识的难度,这样的指导思想是导致信息技术教材出现偏难现象的主要原因,不符合義务教育阶段课程编写要求。
4 “课本”的规范化问题探讨
翻开“课本”前言,可以看到“课本”编写的指导思想:
“本书非常注重程序设计过程中问题分析的能力、算法和界面的设计能力以及调试技巧的培养,并将这些内容渗透到各章及相关问题的讨论中,提醒你遵守规范,注重用户感受,养成严谨细致、精益求精的编程习惯。”[1]这段话强调了要遵守“规范”,养成良好编程习惯的问题。
“如果学生在书写程序代码时遵从版式的基本规范,比如程序块采用缩进格式书写,同一层次的语句注意对齐,不但可以避免块结构的If语句缺少End If这样类似语法错误的出现,而且也使代码看起来结构清晰美观,易于阅读;如果学生在书写代码时遵从注释的基本规范,在代码的合适位置添加合理的注释,不但让别人更容易理解代码的功能和算法,与别人实现良好的代码交流和共享,而且也有利于学生本人理顺和展示自己的编程思路,为以后代码的修改奠定良好的基础。”[3]从VB教学方法经验交流的文章中可以看到关于“程序书写代码”“规范”的重要性的论述。但在“课本”中,虽然在前言有加强程序“规范”的要求,在“课本”程序实际编写中却没有具体落实这一要求,如关于“程序书写的规范格式”问题自始至终没有进行说明。笔者认为,作为编程的入门课,让学生掌握“程序书写的规范格式”,养成良好的程序书写习惯是必须重点强调的问题,如程序书写中缩进的问题、同一层次的语句要注意对齐以及程序注释的书写要求等,是“规范”最基本的要求,但“课本”在内容编排上忽略了这些问题。
另外,从“课本”一部分例子源程序可以看出,原作者自身并未注意程序书写规范格式问题,如“课本”图2-24(P50)(如图1所示)。该图在程序书写方面缩进与对齐都存在问题,这样的程序出现在“课本”中,简直是一件匪夷所思的事。这些问题看似小事,但如果学生一旦养成不规范的书写程序的习惯,今后再纠正就比较困难,对学生进一步学习程序可能造成严重的负面影响。
5 “课本”中存在脱离现实的实例
“课本”每一节都有实例。对“课本”的实例进行仔细分析会发现,“课本”的一些实例存在脱离现实甚至误导学生对VB知识应用的情况,举例说明如下。
用VB制作电子相册可行吗 ?“课本”第二章第一节课是“电子相册”,这一节课从电子相册的设计入手,先分析设计电子相册有关的需求,然后根据实例的实际需要,介绍实现这一功能相关的知识点:显示图片的Image控件、LoadPicture函数、命令按钮CommandButton等控件及窗体的设计方法。最后,学生在本节课的学习过程中,完成利用三个按钮控制显示三张不同图片的电子相册。Image控件、LoadPicture函数、命令按钮CommandButton等不在《课程纲要》知识框架内的知识点,也随实例的设计要求进入本节课的课堂教学中。现实中有人利用VB设计电子相册吗?换句话说,这样的实例有实用价值吗?笔者认为,现实中不可能利用VB来设计电子相册,因为这样设计的电子相册效率太低,一个按钮对应一张照片,要添加一张照片,必须加一个按钮,还要添加代码以及其他设置,才能完成在VB中设置电子相册的工作,工作效率太低,而且这样的电子相册显示效果太单调。现实中人们不可能使用VB来编写电子相册,所以,这是一个缺乏现实意义的例子。
其实现实中有许多设计电子相册的软件,可以快速地完成电子相册的设计工作,利用熟悉的PowerPoint也可以设计漂亮别致的电子相册。笔者认为,从软件应用的角度来讲,VB应该是可以用于软件开发的,如可以利用VB开发电子相册软件等,但利用VB编写电子相册这样一个具体的只有单一功能的应用,对于VB来说实在有大材小用之嫌,这个例子存在曲解VB用途的问题。
“模拟抽奖器”教学内容存在问题探讨 ?从知识内容上讲,这一节课有三个相关的知识要点:TextBox控件、控件数组、随机函数。这个实例从分析“人工方式随机抽取一个同学的名字”这样的抽奖问题入手,启发学生用计算机程序模拟人工抽奖的过程,并以抽取三个名字为例,介绍具体的方法;在程序运行时,让用户把这三个名字通过键盘输入计算机中,执行随机抽取处理算法,最后把得到的结果即随机抽取的名字输出到屏幕显示出来。在这个问题中,有三个问题要提出来进行探讨。
1)这个模拟抽奖器的科学性是要提出来进行探讨的第一个问题。笔者认为,虽然这个例子在一定程度上模拟了抽奖的过程,但当人数较多时,如有100人,能在一个窗体中添加100个文字框,再将名字输到这些文本框中,然后使用这样的方法去抽取名字吗?显然是不可能的。因此,这种做法有一定的局限性,不宜用于超过10人的抽奖问题。也就是说,对于现实中的抽奖问题,这种做法不是普遍适用的做法。
2)现实中人们在抽奖时,实际上很少使用直接抽名字的抽奖方法,往往是给每位参加抽奖的人发一个号码,如有1000人参加抽奖,则给每个参加抽奖的人发1~1000中的一个号码,抽奖就相当在1~1000中产生一个随机数,这样,利用随机函数可以方便地完成算法。这是现实中大部分抽奖都可以使用的方法。
3)在本节课中,有一个建立“控件数组”的知识点,笔者认为,在学生没有学习“数组”知识的情况下,在这里介绍建立“控件数组”的做法,学生可能难以理解。显然,这是以实例为导向,为了满足“课本”实例问题的需要而强加进去的知识点。根据以上分析,这样设计的“抽奖箱”其实不科学,与人们现实的抽奖方法有偏差。因此,在这里安排“控件数组”的课程设计方法是欠妥的。
“逐帧动画”教学内容所介绍的动画是逐帧动画吗 ?“课本”第二章第四节的标题是“逐帧动画”,现在要来探讨的问题是:这一节课的教学内容所介绍的动画是逐帧动画吗?要解决这一问题,还得从“逐帧动画”的定义说起:“‘逐帧动画是一种常见的动画形式,其原理是在‘连续的关键帧中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。”[4]根据以上逐帧动画的定义,在VB中这一节的“逐帧动画”课中所介绍的动画根本没有“帧”,也没有“关键帧”,其内容归根结底就是Timer控件设计的动画,这样设计的动画能符合以上“逐帧动画”的定义吗?笔者认为,“逐帧动画”教学内容与章节标题风马牛不相及。
笔者认为,实例是知识应用的载体,例子的选择既要体现出知识点应用的价值,也要为学生解决现实问题提供借鉴作用。因此,实例选择的科学性非常重要。在现实生活中,学生使用VB进行以上这些例子的程序设计工作,如用VB制作电子相册,是会贻笑大方的。所以,在学生VB知识基础相当有限的情况下,强行编撰一些学生在VB知识范围内应用力不从心而脱离现实的例子,不但起不到实例的教学作用,反而会起到适得其反的效果,这样的实例是缺乏现实意义的。
6 关于“课本”编写的建议
“课本”必须以呈现系统的VB知识为设计理念 ?程序设计课程就像数学、物理等学科一样,是一个有严谨知识体系的学科,如各种语句的格式、变量的声明等,都有明确的规定。现行程序设计的课程似乎有两种倾向。
1)要用实例让学生体验程序设计的作用,但对于刚入门的学生来说,限于自身的知识基础,难以设计让学生真正体验到程序设计威力的例子,因此,这种设计理念难以实现其预设的目标。
2)将设计游戏程序作为程序设计教学激发学生学习兴趣的催化剂,似乎程序设计课程离不开游戏。对于刚接触程序设计的中学生来说,要求能利用程序设计开发游戏软件,谈何容易?这样学习程序设计的设想都是错误的。大家看看现行的数学教材,其中有让学生体验或通过游戏去增强学习兴趣的内容吗?可能不多,甚至没有,但学生必须认真学习数学知识,为什么会这样?这是因为学生知道学习数学知识的重要性,学校还有各类严谨的数学考试与评价机制,因此必须认真学习。
笔者认为,程序设计课程也一样,必须以呈现系统的知识结构作为“课本”设计的理念,让学生看到知识的作用,认真去学习,掌握严谨规范的程序设计知识,受益终身,这比急于求成去学习一些程序设计实例更加有现实意义。如果能将程序设计的内容纳入考试的范围,这种做法的优越性将得到更充分的体现。现行的这种以实例为导向的课程设计理念所编写的“课本”,如果真要进行考试,考什么内容?考实例设计吗?显然不可能,考系统的VB知识吗?“课本”的编写根本不以知识的系统化为导向,知识呈现零乱,缺乏系统性和条理性。因此,在现行“课本”的框架下,考试真要实施的话,怎样考将是一个难题。信息技术的快速发展与日益显示出来的重要作用,信息技术步入考场指日可待。因此,规范程序设计“课本”的编写工作,为今后考试做准备,这样编写出来的“课本”才更加有意义。
“课本”的定位要符合义务教育课程标准要求 ?“课本”必须是以“让绝大多数学生经过努力都能够达到”为基本的要求,并使学生使用“课本”能进行自主学习,这是课本编写最基本要求。这就要求“课本”在内容规划上充分考虑知识的系统性和完整性。
优化“课本”的知识结构 ?“課本”每课内容在前面必须有明确的学习要求,并在课后安排适当练习题和作业,以达到巩固学习效果的目的。
7 结语
“课本”是教师进行教育教学工作的蓝本,因此,“课本”编写的科学性非常重要。如果“课本”编写偏离《课程纲要》的轨道或出现知识性错误,将会产生严重的负面影响。根据以上分析,“课本”确实存在较多问题,建议对“课本”进行修订,使“课本”在信息技术教学中更好地发挥作用。
参考文献
[1]广东省教育研究院教研室.广东省初级中学课本:信息技术(B版)第二册(下)[M].广州:广东高等教育出版社,2017.
[2]教育部关于印发《基础教育课程改革纲要(试行)》的通知(教基〔2001〕17号)[DB/OL].http://old.moe.gov.cn//publicfiles/business/htmlfiles/moe/s8001/201404/xxgk_167343.html.
[3]李志辉.《Visual Basic程序设计》课程教学中应强化的四个方面[J].电脑知识与技术,2013(23):5297-5299.
[4]逐帧动画[DB/OL].https://baike.so.com/doc/5724746-5937481.html.