APP下载

编程软件、学业水平对初中学生计算思维发展的影响研究

2020-05-25夏小刚张文兰刘斌郭建

数字教育 2020年2期
关键词:计算思维

夏小刚?张文兰?刘斌?郭建

摘 要:近年来,计算思维的培养受到国内外广泛关注,一线教师纷纷尝试应用各种编程软件来发展学生的计算思维。为了解不同编程软件、学业水平对学生计算思维发展的影响,本研究以成都某初中七年级共187名学生为研究对象,进行了为期3个月的准实验研究,探讨不同编程软件、学业水平、学生性别等条件下学生计算思维发展的差异。研究发现:(1)不同学业成绩水平的学生在编程软件的选择方面有不同的需求。对于学业成绩水平较低的学生,可视化编程优于代码编程,而对于学业成绩水平较高的学生,编程软件的影响并不显著。(2)学业成绩水平对学生计算思维的发展有显著影响,并呈较强的正向相关。(3)不同性别学生之间计算思维的发展并无显著差异。基于这些研究结果,本文针对初中编程教育,从编程软件的选择、教学策略的运用、教学实践的任务设置等方面提出了促进学生计算思维发展的三条建议。

关键词:编程软件;学业水平;可视化编程;计算思维;准实验研究

中图分类号:G4文献标志码:A文章编号:2096-0069(2020)02-0070-06

收稿日期:2019-11-13

作者简介:夏小刚(1990— ),男,湖北荆州人,中学二级教师,博士研究生,研究方向为创客教育、STEM教育;张文兰(1968— ),女,浙江东阳人,教授,博士生导师,研究方向为信息技术教育应用;刘斌(1984— ),男,湖南株洲人,讲师,博士,研究方向为新媒体与学习心理;郭建(1990— ),男,四川眉山人,中学二级教师,硕士,研究方向为机器人教育。

引言

随着人工智能时代的到来,计算和计算机的广泛应用,计算思维逐渐成为人们应掌握的一项基本能力,计算思维在教育领域受到高度关注,越来越多的国家、国际组织和知名企业都在研究计算思维如何进入中小学。2017年版《普通高中信息技术课程标准》指出:计算思维作为信息技术四大学科核心素养之一,是信息化社会中数字公民所应具备的基本素养[1]。同时,它也是学科核心素养的根基[2]。从内涵上来看,计算思维是指运用计算机科学的基础概念进行问题求解、系统设计及人类行为理解等涵盖计算机科学之广度的一系列思维活动[3]。从实践过程来看,计算思维是一个问题解决的过程,包括以下特点:(1)制定问题;(2)组织和分析数据;(3)建构模型;(4)设计算法;(5)优化方案;(6)迁移推广。

在国内外中小学教育教学实践中,机器人教育、编程教育、STEM教育和工程教育是培养学生计算思维的几大主要方式。其中,编程教育因其开展成本低、操作方便,成为中小学教师广泛选取的培养手段[4]。

目前编程教育主要包含两种方式:代码编程和可视化编程。代码编程是传统的编程方式,采用命令和函数等来执行相关操作,学生应用代码编程之前,需要掌握相关的关键字、语法和函数等基础知识,在具体的教学中以C、C++、Logo等为代表。可视化编程以“所见即所得”为原则,规避抽象、烦琐的程序语言编写,通过直观的操作方式,像搭积木式地编写出应用程序的各种界面和逻辑,在具体的教学中以Scratch、App Inventor、Swift Playgrounds等为代表。在近几年的编程教学实践中,笔者发现:代码编程相对于可视化编程而言,由于执行和反馈不能实时同步,没有视觉上的反馈,使绝大部分学生感觉难度较大、学习兴趣较低,学习效果并不理想。而可视化编程的优势主要体现在以下几个方面:第一,可视化编程操作简单,易于激发学习兴趣;第二,封装的代码块能降低调试的难度;第三,降低技术门槛,可有效聚焦于计算思维的培养[5]。但是,可视化编程相对于代码编程也存在一些不足:学生只能浅层次地了解模块之间的逻辑关系,并不知道具体代码的运行原理,而且不便于学生更加深入地学习程序设计,进行产品开发。而苹果公司推出的Swift Playgrounds是一款适用于iPad的创新App,采用游戏化闯关学习的方式,所编即所见,它不要求用户具备编程知识,是一款典型的可视化编程工具。因此,本研究拟通过准实验研究,分析可视化编程和代码编程在发展学生计算思维上是否有显著差异,同时,探究是否存在学业水平和性别方面的差异,如有差异,造成差异的原因又是什么,为深入推进计算思维教学提供数据支撑。

