基于Python教学的中学计算思维等级评价模式构建

2023-11-12 11:25于露江苏省南京外国语学校
中国信息技术教育 2023年21期
关键词:通过率编程竞赛

于露 江苏省南京外国语学校

●计算思维核心概念

计算思维是运用计算机科学的基础概念进行问题求解、系统设计、人类行为理解的思维活动,其实质是掌握和运用计算机科学的方法进行问题求解。对计算思维能力的衡量可以从计算概念、计算实践和计算观点三个维度展开。计算概念强调编程知识及技能,是具备计算实践和计算观点的前提条件,对计算概念能力的评价,可从序列、循环、并行、事件、条件、运算和数据维度展开。在计算实践部分,学生需要在掌握计算知识的基础上,运用实验与迭代、测试与调试、重复使用与融合、抽象与模块化去进行程序设计实践操作。计算观点则是需要学生在学习程序设计课程后,拥有计算观点,并将“分解—模式识别—抽象—算法—问题解决”这样的步骤运用于实际生活中的问题解决。

●计算思维等级评价体系构建及实施

笔者在深入分析现有计算思维评价等级的基础上,结合现有初高中信息科技教材,将计算思维评价等级设计了十个等级,从零基础开始,适用于全体入门级学生,同时也兼顾竞赛水平等级的学生,下页表所示是每个等级对应的考题内容。

一级考查内容为语言与逻辑,包括Python基本语法元素、常用变量类型、顺序结构,这一部分的程序都是自上而下执行,对于入门级学生来说在理解上没有难度,重点在于掌握Python语法规则。

二级考查内容为选择结构,考查题目的选择涵盖双分支与多分支结构,学生需要掌握常见关系表达式,包括“>”“<”“>=”“<=”“==”“!=”,以及如何正确运用关系连接符and和or正确表达判断条件,本等级考查题目融合数学几何、代数、常见生活案例,需要学生从实际问题中抽象出编程模型,这是对其计算思维抽象能力的考查。

三级考查内容为循环结构,这是编程入门的第一个难点,初学者需要理解循环体的执行方式。三级考查涉及的题目包括两种循环模式,即For循环和While循环,并且需要学生掌握如何运用break和continue语句去控制循环体执行次数,在程序编写过程中考虑时间复杂度问题。

?

四级考查内容为列表数组,在掌握程序设计的三种基本结构后,教材中的部分内容已经基本涵盖,本等级主要考查学生对列表这种数据结构的掌握程度,以及能否运用列表解决实际问题。

五级考查内容为字符串,字符串可以理解为一种特殊的列表,但因其有很多特殊的方法及实际运用需求,所以将字符串单列为五级的内容。本等级的考查内容涉及字符串常用函数,包括capitalize()、upper()、count()等。

六级考查内容为字典,因为字典是Python中特有的一种数据类型,学生需要在实际问题中发现其中存在的“字典”这一数据类型。该等级的考查内容包括字典的定义及赋值、对key和value值的查找,以及常见的删除、增加、修改操作。

七级内容为函数,学生在掌握了程序基本结构和常见数据类型后,需要具备模块化的编程思想。在计算思维核心概念界定中,强调将实际问题抽象为计算机可解决的一个个小问题的能力,七级函数内容便是对这一能力的重点考查,在语法结构上,需要学生掌握函数的格式以及参数的传递调用方法。

八级内容为排序与查找,排序和查找是计算机解决诸多问题的基础,也属于算法初阶内容,插入排序、快速排序、冒泡排序、顺序查找、二分查找都体现了计算思维的重要思想。该等级需要学生掌握多种常见排序算法及二分查找,能比较其时间及空间复杂度,并且根据实际问题选用合适的排序、查找算法。

九级内容为递归,属于算法初阶内容。递归是计算思维的重要体现之一,它是一种自上而下、先整体再局部的思维方式,需要学生能够分离出现实问题中不断递归调用的小模块,分析其递归变量、递归过程以及递归结束条件。

十级内容为队列、栈、二叉树,属于数据结构基础。现实问题中数据的存在及操作方式非常复杂,彼此之间存在线性或非线性的关系,问题解决的前提是将复杂的实际数据抽象为队列、栈、树、图等一系列数据结构,用精简的方式表达彼此之间的联系,该等级的考查内容主要为数据结构抽象以及常见的查找、修改、删除操作。

鉴于笔者所在学校已经有运用于课程教学及测试的OnlineJudge(以下简称OJ)平台,笔者将计算思维等级评价测试模块架构在OJ平台上。学生端在登录OJ平台后,可以进入认证模块参加等级测试,本等级测试采用逐级考核的方式,即通过前一等级为参与后一等级考试的先决条件,学生进入某一级别考核界面后,按照要求完成对应试题,考核采用OI模式,即学生在考核过程中不可获得解题正确与否的反馈,学生在规定时间内完成考核提交认证,系统采用自动评测的方式给出得分情况,若达到60分给予合格认证,并可继续参加下一等级的认证,若达到85分给予优秀的认证。学生可多次参与某一等级的认证直至合格或者优秀等级。教师端登录OJ管理后台后可以对认证模块进行设置,管理后台的功能主要分为两部分,一是对等级考试题目及时间、分数标准的设置,二是获取认证结果数据,即每一个学生完成详情。

●计算思维等级评价结果统计与分析

1.一至四级主要面向非竞赛生,整体参与程度和通过率都较高

