农村中学生编程能力现状、实践与提升途径
——以北京大学一次暑期学生实践活动为例

2020-09-05 02:06贾积有芮静姝
数字教育 2020年4期
关键词:后测编程人工智能

贾积有 芮静姝

(1.北京大学 教育学院教育技术系,北京 100871; 2.北京大学 信息科学技术学院,北京 100871)

引言

人工智能教育是关于人工智能知识的教育。人工智能知识包括概念、领域、实现技术与方法、应用和影响等多方面。其中,人工智能概念、领域、应用和影响可以在学校相关课程中介绍、普及,比如语文、外语、自然、信息技术和通用技术等。学习人工智能的实现技术与方法则需要学生具有一定的逻辑思维和形象思维能力、数学知识和英语知识。人工智能教育需要与学生的不同发展阶段相适应,主要在信息技术类课程中实施。例如,学前阶段和小学阶段的编程教育可以采用可视化编程方法(如Scratch),以各种形式的机器人为载体,硬件和软件紧密结合,学生需要既动手又动脑,在培养感性认识的基础上培养学生的学习兴趣,普及编程基本知识;在中学阶段的编程教育则可以教授学生高级编程语言,如Python等。

国内关于中学生编程教育的研究大多聚焦于编程教育的历史和现状分析、课程模式设计、理论探讨等;关于编程教育实践的实证研究较少,基本都是硕士论文,其研究对象也基本上都是城市的学校和学生。关于农村中小学信息技术课程或者编程教育的期刊论文为数不多,大多是理论层面的探讨,缺乏较为深入的实地调查和严格的实证研究。[1][2][3]

2019年2月,中共中央、国务院印发的《中国教育现代化2035》提出了推进教育现代化的八大基本理念,其中之一便是“更加注重面向人人”。这种“面向人人”的理念就是要保障每个学生都接受同样优质、全面的教育,当然也应该包括作为人工智能教育基础的编程教育。为此,本文将以一所农村中学为例,调查农村中学生的编程能力,以大学生在该校的实践活动为例,考查农村中学生编程能力的提升路径和效果。

一、研究内容和方法

本文研究主要包括两个方面的内容:(1)农村学生编程知识和计算思维基础调查;(2)以暑期实践方式教授农村学生编程知识和计算思维的方法和效果。

研究方法主要采用调查法、准实验研究法和数据统计法。调查法通过发放调查问卷的方式,收集被调查者的态度、意见和建议。准实验研究法是一种常用的教育科学研究方法,用来衡量某种教学手段或者技术对受试者的影响效果及其大小。数据统计法采用SPSS等统计分析软件对收集到的数据进行相关分析,发现其中的规律。

二、研究过程

(一)编程教师

在北京大学2019年暑期实践活动中,某学生社团组织了10名本科生到河南省一所农村初中进行教学实践,包括计算机、心理学、性教育、手工课等非中考考试科目课程,为期一周。该实践团的一位大二学生来自北京大学信息科学技术学院,编程能力较强,热爱编程教育事业,曾在北京某编程教育公司做过一个月的编程课程设计实习生,了解该公司的编程教育课程内容和设计理念。下面简称该生为编程教师。

(二)教材内容和辅助教学系统

编程教师采用北京某编程教育公司面向小学高年段(四年级到六年级)的零基础学生的编程教育课程,对初中生进行编程教学,主要讲授“Scratch入门”(共七节课)的第一节和第二节内容,包括以下知识点:顺序执行、移动、左转右转(代码块的用法)、循环结构、下一个造型(代码块)、事件的概念、坐标的概念。

为配合课程教学,该公司设计了在线辅助教学系统。每节课有两个视频和一个练习:第一个视频根据剧情告诉学生遇到了什么问题和需要完成什么任务;第二个视频具体梳理完成任务需要用到哪些代码块,给出一些小提示;练习环节是让学生做选择题,学生提交答案后,如果正确,系统会提示“过关”,然后就可以进入下一个页面,如果错误,系统会弹出“再试试”,并根据错误给出提示,学生需要再次做题,直到正确为止。练习环节中有一个答疑窗口,学生提问后,线上教师做出解答。

(三)研究对象和实验条件