一、研究现状分析

计算思维是当前国际计算机领域广为关注的重要概念,也是信息技术教育中的研究热点。世界上很多国家和地区都非常重视中小学计算思维的培养,纷纷在中小学计算科学教育的目标任务中明确纳入计算思维培养的内容,并积极展开实践探索。本研究在Web of Science和中国知网数据库上搜索近十年计算思维培养的相关研究文献,梳理发现国内外关于中小学计算思维的研究主要集中在以下几个方面:

(一)中小学计算思维的培养研究现状

在课程设置方面,不同国家和地区采取了不同的方式,有的替代已有的课程(如英国),有的开设全新的课程(如澳大利亚),而大部分是作为选修内容添加,或与其他课程 (如STEM课程)进行整合,贯穿在主题教学活动中[6]。

在培养工具方面,可视化编程、基于Web的仿真创作工具、教育机器人及低成本开源硬件这四类,近年来常被作为计算思维培养的课程工具。其中,可视化编程更适合初学者,能帮助学生跨过代码编程语法的障碍,更關注创造和思维本身。

在培养方式方面,目前主要聚焦在机器人教育、STEM教育和编程教育等方面。Berland(伯兰)等比较了八年级学生中乐高机器人与虚拟机器人的影响,并使用伪代码编程的前后测试测量了计算思维增益,研究表明,两组学生的计算思维技能均有显著提高,但两组之间并无显著差异[7]。Basu(巴苏)等在STEM教育中发展学生计算思维的初步研究证明,CTSiM能够帮助学生克服困难,发展学生计算思维[8]。Hutchins(哈钦斯)等人在物理课堂中测试男女生在计算思维学习过程中的自信水平,结果发现在“抽象、控制流、分解和条件逻辑”四个维度上男生较女生的自信水平高[9]。

在评价方式方面,目前主要有三种:一是通过评价量表来测量,例如宁可为、郁晓华等根据计算思维的定义编制的量表[10][11];二是通过作品来分析学生计算思维的发展,例如Koh(科赫)提出CTP图检测计算思维能力的发展和Moreno-Leo?n(莫雷诺-利昂)等开发的Dr.Scratch项目;三是通过测试题的方式,测验学生计算概念、问题解决能力的发展,例如Roma?n-Gonza?lez(罗曼-冈萨雷斯)等提出的CTt测试题等[12]。

(二)关于编程教育培养学生计算思维的研究现状

在上述主流的三种培养方式中,编程教育具有门槛低、操作简单、容易在信息技术课程中实施的优势,一线教师纷纷尝试应用各种编程软件来发展学生计算思维。国内外学者依托编程教育做了大量的实证研究。

在代码编程方面,国内外基于代码编程培养中小学计算思维的研究相对较少。代码编程通常与编写指令、开发算法紧密联系在一起,学生常常需要通过解决一些枯燥的数学题来学习编程。曹恒来进行了基于BASIC语言和Logo语言培养小学生计算思维的实践。研究发现,基于代码编程的方式,学生必须自己输入指令,语法错误往往导致学生寸步难行,大大延长了程序设计学习的时间,影响了程序设计能力的提高[13]。Keri Duncan(克里·邓肯)基于Logo语言在小学五年级进行跨学科学习,研究表明编程教育不仅能发展学生的空间几何能力,还能提高学生的计算素养[14]。

在可视化编程方面,Grover等为七、八年级学生设计了一个为期七周的基于Scratch的计算思维课程,研究显示,混合式学习和面对面学习均能显著提高学生计算思维[15]。宁可为等通过准实验研究验证了App Inventor培养中学生计算思维的有效性,研究显示,将App Inventor引入信息技术课堂,学生的计算思维能力及学习兴趣得到了明显的提高[16]。郁晓华等设计了基于App Inventor的计算思维培养的教学实践,从计算概念、问题解决两个维度验证了可视化编程对于学生的意义[17]。