笔者从OJ平台管理后台获得参与情况数据如下:一级参与人数800人,通过682人,通过率为85%;二级参与人数510人,通过率85%;三级参与人数240人,通过率87%;四级参与人数159人,通过率95%。

笔者制订的等级标准相较于已有的评价标准,整体难度降低,并将考查内容细化到不同等级中。现有中学教材中的Python内容基本只到循环结构,所以本标准将循环结构之前的知识点进行了细化,分成了三个等级,并根据教学进度设置第四等级:列表与元组。所有完成校内学习的非竞赛生均能参与前四个等级的考核。从数据结果来看,前四级参与人数远超后面的若干等级,且通过率都在85%以上,一级考试的满分率为40%,这反映出学生整体掌握水平较好,各等级题目选取的难度适中,能较为客观地反映学生相应知识技能掌握情况,在有一定区分度及选拔性的基础上,兼顾整体学生现有水平,激发了学生进一步学习的热情与积极性。

2.五至十级主要面向竞赛生,测试结果能够体现较好的区分度

对统计结果进行分析得出,学生在程序设计学习的初级阶段,需要迈过三级台阶:第一级台阶为程序设计基本语法知识及顺序、选择、循环三大结构,属于入门级别,绝大多数完成校内课程学习的学生均能达到此水平;第二级台阶为常用数据类型(列表、元组、字符串、字典)和函数,是学生进一步学习编程知识的基础,也可视为非竞赛生与竞赛生之间的过渡阶段,这一阶段主要让学生掌握更丰富的数据表示方法,初步具备模块化的编程思想,这一级台阶若校内编程学习的时间充裕也可以完成;第三级台阶为竞赛生的起步阶段,涉及常见算法,包括排序、查找、递推、递归等,以及初步的数据结构。

笔者发现,虽然五至十级参与人数较少,但通过比例大大提升,五级通过率93%,六级通过率94%,七级通过率90%,八级通过率93%,九级和十级通过率100%。笔者分析后认为,等级的提高即是对学生的筛选,能够参与较高等级考核的学生具备扎实的编程基础、浓厚的编程兴趣和一定的学习能力,其通过相应等级的概率也会比低等级更高,这也正是等级考核区分度的体现。

该等级评价认证方式能够激发学生的自主学习热情,并对其提供引领性指导作用。在Python程序教学过程中,笔者发现信息科技课程虽不是中高考科目,但不少学生对编程呈现出很高的兴趣。同时,等级划分为学生的自主学习提供了路径指导,为其搭建了学习“脚手架”。

该等级评价能够给教师提供Python程序教学指导。在课程教学中,利用该体系对学生计算思维能力进行跟踪测试,比较出课程开展前后其计算思维水平的变化,从考核反馈中教师可以深入分析学生面临的学习难点,进而调整教学进度与侧重点,对学生薄弱之处进行细化教学。

●计算思维等级评价体系的局限与发展

1.进一步细化评价等级,调整评价参与模式

在当前的信息科技课程教学中,初中阶段能够涵盖的内容主要包括顺序、选择、循环结构,有条件的高中学校可进行到列表、函数,但再往下的内容往往很少涉及。所以,在后续的研究中,要考虑进一步细化前四个等级,让更多非竞赛生可以获得与其能力更加精准匹配的评级结果,另外还应继续制订更多层次的评价体系,旨在将面向普通高中生的编程能力评价体系与高层次的信息学竞赛能力等级衔接起来,打造一套完整的面向中学生的计算思维能力评价体系。目前采用的认证方式是:完成前一等级方可进行下一等级,对于要达到高等级的参与者来说,需要完成前面的所有等级。这种模式在一定程度上导致高等级参与人数较少,所以在下一阶段的设计中,应考虑是否更改认证模块参与方式以便收集到更加全面的数据。

2.扩大评价标准参与面,提高高水平学生参与程度

虽然已经有一批学生参与到评价标准的测试中,但从目前收集的数据来看,不论是采样对象的分布还是样本数,距离理想状态仍有一定差距。从后台数据可以看到,参与对象具有一定的随机性,不仅有本部学生、分校学生,还有很多其他省市的参与者。由于采样样本、采样时间的随机性,按照目前的采样方法获得的数据,并不能客观反映学生群体的整体计算思维水平。

在进一步完善测试等级和试题后,笔者将在本部与分校进行数据收集,学生采样样本安排如下:初二各校200人,安排在初二下学期进行,高一各校200人,安排在高一下学期进行,本部选取竞赛学生100人,其余各校选择竞赛学生20人。这批学生将参与OJ平台计算思维等级测试,由于采样更加客观科学,未来能够获得客观全面的数据,为评价标准的修正提供数据来源。

●结语

笔者围绕如何更加客观有效地进行计算思维能力评价展开研究,在比较了现有多个计算思维评价标准之后,以兼顾日常教学和竞赛学生培养为宗旨,开发出十级的计算思维评价体系,从评价体系测试阶段的反馈数据来看,对于不同水平等级的学生都能呈现出较好的适应性与区分度。该评价体系具有一定的推广性,可激发学生程序设计学习的热情,对教师的教学工作亦有指导价值。

猜你喜欢
通过率编程竞赛
瓦里安VitalBeam直线加速器Portal Dosimetry验证通过率低故障维修
2020丝绸之路数学竞赛
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
基于高职英语教育效果市场化探索研究——以英语AB通过率为例
我看竞赛
创新思维竞赛(3)
提高CLEN通过率的策略与成效