该农村中学的三位校长高度重视这次实践活动。授课对象是自愿报名的本校学生和附近乡村的学生。校长通过家长微信群等方式向家长和学生推荐这个实践活动,学生和家长都非常踊跃地报名参加。初中三个年级共有143名学生报名参加学习,每个年级50名左右。

学校基础条件较差,不过每间教室均配备了电子白板和可以上网的多媒体电脑。学校有一间配备了20台电脑的机房,可以访问互联网。虽然有机房,但是学校没有能教计算机课程的老师,因此机房常年空置。

(四)前测

2019年8月1日,学生集体到校,按照学龄分为七、八、九共三个年级,参加了书面前测,以便了解其编程基础和相关信息。前测内容来自北京某编程教育公司招聘实习生和员工的试题,含20道单项选择题,主要考查基本的编程知识和计算思维,包括顺序结构、循环结构、条件判断、逻辑运算、变量和常量、广播、计时等内容。

针对学生相关信息设计了三道开放式问题:

(1)你在小学上过计算机课吗?如上过,学了什么内容?

(2)你对编程有过了解吗?谈一谈你对编程的了解。(自由发挥,任何形式都可以,比如讲述你听到的消息,或者讲述一个发生在你身上的与编程有关的小故事)

(3)答完上面的问题,你对初中编程课的期待是什么?希望有怎么样的授课形式和授课内容?

前测总时间为60分钟,大部分学生45分钟就做完交卷。我们选择的对照组为编程教学公司招聘的实习生,他们要参加同样内容的考试。从平均成绩上看,七年级、八年级到九年级逐渐升高。独立样本T检验结果表明:三个年级和对照组的成绩差异统计意义上非常显著(p<0.0001);七年级和九年级、八年级和九年级的成绩差异统计意义上非常显著(p<0.01);但是七年级和八年级之间的成绩差异不显著(p=0.655>0.05)。最低的七年级学生居然掌握了46.9%的编程知识,八年级掌握了49.9%的编程知识,而九年级已经掌握了58.5%的编程知识。作为对照组的公司实习人员的编程知识平均接近100%。该农村初中三个年级学生的编程测试成绩并非想象中那么差,平均得分接近50%。从离散程度上看,三个年级的标准差也不是很大。

对三个开放问题的回答表明,绝大部分同学没有学过计算机知识,也没有编程经历。

(五)教学过程

在7天的实践过程中,七年级和八年级各安排了2个下午的班级教学课程,每个下午3节课,每节课40分钟,共240分钟(4小时)的计算机班级教学课程。九年级先安排了两节课在机房上机,每次40分钟,共80分钟的上机教学时间,学生每人一台计算机,进入编程辅助教学网站,跟着系统自学课程,然后安排4节班级教学,共160分钟。三个年级总课时相同,都是240分钟。

课堂班级教学过程中,教师先在电子白板上板书、讲解、演示,然后使用网上辅助教学系统,播放录屏文件,按照关卡依次打开练习页面,请同学们抢答。为保障公平,使每个同学都有回答的机会,教师会在举手的同学里挑选没有上过台的同学到讲台上操作,下面的同学一起观看,如果做错了会请第二个同学来改正,如果还错就再请别的同学来做,直到做对为止。最后,教师根据做题情况进行总结和梳理。

(六)后测

在一周教学结束之后,各个年级轮流在机房参加了后测。后测除了包含和前测完全一样的20道选择题,还增加了30道新的选择题,着重考查学生的计算思维,难度稍大,后测结果如表1所示。

从平均成绩上看,七年级、八年级到九年级逐渐升高。独立样本T检验结果表明:三个年级和对照组的成绩差异统计意义上非常显著(p<0.0001);七年级和九年级的成绩差异统计意义上非常显著(p<0.01);但是七年级和八年级之间、九年级和八年级之间的成绩差异不显著(p>0.05)。

表1 参加后测学生的总分对比

七年级学生掌握了51.6%的编程知识,八年级学生掌握了59.2%的编程知识,九年级学生掌握了63.1%的编程知识。作为对照组的公司实习人员的编程知识平均接近100%。注意到七、八、九年级的最高分分均不低于对照组的最低分36分。从离散程度上看,三个年级的离散程度仍然不大。

因为前测和后测的前20道题目相同,将其单独分离出来分析,统计结果如表2所示。

表2 参加后测学生的前20道题目得分对比

