范士娟 金琼 王晓慧
《普通高中信息技术课程标准(2017年版)》[1](以下简称《新课标》)颁布的学生学科核心素养是信息技术教育研究者、中小学教师等相关群体讨论的热点问题。作为核心素养之一的计算思维是指通过分解、模式识别与抽象、算法思维、评估来形成有效的问题解决方案,然后通过计算机编程来实现解决方案以最好地解决问题[2]。程序设计课程可以使计算思维概念具象化,是训练计算思维能力的最直接、最有效的工具[3]。在程序设计课程中,通过将计算思维的培养融入教学过程,学生能够学会将具体的问题抽象化(抽象)、模块化(分解)、流程化(算法思维)等,形成逻辑、理性思考问题的习惯,从而提高计算思维的能力。然而,当前课堂中的程序设计教与学现状并不容乐观。由此,在《新课标》实行初期,了解高中生的程序设计学习现状将有利于新的教育理念的实施。
为了更好地贯彻和落实《新课标》的教育理念,需要了解高中生程序设计的学习现状,明确当前高中程序设计教学中的问题和不足,寻找完善程序设计教学的突破口,从而制定更精准、更科学、更有效的方案和举措。
《新课标》非常关注学生的主体性,建议教师在教学中凸显“学主教从、以学定教、先学后教”。根据认知动机理论,学生的自我效能感、认同感、态度、兴趣等动机因素都会影响学生的学习效果[4]。就普通高中的程序设计教学而言,了解高中学生对当前程序设计学习的动机水平和当前的学习水平,对基于《新课标》的程序设计教学改进非常有益。本研究结合笔者的程序设计教学实践,选取了能反映上海市普通高中生程序设计学习现状的典型维度进行重点调查,具体调查内容为:(1)学生对算法描述方法的倾向性;(2)学生程序设计学习水平;(3)学生对程序设计的学习认同程度与代码学习的学业信心。
本次问卷调查采用随机校级抽样和分层抽样相结合的方式,在全上海市16个区各类学校中产生了近14000名在校高中学生作为调查对象。在删除问卷无效数据后,最终参与本次问卷调查的学生共计13558人,男生人数为6287人,约占46.4%;女生为7271人,约占53.6%。市示范性高中人数为4625人、区示范性高中人数为4343人、一般高中人数为3894人、民办高中人数为676人、其他人数为20人,占比分别约为34.1%、32%、28.7%、5%和0.1%。与参与2018年上海市普通高中信息科技学业水平考试的学生在性别结构、学校类别结构分布上大致相同,保证了数据的真实性与完整性,以及后续分析结果的科学性与可靠性。尽管上海市普通高中信息技术课程只在高一年级开设,本次问卷调查仍然邀请了在校的高二和高三学生共同参与,以期观察完成学业任务的高年级学生在问卷中的表现。参与本次调查的高一年级人数为8074人、高二年级人数为4105人、高三年级人数为1379人,占比分别约为59.6%、30.3%和10.2%。
1.描述算法方法的倾向性结果呈现与分析
在高中阶段除自然语言外,常用流程图与代码作为算法描述的方法。其中,流程图采用框图和流程线的方式使算法步骤图形化,但并不能呈现最终的数据结果;而代码通过某种程序设计语言的编写与调试,可以呈现最终的数据结果。由调查可知,49.0%的学生更倾向于使用流程图来描述算法;33.0%的学生更倾向于使用代码来描述算法;18.0%的学生认为两种描述方法没有差异。不同维度下的倾向性,具体结果与分析如下。
(1)性别维度的倾向性结果呈现
由表1可知,43.7%的男生和53.5%的女生更倾向于使用流程图来描述算法;38.7%的男生和28.1%的女生更倾向于使用代码来描述算法;17.6%的男生和18.4%的女生认为两种描述方法没有差异。由表2可得,Levene方差齐性检验的显著值小于0.05,认为不同性别的学生在算法描述方法的倾向性方差有显著差异性。当方差相等的假设不成立时,由表3健壮性检验表可知,显著值小于0.05,可以认为不同性别的学生在算法描述方法的倾向性有显著差异性。
(2)学校类别维度的倾向性结果呈现
由表4可知,50.40%的区示范性高中学生和51.80%的一般高中学生更倾向于使用流程图来描述算法;36.60%的市示范性高中学生和39.20%的民办高中学生更倾向于使用代码来描述算法;20.00%的区示范性高中学生认为两种描述方法没有差异。由表5可得,Levene方差齐性检验的显著值小于0.05,认为不同学校类别的学生在算法描述方法的倾向性方差有显著差异性。当方差相等的假设不成立时,由表6健壮性检验表可知,显著值小于0.05,可以认为不同学校类别的学生在算法描述方法的倾向性有显著差异性。
(3)年级维度的倾向性结果呈现
由表7可知,50.00%的高一学生和51.30%的高三学生更倾向于使用流程图来描述算法;33.40%的高一学生和35.00%的高二学生更倾向于使用代码来描述算法;16.50%的高一学生和24.30%的高三学生认为两种描述方法没有差异。由表8可得,Levene方差齐性检验的显著值小于0.05,认为不同年级学生在算法描述方法的倾向性方差有显著差异性。当方差相等的假设不成立时,由表9健壮性检验表可知,显著值小于0.05,可以認为不同年级学生在算法描述方法的倾向性有显著差异性。
(4)算法描述方法的倾向性结果分析
全体学生更倾向于使用流程图来表示算法。从学习层面来看,学生对图形化、步骤可循的流程图更易接受、更接近自己的认知水平。这一结论在问卷的另一调查中得以验证:69.7%的学生认为,相比较代码流程图更容易学和看懂。对代码的学习有一定的畏难情绪。从教学层面来看,上海市普通高中学业水平考试信息科技学科考试[5]结果只呈现合格与不合格两种等第,部分教师受评价要求的影响,局限于“看流程图写结果”的教学。因此,强化流程图的训练,弱化代码的教学。与此同时,关于代码的教研活动较少,关注度较低。
男生更倾向于使用代码来表示算法,与社会普遍认知一致。可能的原因是男生逻辑思维和抽象思维等较强,更愿意接受挑战,还与社会对男生的期待等因素有关。
市示范性高中的学生倾向于使用代码来表示算法的比例在其他学校类别分层中较高,与社会普遍认知一致。从学校层面来看,市示范性高中的学生生源较优质,逻辑思维和抽象思维等较强;从教学层面来看,市示范性高中由于教学节奏快,教师可以并愿意提供更多的时间给予学生进行编写和调试程序。
出乎意料的是,一般高中与民办高中学生使用代码来表示算法的倾向性比区示范性高中更高,与社会的普遍认知不一致。原因可能是一般高中与民办高中学生对语数外等学科之外的代码学习更感兴趣。此种与社会普遍认知的“生源质量”倒置的现象,有待后续关注与研究。
高二年级的学生更倾向于使用代码来表示算法。可能的原因是高二年级学生对刚完成的信息技术学科中代码学习有了较完整的认识与成熟的思考;经个别访谈发现,高三年级的学生经历了两年的学习空置期,反而对前期的程序设计学习内容开始生疏,印象不深刻。
2.流程图与代码的试题表现
本次调查问卷中涉及的流程图和代码的试题均来自《上海市高中信息科技学科教学基本要求》[6],具体试题如右图所示。
(1)试题表现结果呈现
由表10可知,全体学生在流程图试题和代码试题上的得分均值分别为0.41和0.45。其中,倾向于使用流程图来描述算法的学生在两题的得分均值分别为0.39和0.42;倾向于使用代码来描述算法的学生在两题的得分均值分别为0.45和0.50;认为两种描述方法没有差异的学生在两题的得分均值分别为0.40和0.46。由表11可知,流程图试题和代码试题上的Levene方差齐性检验显著值均小于0.05,认为不同倾向性的学生在试题表现上的方差有显著差异性。当方差相等的假设不成立时,由表12健壮性检验表可知,流程图试题和代码试题的显著值均小于0.05,可以认为不同倾向性的学生在试题表现上有显著差异。
(2)试题表现结果分析
全体学生在两道试题上的表现,相对难度系数均低于0.5,对学生来说这两道题都属于难题。但是,其涉及的知识点是教学基本要求,并不应该成为难题。可能是受学业水平考试评价方式和较低关注度的代码教研氛围所影响,这种教与学上的不重视与不到位应该引起足够的重视。
倾向于使用流程图来描述算法的学生在流程图试题上的表现也不好。虽然这部分学生认为流程图易读、易懂,但事实上他们有可能是对代码的学习存在畏难情绪;对流程图的认知存在部分欠缺;对流程图的学习还不够全面和深入。
倾向于使用代码来描述算法的学生在两道试题上的表现,均较其他两个组别的学生表现更好。事实上,流程图试题与代码试题均需要一定的信息处理思维过程。这部分学生可能本身就具有较强的逻辑思维和抽象思维。
3.代码学习的学业信心与认同程度
(1)代码学习的学业信心与认同程度的结果呈现
由表13可知,84%的学生认为课程中学好一门程序设计语言很有必要;43%的学生认为自己能够适应教师直接采用代码进行算法学习。其中,35%的倾向于流程图表示算法的学生认为自己能够适应教师直接采用代码进行算法学习;55%的倾向于代码表示算法的学生认为自己能够适应教师直接采用代码进行算法学习。
(2)代码学习的学业信心与认同程度的结果分析
84%的学生认为课程中学好一门程序设计语言很有必要,体现了学生对学习程序设计的认同程度高;43%的学生认为课程中可以直接讲解代码,体现了学生对代码学习的学业信心不足。综上,学生对程序设计有迫切需求,信心仍有待提高。
不同倾向性的学生对程序设计学习的认同程度都较高。出乎意料的是,倾向于使用流程图表示算法的学生对学习程序设计的认同程度也较高。通过个别访谈发现,虽然这部分学生有可能对代码学习存在畏难情绪,但他们还是“隐隐”认识到竞争激烈的信息时代需要这种与生活、学习和工作等密切相关的技能。
不同倾向性的学生对代码的适应性都较低。出乎意料的是,倾向于使用代码表示算法的学生对代码的适应性也不高。通过前述试题表现可以看出,这部分学生对代码学习的获得感低。加之现阶段学业水平考试评价结果只呈现合格与不合格两种等第,使原本有学习代码热情的学生成就感也低。多种因素导致学生主观上拒绝去适应代码学習。
虽然从本次调查结果可以看出学生在两道试题上的表现和代码学习的学业信心并不十分乐观、甚至有些糟糕,这样的结果不禁令人感到遗憾。但本次调查的惊喜收获是学生对程序设计学习的认同程度普遍都较高。
作为学生,光有思想上的认同度还不够,还需要从思想上重视,紧跟时代潮流,去除考试功利心,克服畏难情绪;建议教师能够深入学习与领会《新课标》要求,适当开展分层教学方法、合理引导、优化教学,从根本改变学生学习程序设计的思想观念,鼓励学生参加一些实际的项目实践,从而提高学生的学习兴趣;呼吁教育主管部门能够设计出基于《新课标》要求的教学与评价体系,引导师生重视代码的学习,组织针对代码教学方面的教研活动与培训,提高教师的教学水平,培养一支专业素养较高的教师队伍。
高中阶段的教育,从满足人全面发展的角度,一方面要能够让学生适应未来社会生存的需要,提升课程价值;另一方面也要能够满足学生作为人的自我实现的需要。真正做到从培养学生核心素养出发,不忘初心。
项目课题:本文系第一届上海市基础教育信息化研究重点课题“基于中小学计算思维培养的编程教育实践研究”(课题编号:KT2019013)中期成果