从编程工具方面来看,可视化编程最受计算思维教育工作者的欢迎,但是,在发展学生计算思维方面,可视化编程是否优于代码编程还有待进一步论证。在编程教育中,在什么学段选择可视化编程或代码编程?何时从可视化编程过渡到代码编程?不同性别学生计算思维的发展会有差异吗?这些问题都有待进一步论证。

因此,本研究尝试从评价视角出发,探究不同编程软件和学业水平下学生计算思维发展是否存在差异,以期为初中学生提供更有针对性的编程软件选择策略和计算思维课程。

二、研究设计

(一)研究假设

基于研究现状的分析,本文提出如下研究假设:

假设1 可视化编程相比于代码编程能更好地发展学生计算思维;

假设2 两种编程环境下,学生学业成绩均与计算思维的发展水平有显著相关性;

假设3 相同编程软件环境下,不同性别学生之间的计算思维能力发展存在差异性。

(二)實验对象

为了解不同学业成绩水平学生计算思维的发展状况和不同编程软件在发展学生计算思维方面是否存在差异,笔者根据不同学业成绩水平,分别选取了两个班级作为实验对象,采用双因子实验设计,具体方案见表1。本次实验选取成都某初中七年级4个班级共187名学生作为实验对象。

通过对比总成绩和数学成绩,发现普通班2班、10班无显著差异,提高班6班、8班无显著差异,提高班学生总成绩和数学成绩显著高于普通班。在入学之前,所有学生均没有Swift Playgrounds和C++的学习经历。

(三)教学设计

为了排除学习内容难度和进度的影响因素,在教学内容的设计方面,由教研组4位教师集体讨论,确定内容框架,并制定C++和Swift Playgrounds相关学习方案,学习内容包括5个主题,共12课时。

根据计算思维的定义和特点,结合项目式学习流程,本研究构建了如图1所示的课程实施模式,主要包括五个学习环节:问题定义、解构分析、模式识别、模式归纳、算法开发。通过该流程将真实世界中的问题转换成计算机可以识别的方案。

(四)研究工具

本研究中采用的主要研究工具是计算思维测试题(Computational Thinking tests,CTt)。CTt适用于12到14岁的学生。该测验α系数为0.79,可信度较高,通过分析该测验与基础心理能力量表(PMA)、RP30问题解决能力测试的相关系数,结果显示CTt具有较高的效度[18]。该测验为在线测试,包括28道选择题,题目编制依托Code.org的编程界面,题目设计重点考察学生应用编程解决实际问题的能力。主要的题型包括序列解决问题、补全缺失语句、找出错误语句三种。由于原测验语言为英语和西班牙语,笔者对该测试进行了汉化,形成了本次实验研究的计算思维测评工具。

测评制作成功后,由信息技术教研组两位老师分别进行了试测,确保知识点上没有歧义,并对题目排版进行了优化。随后,笔者在七年级9班进行了试测,对测试题进行进一步修正,便于学生理解题目的含义。

(五)实验流程与数据处理

2017年9月,本实验在七年级4个实验班级的信息技术课堂上同步进行,课程周期为每周1节课(40分钟),为排除教师的影响,4个实验班级由同一位教师授课。在进行为期3个月的实验之后,笔者对参与实验的学生进行了计算思维测试。CTt依托问卷网测试平台进行数据收集,共回收178份答卷,回收率95.2%,有效率100%。同时,笔者在实验结束后收集了4个实验班级的语文、数学、英语三门学科的期末成绩。针对实验设计提出的假设,本研究重点分析4个实验班计算思维测试成绩在各个维度方向的差异。本次实验采用IBM SPSS 23.0进行数据分析。

三、研究结果分析

(一)不同编程环境下学生计算思维发展的对比分析

首先,以编程软件为自变量,针对不同学业成绩的两个班级分别进行独立样本t检验。数据分析发现普通班2班与10班之间计算思维测试成绩存在显著性差异,而提高班6班和8班之间计算思维发展水平无显著差异。说明对于普通班的学生来说,可视化编程更利于计算思维的发展,而对于提高班的学生来说,编程软件的不同对于学生计算思维的发展并无显著影响。因此,研究假设1只是在特定条件下才能成立。