结果表明,七年级、八年级到九年级逐渐升高。独立样本T检验结果表明:三个年级和对照组的成绩差异统计意义上非常显著(p<0.0001);七年级和九年级的成绩差异统计意义上非常显著(p<0.01),七年级和八年级的成绩差异统计意义上显著(p<0.05);但是九年级和八年级之间的成绩差异不显著(p>0.05)。

从后测后30题的平均成绩上看,七年级、八年级到九年级逐渐升高。独立样本T检验结果表明:三个年级和对照组的成绩差异统计意义上非常显著(p<0.01);七年级和九年级的成绩差异统计意义上非常显著(p<0.01),但是七年级和八年级、九年级和八年级的成绩差异统计意义上不显著(p>0.05)。

因为前20道题目前测和后测内容完全相同,可以比较前测和后测的差异,统计结果如表3所示。

表3 后测和前测成对样本T检验结果

所有年级的后测和前测相比,成绩都有显著性提高。其中八年级提高幅度最大,T检验p值<0.01,均值提高了25.7%,效果量为0.71,说明效果非常明显。七年级和九年级提高幅度接近,大于10%。全年级的整体提高幅度为14.5%,效果量为0.416,接近中等规模,效果显著(p<0.01)。这些统计结果表明,这种暑假支教方式的编程教育对于农村初中学生掌握编程知识而言,从成绩的提升上看,有非常显著的促进作用。

后测在计算机上进行,系统以秒为单位记录了做题时间。统计结果表明:八年级用时最少(2139秒),七年级(2583秒)和九年级(2308秒)用时较多,但是都显著小于对照组所用时间(4642秒)。成绩无显著性差异的八年级和九年级所使用时间也无显著性差异(p=0.313>0.05);成绩较差的七年级的使用时间显著高于八年级(p=0.011),但是和九年级的差异无显著性(p=0.129>0.05)。

(七)学生感悟总结

在支教活动结束之前,编程教师请学生自愿提交书面感悟和总结。共收到120份,约占全部参加学习学生总数的83.9%。其中35份提到了编程课,占比29.2%。我们详细分析了其文本内容,发现其可以大致概括为:编程学习非常新鲜,之前从未接触过;编程课上,看动画视频、闯关的教学方式非常有趣,就像玩游戏一样;老师手把手教学后学生自己克服了胆怯心理,勇敢尝试编程。

三、研究结论和讨论

概括以上研究过程和对所收集的数据分析的结果,可以得出以下结论。

编程教师采用北京高科技编程教育公司的入职面试书面题目测试学生的编程知识,以求职大学生的成绩作为成绩参照(对照组)。尽管农村中学生没有系统地上过信息技术课程,但是他们的书面前测成绩均分接近于满分的50%,反映出农村中学生编程能力并非为零,甚至不是很差。年级越高,书面测试成绩越好,所反映出来的编程能力越强。九年级学生的前测成绩显著高于八年级和七年级学生的前测成绩。每个年级内的离散程度并不是很大。个别学生的成绩为满分的85%,高于对照组的最低分。

经过一周共240分钟的编程教学后,书面后测成绩反映出来的农村中学生的编程能力都有了显著提高。只看同样内容的题目成绩的话,全年级的整体提高幅度为14.5%,效果量为0.416,接近中等规模,效果显著(p<0.01)。其中八年级的提高幅度最大,均值提高了25.7%,效果量高达0.71。可见,这次大学生暑假实践活动进行的编程教育有效地提高了农村初中学生的计算机编程知识。某些学生的成绩为满分或者接近满分。如果看后测全部内容成绩的话,某些初中学生的成绩也接近满分,显著高于对照组的最低分。

七年级和八年级学生都没有上机操作,而是跟着编程教师在教室中集体学习;九年级学生在三分之一的时间中跟着网上教学系统单独学习,三分之二的时间跟着编程教师在教室中集体学习;两种学习方式的效果差别不大。可见在缺乏师资的条件下,网络智能教学系统也可以起到与人类教师类似的教学效果。这与之前的研究发现相同[4]。这种混合式教学方式还充分发挥了广大农村学校已经配备的计算机和网络硬件资源的作用,避免了教育信息化建设资源的浪费。

学生提交的书面感悟表明,他们喜欢这种编程教学,不仅仅是因为这是第一次学习这类课程,还因为编程教师采用了游戏化闯关的教学方法和系统。

