基于核心素养的初中程序设计教材设计思路解析
闫妮1,钟柏昌1,管海蓉2
(1.南京师范大学教育科学学院;2.南京市雨花台区教研室)
本文发表于《中国信息技术教育》2016年第12期。
初中程序设计教材的开发,要突破陈规,适应基础教育对学生核心素养培养的要求,避免简化版的大学专业教材和说明书式的实训教材两种取向。根据河北省中小学信息技术电子教材(以下简称“冀教版”)的编写计划,本小组承担了冀教版初中程序设计分册的开发工作。本册教材安排在初中八年级上学期教学,共计16课时,其中第14-16课时为选修课时。教材所用编程语言为Visual Basic(以下简称“VB”),版本为VB 6.0。借此专题,向各位同行简要介绍本册教材的设计思路。
一、目标定位:核心素养
当下倡导课程改革的人士认为,基础教育的核心要义不是培养学生成为单纯的有知识、技能并掌握方法的人,而是使之成为有修养的人,有智慧的人,这样的人,不妨暂时称之为有“核心素养”的人。[1]
所谓核心素养,可以刻画为三个层次:最底层的“双基层”,以基础知识和基本技能为核心;中间层的“问题解决层”,以解决问题过程中所获得的基本方法和基本态度为核心;最上层的“学科思维层”,指在系统的学科学习中通过体验、认识及内化等过程逐步形成的相对稳定的思考问题、解决问题的思维方法和价值观。[2]基于上述认识,本册教材编写中,我们认为需要传递给学生的核心素养也可以从上述三个层次进行描述。
双基层:掌握面向对象程序设计的基本方法;理解语法错误和逻辑错误;掌握测试与调试方法;掌握软件开发一般流程等。
问题解决层:能够对任务进行需求分析;能够发现并解决程序中存在的问题;能够利用结构化程序设计方法开发较复杂的程序。
学科思维层:体会计算机工作的原理,认识冯•诺依曼体系;体验迭代思想;体会模块化、结构化之于软件质量和开发效率的重要性;能够认识到抽象与建模是人类认识和改造世界的基本方法;理解测试与调试等工程思想。
以核心素养的三层结构为指引,我们试图将上述核心素养渗透至每个单元和每节课,如表1所示。
表1 冀教版初中程序设计分册核心素养分布表
课 |
核心素养 |
|
初识程序设计 |
第1课:高斯做过的题V1.0 |
双基:理解控件、对象、属性、事件、指令、算法以及程序等概念;理解计算机工作原理;注释的使用方法;保存文件的方法。 问题解决:学会查找、打开文件的方法;能够调试程序;了解设置属性和添加事件的方法。 学科思维:体会程序设计的意义;体验迭代思想;认识冯•诺依曼程序贮存思想。 |
第2课:高斯做过的题V2.0 |
||
我也能写程序 |
第3课:我的“Siri” |
双基:能够掌握Label、Button、TextBox、Image、PictureBox、DriveListBox、DirListBox和FileListBox等控件的用法;初步运用赋值语句和自带函数;理解常量、变量、优先级和表达式;掌握为不同对象添加图片的方法;理解控制对象的大小和位置的原理;学会路径的引用方法。 问题解决:掌握对象的命名方式;通过调试来理解声明变量数据类型的重要性;在运行程序中理解输入输出的概念。 学科思维:初步体会参数传递的思想;理解语法错误和逻辑错误,并形成测试意识。 |
第4课:BMI计算器 |
||
第5课:我的图片浏览器V1.0 |
||
第6课:我的图片浏览器V2.0 |
||
让程序更智能 |
第7课:“接纸团”小游戏V1.0 |
双基:掌握Timer控件和Timer事件的用法;掌握Rnd函数的用法;能够运用关系、逻辑表达式;能够用IF语句来处理多分支问题;能够使用流程图。 问题解决:能够改进程序;能够运用分支/嵌套分支结构。 学科思维:理解分支结构对程序智能化的影响。 |
第8课:“接纸团”小游戏V2.0 |
||
综合实践活动 |
第9、10、11课 |
双基:掌握IF语句的用法;熟练运用Rnd、Int、KeyDown和KeyPress等函数;能够设置TabIndex、Enable等属性;理解Case语句,并能与IF语句进行区分。 问题解决:能够从最简单的功能入手,不断发现问题和优化程序功能。 学科思维:体验程序设计的完整流程。 |
让程序更能干 |
第12课:倒计时和抽奖工具 |
双基:掌握并区分For…Next、Do…Loop语句的用法;了解Sleep函数的用法;理解分支、循环结构的关系;理解数组的作用、赋值方法,并利用监视功能感受数组元素的变化;理解冒泡排序算法和数据交换算法。 问题解决:能够运用数组和循环结构实现简单的功能。 学科思维:理解利用数组结构使数据“规则化”的技术手段。 |
第13课:评委打分系统V1.0 |
||
第14课:评委打分系统V2.0 |
||
让程序易读写 |
第15课:让程序更简洁 |
双基:掌握自定义函数、自定义过程的方法;理解面向对象的一些概念;熟练软件开发的一般流程。 问题解决:能够实现模块化设计,使程序易读写。 学科思维:体会模块化、结构化之于软件质量和开发效率的重要性。 |
第16课:面向对象软件开发 |
二、内容选择:知行并举
根据上述核心素养的解析,不难发现本册教材在课程目标上既注重学习者对基础知识的掌握,又关注其应用能力的培养,即坚持“知行并举”。那么体现在教材内容上,就是要选择那些能够建立两者联系的内容,实现对学生的知识和能力的双重提升。重要的是,知行并举要特别体现在每一节课中,除了初始的一两节课外,其他课时的内容均应该以此设计,表2列出了部分课时的做法。
表2 冀教版初中程序设计分册中知行并举的课时内容设计举例
课例 |
知行并举 |
我的图片浏览器V1.0 |
知识层面:属性Picture的设置方法;坐标系的使用方法;容器的概念;控制大小和位置的属性。 能力层面:设置属性Picture;获取某个对象的坐标;实现对象的缩放、居中和上下左右移动。 活动设计:以“Windows照片查看器”为原型,让学生完成软件的开发。具体活动过程为:计算对象的坐标值,并编写代码实现浏览图片的功能;在调试程序的过程中优化程序并保存文件。 |
“接纸团”小游戏 |
知识层面:Timer控件及其属性、Timer事件的使用方法;分支结构的执行过程;条件表达式;Rnd函数、If单分支和双分支语句的使用方法;逻辑表达式;KeyDown事件的使用方法;If嵌套语句。 能力层面:利用Timer控件实现纸团自动地持续下落;能用流程图表示程序的执行过程;写出控制程序流程的判断条件;实现对纸团的键盘控制并设置游戏时间。 活动设计:选择游戏的一些基本功能设计成小游戏,从而激发学生的兴趣。具体活动过程为:实现部分功能,并在测试过程中发现的软件功能局限,引出Timer控件和Timer事件;在运行程序中发现问题,利用If语句、Rnd函数和KeyDown事件逐步解决问题。 |
评委打分系统V1.0 |
知识层面:数组的意义,声明和赋值方法;Format函数的使用方法;测试与调试。 能力层面:编写代码获取选手最终得分;保留得分为两位小数。 活动设计:以解决班级日常活动为目标,让学生体会程序设计为生活和学习服务的意义。具体活动过程为:利用“监视”功能感受数组元素变化;求最大最小值并保留选手得分为两位小数;在测试中发现问题,体会文本类型和数值类型的区别。 |
三、内容组织:聚类思想
知行并举的课程内容还需要通过合理的组织才能清晰地呈现给学习者。在本册教材中,我们以“聚类”思想为指导设计教材内容的整体框架和章节结构。“聚类”思想指依据某种线索组合一系列教学项目,形成具有内在联系、具有螺旋上升和发散结构的教学单元,循序渐进地展开课程。[5]我们在单元和课时两个层面都体现了聚类思想。
在单元层面上的聚类,如表3所示。
表3 冀教版初中程序设计分册单元聚类表
单元 |
主要内容 |
聚类线索 |
一、初识程序设计 |
程序设计的一些概念和VB程序设计的基本操作 |
VB操作的基本方法 |
二、我也能写程序 |
顺序结构;基本控件、对象、属性和事件;简单语句和函数;语法和逻辑错误 |
顺序结构 |
三、让程序更智能 |
分支结构;If语句和Timer事件 |
分支结构 |
四、让程序更能干 |
循环结构;For语句和Do语句;数组;排序算法 |
循环结构 |
五、让程序易读写 |
自定义函数和过程;模块化程序设计 |
结构化程序设计思想 |
根据已有研究,大致有三种聚类方式:以相似的功能聚类,以相似的目标聚类,以相似的技术思想聚类。在课时层面上三种方式均有体现。
(一)以相似的功能聚类
通过设计某些问题解决活动,将技术工具所具有的相似功能集合在一起,达到功能操作和问题解决的融会贯通[6],如例1所示。
例1:倒计时功能
任务1:使用For语句实现以秒为单位的倒计时功能。
任务2:比较Timer事件和For语句在实现倒计时功能上的异同。
案例解析:任务1的完成需要运用For语句;任务2中的Timer事件已在分支结构中学习,但由于当时活动的任务较多,并没有作详细说明。所以任务2一方面是为了让学生更好地理解Timer事件的本质;另一方面是说明实现倒计时功能的两种方法的异同。
(二)以相似的目标聚类
使用不同的工具可以解决相同的问题,从而聚类不同的技术工具和使用方法[7],如例2所示。
例2:“选手排名”功能
任务1:设置六位评委,单击“计算”按钮得到选手最终得分。
任务2:实现对多个选手进行排名。
案例解析:任务1借助数组获取多个评委的打分,进而利用循环语句求得选手得分。任务2既要实现选手得分的统计,又要进行选手排序。所以需要增加两个数组分别存放选手序号和选手得分,并使用冒泡排序算法,实现排序功能。两个任务均用到数组和循环,使学生在递进的任务中理解数组和循环的适用情境和意义。
(三)以相同的技术思想聚类
有些技术工具、方法和程序功能其背后的思想是一致的,依此聚类,可以达到举一反三的效果,如例3所示。
例3:“数据传递”思想
任务1:在例2任务1的基础上,去掉选手的最高分和最低分,并显示最高分和最低分。
任务2:利用冒泡排序算法实现选手排名。
案例解析:任务1中最高分和最低分的统计即求取选手得分的最大值和最小值,需要设置两个变量来存放。任务2需要借助一个中间变量来完成排序。作为一个活动相继的两个任务,任务1和任务2以不同的算法呈现数据传递思想。
四、内容呈现:生活化和结构化
1.生活化
生活化指从学生经验出发渐进的引入新的概念,而不是生硬的呈现这些概念。在教材上,首先,要选择能满足学生的学习或生活需要的主题;其次,在内容呈现上要符合学生的认知规律,在学生运行程序的过程中引出问题及相关知识点。
例如,第5课图片浏览器的设计,涉及图片位置的控制,需要引入坐标系,对于本册教材的对象而言,此概念在数学科目中已经学习过,但是两者存在明显差异,因此教材要求教师从数学中的坐标系出发引出VB中的坐标系,引导学生分析两者的异同,以便学生建立两者的联系。再如第13课中,把数组解释为“将无规则的数据‘规律化’的方法之一”,无论存储内容有无规律、如何变化,数组名称始终是a(0)到a(i)。因此,在编写程序时,通过数组元素的名称来引用这些数据,就可以将无规律分布的数据变为有规律的存储。这样的描述便于学生理解数组的含义和使用方法。
2.结构化
结构化指以某种稳定的结构来描述每节课的内容。在本册教材中,每课的基本结构包括:学习目标、内容结构和正文三部分;正文部分,除初识单元外,其余课时均以“程序设计一般流程”呈现。每个部分的含义为:
“学习目标”呈现每节课学生应具备的知识和能力以及掌握程度;
“内容结构”以思维导图的形式将每节课的内容进行梳理和整合;
“需求分析”以学生日常生活和学习为原型为主题,便于学生直观地理解需求并激发学生的兴趣;
“界面设计”在初始的几节课中会为学生提供搭建界面的步骤以及“对象事件分析表”,之后随着知识和能力的提升,由学生自己完成“对象事件分析表”和界面的搭建;
“算法分析和程序编写”通过问题不断分析得出实现程序功能的算法,积累程序设计的知识和技能;
“调试与保存”在调试程序的过程中发现问题,完成程序的优化。
结构化的呈现方式,一方面便于学生阅读,减少认知负担,并提供学习支持;另一方面有助于学生掌握和理解软件开发这类任务的一般思路。
五、小结
本册教材围绕“核心素养”,以“知行并举”为原则,运用“聚类思想”组织内容,使内容的呈现生活化和结构化,可以说是在课程改革背景下的一种全新尝试。据此形成的教材大体具有如下特点:
一是系统性和基础性。在总体上前后相继形成清晰的知识体系,便于学生形成富有逻辑的认知结构;注重VB程序设计的横向梳理,即基础性知识。
二是理论性和实践性。在内容选择上,坚持知行并举,在课程实施过程中通过具体的活动设计紧密联系在一起,避免了孤立的理论知识学习和技能训练。
三是预设性和生成性。知识、能力体系作为预设知识静态存在,而核心素养以隐性知识渗透其中。
四是主体性和主导性。活动以学生的日常生活和学习为原型进行设计,充分考虑学习者的需求和兴趣;为避免陷入“碎片化”和“重复”的经验积累,以聚类和结构化的形式呈现,为学生提供支架性的帮助。
参考文献:
[1][2]李艺,钟柏昌.谈“核心素养”[J].2015(9):17-24.
[3]李艺,钟柏昌.知能课程开发:类型、方法和案例[J].电化教育研究,2012(1):5.
[4][5][6][7]钟柏昌,李艺.信息技术课程内容组织的三层架构[J].电化教育研究,2012(5):17-21.