(二)不同学业水平下学生计算思维发展的对比分析

为了解不同学业成绩水平下学生之间计算思维发展的差异,针对两种编程软件分别进行独立样本t检验。研究发现两种编程软件环境下,学业成绩较高的学生计算思维的发展均优于学业成绩较低的学生,证明了研究假设2学生学业成绩与计算思维的发展水平有显著相关性,而与具体编程软件没有关系。

(三)不同性别之间学生计算思维发展的差异分析

为了解不同性别的学生计算思维发展水平差异,首先针对相同编程软件、不同性别的两组学生分别做独立样本t检验。数据分析发现男生计算思维成绩均高于女生,无显著差异。接着,针对不同性别、相同学业成绩的两组学生再次分别做独立样本t检验,发现男生计算思维成绩均高于女生,无显著差异。数据分析表明,研究假设3相同编程软件对不同性别学生的计算思维能力培养存在差异性并不成立。但是,通过对比这两次检验,笔者发现针对不同性别的学生来说,学业成绩的影响要大于编程软件的选择。

(四)计算思维与学业成绩水平的相关分析

为了进一步了解计算思维发展与学生学业成绩水平的相关程度,通过皮尔逊(Pearson)相关性检验发现,学生计算思维得分与总成绩、数学成绩均具有较强相关性,尤其是数学成绩与计算思维发展水平的相关系数达到了0.559,支持了研究假设2学生学业成绩与计算思维的发展有显著相关性。

四、研究结论与建议

本研究采用准实验研究方法探究不同编程软件和学业成绩水平在发展学生计算思维方面的差异。通过对实验数据的分析可以得出如下结论:(1)不同学业成绩水平的学生,在编程软件的选择方面有不同的需求:其中,对于学业成绩较低的学生,可视化编程软件比代码编程更有利于学生计算思维的发展,而对于学业成绩较高的学生,两种编程软件对学生计算思维发展的影响并不显著;(2)学业成绩水平对学生计算思维的发展有显著影响,并呈较强的正向相关关系:两种编程软件环境下,学业成绩较高的学生计算思维的发展均优于学业成绩较低的学生,计算思维的发展水平与学生总成绩的相关系数为0.518,与数学成绩的相关系数为0.559;(3)不同性别学生之间计算思维的发展并无显著差异:两种编程软件对不同性别学生计算思维发展的影响均无显著差异,数据上显示男生的计算思维成绩要略高于女生,可能的原因是男生对于计算机的学习兴趣要高于女生。在教学实践中,笔者发现,3班作为普通班,刚开始学习编程时使用的是代码编程,但是随着学习的深入,部分学生感觉学习困难大、进度慢,最后不得不换成了可视化编程。通过访谈学生,笔者了解到:部分学生对于符号的识记比较困难,同时,语法的严格要求降低了程序设计的成功率,打击了部分同学的积极性。虽然在数据上呈现出来的是代码编程和可视化编程在成绩上并无显著差异,但是在实际教学中,教师发现可视化编程班级的学生主动学习意愿明显会更强,而且在课后更愿意尝试新的内容。

根据以上结论,本研究针对初中编程教育提出以下三条建议:

第一,在编程软件的选择方面,对于学业成绩水平较低的学生来说,建议选择可视化编程软件,弱化语法的学习,而对于学业成绩水平较高的学生,可以选择先使用可视化编程,逐渐过渡到代码编程的方式,在激发学生学习兴趣的同时发展学生计算思维、提高学生编程技能,为学生进一步的发展奠定基础。

第二,在教学策略的运用方面,教师要遵循计算思维教学的一般流程,注重学习情境的创设,引导学生进行模式识别,尝试用算法解决真实问题。让学生及時发布和分享自己的学习成果,能更有效地促进学生计算思维的发展。同时,在初中阶段,要注意关注女同学的学习进度,及时发现和处理女同学学习过程中遇到的相关问题。

第三,在教学实践的任务设置方面,教师要引导学生应用计算思维解决实际生活中的问题,将计算思维的学习与学生生活相结合有助于提高学生课堂学习的参与度。选择学生感兴趣的主题,吸引学生的注意力,增加学生参与学习的积极性;同时,以项目式学习开展编程教学时,学生会更愿意主动接受新知识,敢于挑战更难的编程任务,为发挥计算思维的作用奠定基础[19]。

