数据赋能:导向深度学习的计算思维评价
——以Python编程教学为例
文 | 费海明 顾碧婷
计算思维评价是信息科技学科核心素养的重要一环,也是教学难点所在。教师需要深刻理解“抽象”和“自动化”,方可对学生的计算思维进行精准评价。初中Python编程活动中,“代码”可以呈现学生以编程的方式解决问题的计算思维过程。如何基于“代码”的评测实现对学生计算思维的评价?大班教学情况下,教师面对“同问题不同算法”和“同算法不同程序”的学生代码,如何实现计算思维评价的自动化和精准化?如何助力学生突破难点,走向深度学习?笔者自主研发在线智学平台,基于真实数据进行深度挖掘,立足学科核心素养,力求实现计算思维培育的“学教评一致性”和“学教评同步性”。
一
工具创新——开发在线智学平台
新时代,教育改革应以评价创新为驱动力。创新评价工具,旨在记录各校各年级教学数据,运用人工智能、大数据等现代信息技术,探索各年级学习成效全过程纵向评价。在国家新一轮教育改革政策的指引下,学校和教师探索信息科技教学评价路径,可以工具创新为突破口,从宏观至微观,开发计算思维评价工具并科学应用。
(一)系统架构
要创新评价工具,教师需要系统分析评价工具及评价创新的过程本身。评价工具是一个迭代的、不断发展的系统,评价工具开发、应用、改进应自成闭环。评价工具有狭义与广义之分:狭义的评价工具指的是评测题,广义的评价工具包含指标体系、软件平台、评测题、数据挖掘程序等工具,是系统解决计算思维评价问题的基础,为评价提供全方位的支撑。
(二)指标设计
笔者依据《义务教育信息科技课程标准(2022年版)》给出的计算思维概念,理解和把握Python编程课程中计算思维的主要内涵——抽象、自动化和系统化。在此基础上,以《浙江省义务教育教科书 信息技术(八年级上)》为蓝本,按照项目式学习的理念,结合Python编程特点,从自动化、抽象和系统化三个维度构建评价指标体系(见表1)。
表1 基于Python编程的计算思维评价指标体系
(三)平台研发
平台的研发围绕“怎么学”“怎么教”“怎样评”展开。计算思维的“学教评”离不开三大类工具的支撑,即知识载体性工具、编程实践性工具和计算思维评价工具(如图1、图2)。
图1 Python编程自动评价平台的架构
图2 Python编程自动评价平台用户界面
知识载体性工具主要用于解决学生学习间接经验的问题,指的是教材和互联网优质编程学习资源;编程实践性工具主要用于解决支持直接经验获得的问题,即编程与调试;计算思维评价工具主要用于解决大规模精准评价问题。
笔者以“分层”思想构建平台,基于PHP+Mysql+Python混合编程实现评价功能。经实测,平台评测单题平均耗时0.8秒,稳定性好,实现了对学生课堂编程作业的“秒评”。
编程代码质量评测是工具研发的重中之重。该平台主要通过基于数据点的黑盒测试(如图3)、基于代码长度的聚类评测和基于代码关键词的评测等方法实现评测的自动化和精准化。
图3 基于数据点比对的黑盒测试
黑盒测试基于用户对程序功能的需求,以确定的输入和输出的数据评价程序功能,其算法实现相对容易。但黑盒测试不能较好地分析程序内在逻辑结构,需要补充代码长度聚类和关键词分析等评测方法。
二
数据赋能——教与学双向改进
笔者在应用计算思维评价工具过程中积累了学生个性化代码、评测反馈信息、提交人次与积分等大量数据,通过数据分析挖掘出四类有价值的问题:(1)平台缺陷(BUG)与功能拓展问题;(2)评测题难度系数控制问题;(3)学生编程“学习坡度”问题;(4)教学指导的“评价数据归因偏误”问题。下面针对后两个问题作具体讨论。
(一)跨越自然坡度——四大类缺陷的精准排错
用编程求解问题,从输入代码到正确执行,学生在调试过程中会犯各类错误,这是他们编程过程中的首个“学习坡度”。学生只有学会调试程序,练就纠错能力,才能实现程序的自动化。
笔者在Python编程教学研讨中发现,面对学生的错误代码,教师往往缺乏精准分析,常常将学生“爬坡”困难的原因归结为“不仔细”“不理解”“不会思考”等。如此归因偏误,不但看不到学生在学习上的真正问题,而且造成教学指导的低效甚至无效,编程学习过程中原本的“自然坡度”真的变为“学习难度”(如图4)。
图4 从“自然坡度”到“学习难度”的成因分析
要破解上述问题,教师需要在错误类型分类、平台自动反馈、错误归因及教学方法突破上系统施力。笔者对错误代码进行分类统计,发现存在四类高频错误:程序语法错误、代码逻辑顺序错误、输出不合规错误和程序死循环错误。针对四类高频错误,笔者通过黑盒测试实现自动反馈。在此基础上,笔者深入分析学生提交的错误代码,构建教学对策予以突破,以实现计算思维教学指导的精准化(见表2)。
表2 自动评测后的错误归因与教学引导
(二)驾驭抽象结构——三大类抽象的精进
如果说黑盒测试解决的是程序自动化和功能测试问题,那么基于代码长度和关键词分析的测评,则是解决程序抽象结构分析问题。计算思维的本质是指向自动化的抽象,结合编程特点,抽象又可分解为数据抽象、控制结构抽象和算法抽象。针对Python编程内容,笔者设计了一个项目主题下的6道情境题并在整个区域实测,结果数据如图5、图6和表3所示。
图5 基于Python编程的评测题提交数据
图6 Python编程环境
表3 首次学习与指导后学习的难度系数比较
从评测的反馈数据来看,学生首次与接受指导后学业平均分存在显著差异,说明平台的数据反馈和教师的针对性指导,起了“以评促学”的作用,效果明显。
此外,第①题“BMI的计算”的难度并不是最低,可归因为BMI计算公式为“体重÷身高2(结果用round保留整数)”,其指向的是表达式的数据抽象计算,这对学生有一定的挑战性。
第⑤题(首次提交)难度系数最低,在教师对学生进行指导后难度系数也未能达到0.8,可归因为循环结构、分支结构的嵌套是一种抽象控制结构,对学生而言难度大。第⑥题“花边间隔”的提交情况为1237人次(偏少),原因为:学生需要从具体情境中“识别”最大公约数算法,这是一个抽象与建模过程,难度较大。
从学生首次作答与接受指导后再次作答情况来看,第③题的难度均为最低,可归因为该类题对学生的数据与算法抽象能力要求不高。对2908个学生提交的程序代码长度(以字节为单位,记为B)做进一步分析,笔者发现在150 B与237 B的代码长度之间存在一个断点(即代码内在结构的分水岭),调取学生的具体代码做进一步分析,发现学生的代码在抽象结构上有着本质上的差异。
笔者对代码长度背后的抽象结构进行分析,旨在让学生在“满分”代码的基础上再经历如下过程:识别重复部分—用更抽象的结构替代—提升计算思维之抽象。在教学中,笔者用“联结”策略作引导:其一,将高抽象结构与低抽象结构作对比,通过讨论让学生理解优劣;其二,是将低抽象结构向高抽象结构“转化”,引导学生进行模式识别和抽象优化;其三,是将高抽象结构逆向转化为低抽象结构,让学生理解高抽象结构的控制机制。如此进阶,其意在于“用活”数据,让学生在平台自动化的基础上,开启“对话”与“反思”,引导学生进入计算思维实践的深度学习。
三
范式提炼——对评价工具创新与应用的反思
(一)结合学科思想与方法论创新评价工具的意义
本项目活动是信息科技计算思维大规模精准评价的学科实践,也是利用智能技术创新评价工具的一次探索。PHP、MySQL、Python等开源软件为教学评价提供了强有力的技术支撑;建构主义、项目式学习、评价分类理论及学科课程标准为教师开发学科评价工具提供了理论上的导引。
计算思维评价平台的应用蕴含诸多学科思想与方法论:自顶向下设计评价框架,坚持分级分类分权的管理理念,充分利用富媒体的数字化环境和自动化计算的特性,应用大数据技术挖掘过程性数据和阶段性数据,保障大规模实时评价,支撑基于评价的精准诊断与改进。
开发评价工具是为了便于计算思维的教学与评价,而开发评价工具的过程也是优化计算思维教学的过程,探索中凝练的计算思维方法可进一步地发掘与延伸,既可拓展对区域教师的计算思维研训,又可培养学生的计算思维能力。
(二)角色赋能与课程力量协同的可能
在计算思维评价工具开发与应用的过程中,笔者将工具开发与教师研训相结合,将平台应用和教学评价相结合,将评价数据分析与计算思维教学相结合。团队达成共识:教师是新型评价工具的使用者,也是评价工具的开发者。在实践过程中,团队协同实现了课程资源的快速迭代开发:独立开发智能平台3个,包括云教研平台、信息科技智学平台和Python编程自动化评测平台;开发Python常见错误中英文对照表、高频常见编程错误表和教学疑难问题诊断表等工具表3项;课堂教学实证效果显著,区域初中学校八年级学生参与在线编程学习与评测累计上万人次。
基于Python编程的计算思维评价实质是计算思维能力培养成效在Python编程教学中的精准测量、评估。评价使得计算思维的教学补上了数据反馈与自我反思的重要一环。在计算思维视域下,数据与算法互为协同,支持着系统的智能运行。信息科技学科教师应积极拥抱科学思想与方法论,以算法为利器开发评价工具,以数据为依据为评价增智,用信息技术为教学评系统优化和深度学习的发生赋能。
(作者费海明系浙江省宁波江北区教育局教研室正高级教师;顾碧婷系浙江省宁波市江北区新城外国语学校教师)
END
文章来源 | 《中小学数字化教学》2023年第3期
转自:“中小学数字化教学”微信公众号
如有侵权,请联系本站删除!