我们对上述结论产生的原因作了详细的讨论分析。

农村初中学生尽管没有系统地上过信息技术课程,但是在参加与北京高科技企业招聘考试同样内容的书面测验中的总体表现却比我们想象得好,个别初中生的成绩甚至好于大学生求职者的成绩。这个发现和之前我国相关研究中对农村学生信息技术和编程知识及能力的描述差别很大。从编程笔试题目的内容中可以看出,这些题目表面上考查编程能力,实际上更考查学生的逻辑思维能力,而这种逻辑思维能力在初中的数学、物理、语文等课程中都已经得到了训练。学生年级越高,这种逻辑思维能力越强。所以,尽管没有系统学习过编程知识,只要具有一定的逻辑思维能力,农村初中生照样可以在编程知识的笔试中取得一定的成绩,这种成绩随着年级升高而升高。

我们进一步取得了这所学校上个学期末的全科成绩之后,对参加前测的学生的语文、数学、英语成绩及其总和与编程成绩进行了相关分析,结果如下:

①三个年级的编程前测和后测成绩与三门学科成绩及其总和都是在0.01的水平上显著正相关(p<0.01),也就是说,初中生的语文、数学、英语单科或者总成绩越好,编程基础越好,学习编程的效果也越好。

②七年级和八年级的数学成绩与编程前测成绩的相关系数最大(分别为0.52和0.69),而九年级的英语成绩与编程前测成绩的相关系数最大(0.59),七年级和九年级的三科总分与编程前测成绩的相关系数都高于各个单科成绩与编程前测成绩的相关系数。

③三个年级的数学成绩与后测成绩(包括总分、前20题和后30题)的相关系数都是最大的。七年级和八年级数学与后测成绩的相关系数也都高于三科总分与编程后测成绩的相关系数,九年级的后测总分和后30题的成绩与三科总分的相关系数高于其与数学成绩的相关系数。

三点分析结果表明初中生的语文、数学和英语成绩及其总分构成了其学习编程知识的基础,也都对编程知识的学习效果有正面影响;数学和英语两门课程对编程知识影响最大。

本研究对农村中学生编程知识和能力的考查仅仅局限于通过单选题形式的书面或者计算机上的测验来实现,而不是让学生在计算机上实际编程来实现。尽管有这样的局限性,我们也不能否认理论引导实践,学生的逻辑思维和理论基础将指导其上机操作实践。我们将在以后的研究中,考查学生的上机操作能力,并分析其与学校课程的关系。

四、政策建议

基于对北大学生志愿者暑期实践活动中编程教学的分析结果,我们提出以下政策建议,以期对我国的编程教育和人工智能教育的发展以及实现教育公平提供参考。

中小学生编程教育是人工智能教育的重要基础和组成部分,需要引起教育管理部门的高度重视。城市学校如此,农村学校也不例外。这是“面向人人”的教育理念、教育公平和均衡发展的重要体现。

中小学生编程知识与数学、英语和语文等学校常规课程高度正相关。受过中小学逻辑思维训练的学生都具有一定的编程知识基础,都可以接受更加专业的编程和人工智能知识教育。城市学生如此,农村学生也不例外。教育管理者要高度重视人工智能教育,更需要将人工智能教育与常规教育有机结合。

在农村中小学校编程教育师资力量匮乏的实际状况下,优秀大学生组成的假期实践活动是一种高效可行的开展农村学校编程教育的途径。这种活动不仅可以有效地给农村学生传授编程和人工智能知识,也有助于大学生了解我国基础教育的现状。教育管理部门和高校应当给予政策、资金等方面的支持。

关于编程教育的具体形式,如果教师数量足够的话,可以是教师讲授为主;如果教师数量不足、教学质量有待提高的话,也可以采用教师讲授与学生跟着网上教学系统自学相结合的混合式教学方式。混合式教学方式不仅能弥补农村学校在师资数量和教学质量两个方面的欠缺,更能充分发挥教育信息化建设中配备的计算机和网络硬件的作用。

猜你喜欢
后测编程人工智能
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
2019:人工智能
人工智能与就业
CBI在大学英语口语教学中的应用
巧用“一课三测”优化数学教学
数读人工智能
顺学而教,提高记叙文阅读教学有效性