编程软件的选择只是工具层面,在教学活动的设计与实施中,教师要注意激发学生的学习动机。计算思维来源于计算,在基础教育阶段,数学课堂是学生学习计算的主要阵地,因此,在数学课堂教学中要有意识地培养学生的抽象、计算、建模等基本能力。在后续的研究中,尤其要关注其他学科学习和跨学科学习中计算思维的培养,以及如何更好地发挥可视化编程和代码编程的优势,提高初中学生计算思维的培养效率,拓宽其培养途径。

参考文献

[1]教育部.普通高中信息技术课程标准(2017年版)[M].北京:人民教育出版社,2017.

[2]张立国,王国华.计算思维:信息技术学科核心素养培养的核心议题[J].电化教育研究,2018(5):115-121.

[3]WING J M. Computational Thinking[J].Communications of the ACM(S0001-0782),2006(3):33-35.

[4][8][9][15]陈鹏,黄荣怀,梁跃,等.如何培养计算思维:基于2006—2016年研究文献及最新国际会议论文[J].现代远程教育研究,2018(1):98-112.

[5][17]郁曉华,肖敏,王美玲,等.基于可视化编程的计算思维培养模式研究:兼论信息技术课堂中计算思维的培养[J].远程教育杂志,2017(6):12-20.

[6][11][12]郁晓华,肖敏,王美玲. 计算思维培养进行时:在K-12阶段的实践方法与评价[J].远程教育杂志,2018(2):18-28.

[7]BERLAND M,WILENSKY U.Comparing Virtual and Physical Robotics Environments for Supporting Complex Systems and Computational Thinking[J].Journal of Science Education and Technology(S1059-0145),2015(24):628-647.

[10][16][19]宁可为,杨晓霞.基于App Inventor的初中计算思维培养实证研究[J].课程.教材.教法,2018(2):110-115.

[13]曹恒来,陈宏斌,钮洪斌,等.基于计算思维的小学程序设计教学研究与实践[J].中小学信息技术教育,2016(12):39-42.

[14]VALENTINE K D.Tinkering with Logo in an Elementary Mathematics Methods Course[J].Interdisciplinary Journal of Problem-Based Learning(S1541-5015),2018,12(2).

[18]ROM?N-GONZ?LEZ M,P?REZ-GONZ?LEZ J,JIM?NEZ-FERN?NDEZ C.Which Cognitive Abilities Underlie Com-putational Thinking?Criterion Validity of the Computational Thinking Test[J].Computers in Human Behavior(S0747-5632),

2017(72):678-691.

(责任编辑 孙兴丽 孙志莉)

Abstract: In recent years,the cultivation of computational thinking has gained a widespread concern at home and abroad.The first-line teachers try to utilize all kinds of programming software to develop studentscomputational thinking.In order to understand the influence of different programming software and academic levels on the development of studentscomputational thinking,this research has done a three-month experimental research,taking 187 grade seven students of a Chengdu secondary school as research object,and discussed the differences of the development of studentscomputational thinking under conditions like different programming software,academic level,and students sex.Research has found out that:a.students of different academic levels have different needs in the choices of programming software.As to the students of relatively low academic level,visualized programming is better than code programming;as to the students of relatively high academic level,the influence of programming software is not so obvious.b.the level of academic achievement has a great influence on the development of studentscomputational thinking,and presented a rather powerful forward related.c.students of different sexes do not have any obvious differences in the development of computational thinking. Based on these research results,this paper,aiming at the programming education of secondary schools,has put forward three suggestions of promoting studentsdevelopment of computational thinking from the following aspects,namely,the choice of programming software,the application of teaching strategies,and the task settings of teaching practices.

Key words: programming software;academic level;visualized programming;computational thinking;experimental research

猜你喜欢

计算思维
高中信息技术课堂中计算思维能力培养问题的探讨
公安专业学生计算思维能力培养对策初探
基于计算思维的多媒体技术及应用课程教学模式研究
信管专业计算机科学概论课程的教学改革实践
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养