大学生编程韧性水平调查及其影响因素研究
2021-04-14傅骞张力文马昊天郑娅峰
傅骞 张力文 马昊天 郑娅峰
[摘 要] 编程韧性作为学习者的心理特征要素,对于编程学习效果具有重要影响,但影响学生编程韧性水平的关键因素尚不清晰。基于此,研究采用调查研究法,利用滚雪球抽样策略得到有效问卷737份,针对本科生、研究生群体中编程学习者的编程韧性水平开展调查并分析其影响因素。结果表明,编程学习者整体编程韧性水平较高,但男女性别的编程学习者及理学和工学的编程学习者在编程韧性的四个维度上仍具有显著差异。同时,编程韧性水平随编程学习年限的增加而显著增高;内部动机对于编程韧性水平具有更显著的影响;相较于协作编程学习形式,经常采用独立编程方式学习的学生具有更高的编程韧性水平。这一研究结果将有助于洞察不同编程学习者编程韧性的差异,帮助教师有针对性地进行学业辅导,提升编程学习效果。
[关键词] 编程韧性; 编程学习; 学习动机; 因素分析; 编程教学
一、问题的提出
随着互联网技术的不断发展,人们的学习、生活、工作都变得越来越智能化,作为人工智能技术基础的编程学习也愈发受到重视。2017年,我国发布了《新一代人工智能发展规划》,强调应大力发展编程教育,培养和聚集人工智能等新兴技术领域高端人才[1]。社会各领域对编程技术人才的需求不断增加,当前的编程学习已不仅仅是计算机相关专业的专长,而是逐步成为许多理工专业的通识课程。然而,学好编程是困难的,尤其对编程新手而言,容易遇到诸如迷思概念、句法出错、格式出错、标点符号遗漏等无法提前预期的错误[2-4]。因此,在编程学习过程中,学生常常会因为受挫而沮丧或放弃。高等教育中编程入门课程的高退学率和高失败率也间接反映出学生面对编程课程产生的畏难情绪[5-6]。
编程学习者能够克服压力和困境往往受到内外两种因素的影响,即外界的支持力度和内在的承受能力。相较而言,编程学习的外在环境是学生难以改变的,内在条件的创造似乎更具可行性。心理学研究领域中的“心理韧性”这一概念便是针对压力和逆境下人们的适应现象提出的。心理韧性是指一种个体即使身处逆境和压力中也能适应挑战、保持心理健康、战胜困难,并获得良好发展的人格特质[7-8]。随后,研究者进一步在教育领域引申出了“学业韧性”的概念。研究发现,学业韧性水平和学习成绩显著相关,学业韧性能够帮助学生更好地应对学业困境,减轻学业压力的负面影响[9-10]。随后,研究者提出对于韧性的研究应当紧密结合具体应用领域[11-12],学业韧性被细化为不同的学科韧性进行研究,如数学韧性[13]、数字韧性[14]等。
长期以来,如何提升编程教学效果这一问题一直困扰着编程教师。一些研究者从教学方法、编程工具、编程方法等方面尝试找出编程教学效果的影响因素[2,15-17]。但从学习者个人特质出发探寻编程学习效果影响因素的研究相对较少。在编程学习过程中,学生只有具备积极面对编程学习困难、勇于应对挑战、解决问题的自我调节和适应水平等内在特质,才能在编程学习中获得成功。因此,评估学生的编程韧性这种人格特质,以及研究怎样的编程教学能够帮助学生培养这样的特质显得尤为重要。
综上所述,本研究从编程学习者内在心理特征视角出发,将编程韧性定义为一种学生在编程学习过程中遭遇挫折、失败后仍能保持积极心态,继续投入编程学习的人格特质。通过采用问卷调查法,考查大学生编程韧性的整体情况,并探究影响大学生编程韧性的具体因素,以期为改进编程教学方法、提升编程教学效果提供理论和实证依据。
二、研究设计
研究采用問卷调查法,面向全国多个省市的理学、工学专业本科生和硕士研究生进行编程韧性现状调查研究。
(一)研究工具
2016年,Kooken等人首次清晰地从价值(Value)、困难(Struggle)、成长(Grow)、韧性(Resilience)四个维度构建学科学业韧性的理论框架[13]。其中,价值维度基于自我决定理论进行构造,这一理论表明,如果学生意识到所学的东西对自己的发展有用,那么这种意识就会成为维持其学习行为的强烈动机,并引发学习过程中有意义的自我调节行为[18]。困难维度基于身份动机理论,该理论认为一个人在特定环境中对自己身份的感知会影响其对学习的控制感,从而导致不同的学业结果[19]。学生如果能将学习困难归因于所学内容的困难,而不是他们自己的低智力,他们就能在这一学科内有更好的学业表现[20]。成长维度源于内隐智力理论,该理论认为人的智力能够改变,特定的内容能够被学会的学生倾向于选择更具挑战性的学习任务,并能够努力克服困难,提高自己的能力[21]。韧性维度指学生面对学业困难时是否能够坚持下来继续学习,其表现为一种面对学业困难的坚毅性,研究者通常从期望价值理论和动机取向的角度解释学生经历挫折后恢复和继续奋斗的这种动机[22-23]。
基于以上研究,同时参考心理韧性量表、学业韧性量表和数学韧性量表的理论框架和部分维度[13,24-25],结合编程学习特点,本团队研究开发了一份针对大学生的编程韧性量表(PRSUS),见表1。量表共12题,分为坚毅品质、感知价值、困难认知、成长信念四个维度,采用李克特5点计分形式,其中,1表示“非常不符合”,5表示“非常符合”。PRSUS的克隆巴赫系数为0.902,各维度克隆巴赫系数均大于0.7。此外,量表的GFI、AGFI、NFI、RFI等拟合指标均大于0.9,CMIN/DF值为1.64,EMSEA值为0.042。其各维度AVE值均大于0.5,组合信度均大于0.7,表明该量表具有良好的信效度。
(二)研究对象
本研究利用问卷星在线发布匿名问卷,并采用滚雪球抽样策略面向理学和工学专业的本科生和硕士研究生收集数据。所有研究对象均为自愿参与。数据收集持续约一个月,共收回问卷1131份,其中,有效问卷737份,有效率65.16%。本研究的参与者年龄介于16到30岁之间(均值20.6岁,标准差1.731),男生占55.6%。
(三)信效度分析
研究使用SPSS22.0和Amos22.0对PRSUS的内部一致性信度和结构效度进行检验。信度分析结果显示,量表总的克隆巴赫系数为0.877,各维度克隆巴赫系数在0.761~0.841区间范围内,表明量表具有较好的内部一致性信度。对PRSUS理论模型拟合度的分析结果显示,量表的GFI、AGFI、NFI、RFI等拟合指标均大于0.9,CMIN/DF值为2.54,EMSEA值为0.046。这表明模型的拟合度较高,具有良好的结构效度。
三、研究结果
基于问卷调查所得数据,研究使用SPSS22.0对理学、工学专业本硕学生的编程韧性整体水平和不同学生之间编程韧性的差异情况进行分析。
(一)学生编程韧性整体水平
研究对学生编程韧性整体水平进行了分析,样本总体的编程韧性均值为3.862(SD=0.557,满分5分),表示其总体编程韧性水平较好。其中,困难认知维度得分最高(M=4.127,SD=0.611),表明学生普遍都能认识到编程学习是有挑战性的,想要学好是困难的。得分最低的是坚毅品质(M=3.625,SD=0.760),表明学生在编程学习受挫后一定程度上能够继续坚持学习,但这一毅力水平仍有较大的提升空间。此外,感知价值(M=3.840,SD=0.734)和成长信念(M=3.856,SD=0.754)两个维度的均值与编程韧性整体均值相当。
(二)学生编程韧性的差异分析
为了探究哪些因素会对受试者的编程韧性水平产生影响,本研究选取了若干与编程学习无关的自然因素及与编程学习情况相关的非自然因素,将受试者划分成不同的子群,通过分析不同子群在编程韧性上是否呈现出差异来判断编程韧性水平的影响因素。其中,与编程学习无关的自然因素包括性别、年龄、年级和专业,而与编程学习情况相关的因素包括编程学习年限、编程学习动机、主要编程环境和主要编程方式。
1. 不同性别、专业群体编程韧性水平差异情况
在按照与编程学习无关的自然因素划分的子群体中,不同性别及不同专业的群体编程韧性水平呈现出明显的差异。
性别方面,样本中共有男生410人、女生327人。独立样本t检验的结果显示,男生的编程韧性显著高于女生(t=6.429,p<0.001)。性别因素对编程韧性各维度影响情况见表2,男生在坚毅品质(t=7.575,p<0.001)、感知价值(t=3.550,p<0.001)、困難认知(t=2.917,p<0.001)及成长信念(t=5.514,p<0.001)四个维度上的得分都显著高于女生。这一结果表明,男生在遭受编程学习的挫折后更容易克服消极情绪,保持积极心态,继续坚持编程学习。
专业方面,样本中共有282名理学专业的学生、455名工学专业的学生。独立样本t检验的结果显示,修读工学专业的学生其编程韧性显著高于修读理学专业的学生(t=-3.307,p=0.001)。专业因素对编程韧性各维度影响情况见表3,工学专业学生在编程韧性各个维度得分均显著高于理学专业学生。这表明工学专业的学生更能意识到编程学习的价值所在,因此,在面对编程学习中的困难时坚持努力,以积极的心态面对编程学习中的挑战,这与工科专业的学习目标和教学要求紧密相关。
2. 编程学习相关因素对编程韧性水平的影响情况
在与编程学习相关的因素中,编程学习年限、编程学习动机和主要编程方式这三种因素对编程韧性水平呈现出较明显的影响作用。
(1)编程学习年限对编程韧性的影响
编程学习年限方面,学生被分为一年以内(含一年)、一年到两年(含两年)和两年以上三类,这三类分别对应有355人、200人和182人,单因素方差分析的结果显示,学习了两年以上的学生,其编程韧性水平显著高于仅学习一年以内的学生(F=9.062,p<0.001)。这一结果表明,学生的编程韧性水平会随着编程学习年限的增长而不断提高。学习年限因素对编程韧性各维度影响情况见表4。由表4可知,针对编程韧性不同维度的分析也呈现出类似的结论,即学习两年以上的学生和学习一年以内的学生之间存在显著差异(坚毅品质p<0.01;感知价值p<0.001;困难认知p=0.018;成长信念p=0.037)。这表明更长的学习年限能让学生面对挫折时更加坚强,并在编程学习不断进行的过程中更深刻地认识到编程技能的价值,故而能够对编程学习中的困难和挑战建立更加准确的认识,通过自身的学习经历认识到只要足够努力且方法得当,所有人都能够学会编程。
(2)编程学习动机对编程韧性的影响
关于编程学习动机,问卷中列举了多种可能的动机因素。在数据分析时将学生的动机归纳为内部动机(如自身感兴趣、享受编程乐趣等)、外部动机(如增加求职机会、竞赛获奖、任课教师水平高等)、无动机三类,每一类分别有学生251人、355人和131人。单因素方差分析的结果显示,这三类学生的编程韧性两两之间具有0.001水平的差异性(F=60.112),其中,具有内部动机的学生编程韧性最高(M=4.109,SD=0.473),无动机的编程韧性最低(M=3.512,SD=0.535)。可见编程学习动机对于学生编程学习的持久性和面对编程学业困境保持积极心态具有积极作用。在面对编程学习中的困难与挑战时学习动机可以有效为学生提供继续坚持的动力,其中,内部动机所产生的积极作用更为明显。在量表的四个子维度下,不同动机的学生之间也几乎都具备0.001水平的显著差异,数据结果见表5。唯一的例外存在于困难认知维度,具有外部动机和无动机的学生之间差异不显著,但他们与具有内部动机的学生之间具有0.001水平的显著差异。可见动机水平对于学生编程韧性的提升并非是靠影响学生对编程学习的困难认知来实现的,拥有内在动机的学生即使对编程学习的困难程度有着清醒的判断,他们依然能战胜困难、坚持学习。
(3)主要编程方式对编程韧性的影响
本研究中所指的主要编程方式包括独立编程和协作编程两种,其中,协作编程并不限制协作人数和方式,所有非独立完成编程任务的方式都属于协作编程。独立样本t检验的结果显示,独立编程的学生,其平均编程韧性水平显著高于协作编程的学生(t=7.752,p<0.001)。学习方式因素对编程韧性各维度影响情况见表6,由表6可知,独立编程的学生其各维度的平均得分也都显著高于协作编程的学生(p<0.001)。关于协作编程,目前研究较多的是结对编程[26]。结对编程作为敏捷编程的一种方法,现在越来越多地应用于课堂,并被认为能够增强学生的编程学习信心,激励课堂参与,从而降低编程课程初学者的失败率和辍学率,提高课程完成率[27-28]。然而,根据本研究的调查结果,经常独立编程的学生具备更高水平的编程韧性。
四、结论与反思
本研究利用问卷对大学生的编程韧性水平展开调查,通过坚毅品质、感知价值、困难认知和成长信念等四个维度对大学生编程韧性水平进行描述,同时选取性别、专业、编程学习年限、编程学习动机、主要编程方式等因素探究它们对学生的编程韧性水平的影响情况。基于上述数据分析结果,对大学生编程韧性的整体水平、影响因素进行如下讨论:
(一)编程学习者整体编程韧性水平较高,但不同性别及专业的编程学习者在编程韧性的水平上仍具有显著差异
首先,从编程韧性及各维度整体水平来看,大学生编程韧性总体水平中等偏高,在针对药学、数学等专业大学生的学业韧性进行调查的研究中同样发现了相似的结果[9,29]。这些结果表明,大学生在专业学习中普遍具备中等或较高水平的韧性,这也使得识别和帮助那些韧性水平较低的学生显得更为迫切和必要。当编程韧性水平较低的学生遭遇学业上的挫折和阻碍后,教师应当及时了解其学习状态,提供额外的学习支架,帮助学生进行自我调节。
其次,在大学生编程韧性的影响因素方面,性别、专业被证实是影响大学生编程韧性水平的重要自然因素。不同性别、不同专业的学生群体,其编程韧性水平呈现出明显的差异性,且男生的编程韧性水平显著高于女生。这可能是因为男生更容易在编程学习中获得乐趣和成就感,从而更容易坚持后续的学习。针对药学专业学生的一项学业韧性调查同样支持了这一猜测,其结果表明,男生在学习中往往更不容易出现消极的情绪和反应,这有利于他们坚持学习,但研究也指出女生在学习中求助和反思的表现或许优于男生,这对她们克服困难也是有益的[9]。但韧性水平在不同学科学习中可能具有不同的表现。如Shanna等人在数學课程中测量得到的数据显示,女生的学业韧性水平显著高于男生[29]。这些不一致的研究结论也从另一角度佐证了将学业韧性细化到不同学科进行研究的必要性。故而在编程教学过程中,教师和助教应该更多地关注女生,在适当的时候给予编程学习帮助和支持,以避免过大的困难和挑战导致的学习效果不理想。在专业方面,工学专业学生的编程韧性水平显著高于理学专业学生,这可能与工学专业学生专业课难度较大、日常学习面临更大的困难与挑战等因素有关。基于身份的动机理论视角,工科学生在遭遇学业挫折时,受到人们对于工科学习内容普遍偏难印象的影响,也许更容易将失败归因于内容的难度而非自身的无能,甚至激发出迎难而上的学习动力,不断努力,攻克难题[20]。然而实际教学中也不应过度强调所学内容的难度,以免挫伤学生积极性,让学生对学习产生畏难情绪。
(二)编程学习年限和内部动机对编程韧性水平具有显著影响
研究结果也表明,编程韧性水平随编程学习年限的增加而显著增高,内部动机对于编程韧性水平具有更显著的影响。
首先,随着编程学习年限的提升,学生的编程韧性水平呈现出显著的上升趋势。但这一结论与部分现有研究并不一致,在Chisholm-Burns的研究中,大一学生的学业韧性水平及该群体在多数学业韧性子维度上的得分显著高于其他年级的学生[9]。造成这一差异的原因或许是编程学习的特殊性。编程学习年限的增长能够丰富学生的编程知识技能,但这并不能减少学生在学习过程中遇到挫折的几率,越来越难的编程任务反而使学生不断遭遇挑战,在解决问题的过程中,学生的心态、毅力、自我调节能力得到锻炼,进而提高编程韧性水平。
其次,在编程学习动机方面,无动机的学习者编程韧性水平最低,而拥有内在学习动机的学习者编程韧性水平则显著高于拥有外部动机的学习者。有研究表明,内在动机与创造性工作和认知灵活性相关,能够有效预测学习策略、学习持续性和学习成就[30]。由此看来,学习动机,尤其是内部动机确实可以在学习过程不顺利、遭遇到较大的困难与挑战时为学生提供坚持学习的动力。在编程教学过程中,教师可以考虑着手培养学生的编程学习动机,尤其是通过让学生领略编程的乐趣和积极意义,激发内在动机,提升学生的编程韧性水平,提高教学效果。
(三)采用独立编程方式学习的学生具有更高的编程韧性水平
在主要编程方式这一因素的分析上,研究结果表明,经常采用独立编程学习的学生具备更高水平的编程韧性。这一结果表明,需谨慎应用目前较为流行的结对编程。尽管在先前的部分研究中,结对编程被认为有助于增强学生的编程学习持久性,进而提高编程课程的学生保留率[27-28,31]。但近年来也有研究者开始对结对编程的有效性提出质疑[15,32],即结对编程并不显著优于独立编程,其有效实施更困难,如果学生在配对中遇到经验较少或态度消极的伙伴,结对编程还有可能使其编程积极性备受打击。因此,研究者提出诸多结对编程的变体形式来弥补经典结对编程方式的不足。例如:魏雪峰等人提出“部分结对编程”的概念,即允许学生在独立编程的基础上就编程任务进行结对讨论[33];Nicholas等人提出让学生先结对编程,再逐渐过渡到独立编程的设想[15];Jennifer等人对比了单计算机结对编程和双计算机结对编程的差异[34];Hans等人探究了先让学生独立编程,再让学生结对编程的方式对编程学习有何影响[35]。总之,何种编程学习方式更能帮助学生积极克服编程学习困难,继续投入编程学习,还需要进行更多的实证研究加以验证。
本研究采用問卷调查法探究了大学生编程韧性水平及其影响因素,已获得的结论将为大学编程教学方法的调整提供数据支持和理论指导。但本研究还存在一些局限,如样本年龄集中在20岁左右,故结论受样本特征局限,仍需进一步扩大范围进行结果验证。编程韧性作为从内在心理特征探索教学改进的独特路径,具有重要的研究价值。在未来的研究中,可以针对编程韧性的不同因素进行更加深入的探讨,如考虑不同的协作编程教学策略对编程韧性的影响情况。此外,由于目前国内的编程教育有低龄化发展趋势,中小学生相较大学生认知水平有限、心理承受能力较低,更容易遭遇编程学习挫折和压力,因此,针对中小学生的编程韧性研究也是非常必要的。
[参考文献]
[1] 国务院.国务院关于印发新一代人工智能发展规划的通知[EB/OL].[2020-12-13].http://www.gov.cn/zhengce/content/2017-07/20/content_5211996.htm.
[2] WEINTROP D, WILENSKY U. Transitioning from introductory block-based and text-based environments to professional programming languages in high school computer science classrooms[J]. Computers & education, 2019, 142(12):1-17.
[3] TSAI C Y. Improving students' understanding of basic programming concepts through visual programming language: the role of self-efficacy[J]. Computers in human behavior, 2019, 95(6):224-232.
[4] MLADENOVIC M, BOLJAT I, ?譕ANKO ?譕. Comparing loops misconceptions in block-based and text-based programming languages at the K-12 level[J]. Education and information technologies, 2018,23(4):1483-1500.
[5] OLELEWE C J, AGOMUO E E. Effects of B-learning and F2F learning environments on students' achievement in QBASIC programming[J]. Computers & education, 2016,103:76-86.
[6] GUZDIAL M, SOLOWAY E. Log on education: teaching the nintendo generation to program[J]. Communications of the ACM- CACM, 2002,45(4):17-21.
[7] CHMITORZ A, KUNZLER A, HELMREICH I, et al. Intervention studies to foster resilience - a systematic review and proposal for a resilience framework in future intervention studies[J]. Clinical psychology review, 2018,59:78-100.
[8] YING C, BAOYONG L, YAJUAN Z. Relationship among stress of entrance examination, resilience and stress distress of middle school students[J]. Chinese journal of clinical psychology, 2010,18(2):180-182.
[9] CHISHOLM-BURNS M A, SPIVEY C A, SHERWIN E, et al. Development of an instrument to measure academic resilience among pharmacy students[J]. American journal of pharmaceutical education, 2019,83(6):1390-6896.
[10] MARTIN A J. Motivation and academic resilience: developing a model for student enhancement[J]. Australian journal of education, 2002,46(1):34-49.
[11] UNGAR M. Resilience, trauma, context, and culture[J]. Trauma, violence, and abuse, 2013,14(3):255-266.
[12] LUTHAR S S. Resilience in development: a synthesis of research across five decades[M]// SONS J W. Developmental psychopathology. Hoboken: John Wiley & Sons, Inc., 2006:739-795.
[13] KOOKEN J, WELSH M E, MCCOACH D B, et al. Development and validation of the mathematical resilience scale[J]. Measurement and evaluation in counseling and development, 2016,49(3):217-242.
[14] KAEWSEENUAL S. Risky opportunities: developing children's resilience through digital literacy in Thailand[D]. Hamilton: The University of Waikato, 2018.
[15] BOWMAN N A, JARRATT L, CULVER K C, et al. Pair programming in perspective: effects on persistence, achievement, and equity in computer science[J]. Journal of research on educational effectiveness, 2020,13(4):1-28.
[16] 傅騫,王钰茹.面向计算思维培养的编程教学研究——以高中生Python编程教学为例[J].创新人才教育,2019(3):47-54.
[17] 傅骞,解博超,郑娅峰.基于图形化工具的编程教学促进初中生计算思维发展的实证研究[J].电化教育研究,2019,40(4):122-128.
[18] RYAN R M, DECI E L. Self-determination theory and the facilitation of intrinsic motivation, social development, and well-being[J]. American psychologist, 2000,55(1):68-78.
[19] OYSERMAN D, ELMORE K, NOVIN S, et al. Guiding people to interpret their experienced difficulty as importance highlights their academic possibilities and improves their academic performance[J]. Frontiers in psychology, 2018,9(5):781.
[20] AUTIN F, CROIZET J. Improving working memory efficiency by reframing metacognitive interpretation of task difficulty[J]. Journal of experimental psychology: general, 2012,141(4):610-618.
[21] ZHEN R, LIU R D, WANG M T, et al. Trajectory patterns of academic engagement among elementary school students: the implicit theory of intelligence and academic self-efficacy matters[J]. British journal of educational psychology, 2020,90(3):618-634.
[22] MARTIN A J, MARSH H W. Academic resilience and its psychological and educational correlates: a construct validity approach[J]. Psychology in the schools, 2006,43(3):267-281.
[23] MARTIN A J. The student motivation scale: further testing of an instrument that measures school students' motivation[J]. Australian journal of education, 2003,47(1):88-106.
[24] CASSIDY S. The academic resilience scale (ARS-30): a new multidimensional construct measure[J]. Frontiers in psychology, 2016,7(11):1787.
[25] LOCK S, REES C S, HERITAGE B. Development and validation of a brief measure of psychological resilience: the state-trait assessment of resilience scale[J]. Australian psychologist, 2019,55(1):10-25.
[26] DEMIR ?魻, SEFEROGLU S S. A comparison of solo and pair programming in terms of flow experience, coding quality, and coding achievement[J]. Journal of educational computing research, 2021,58(8):1448-1466.
[27] PAPADAKIS S. Is pair programming more effective than solo programming for secondary education novice programmers? A case study[J]. International journal of web-based learning & teaching technologies, 2018,13(1):1-16.
[28] NAWAHDAH M, TAJI D. Work in progress: investigating the effects of pair-programming on students' behavior in an advanced computer programming course[C]// IEEE TALE2015: IEEE international conference on teaching, assessment, and learning for engineering. Piscataway, NJ: IEEE, 2016: 157-160.
[29] RICKETTS S N, ENGELHARD G, CHANG M. Development and validation of a scale to measure academic resilience in mathematics[J]. European journal of psychological assessment, 2017,33(2):79-86.
[30] STARIBRATOV I, BABAKOVA L. Development and validation of a math-specific version of the academic motivation scale (AMS-Mathematics) among first-year university students in Bulgaria[J]. TEM journal, 2019,8(2):317-324.
[31] MCDOWELL C, WERNER L, BULLOCK H E, et al. Pair programming improves student retention, confidence, and program quality[J]. Communications of the ACM, 2006,49(8):90-95.
[32] ZHONG B, LI T. Can pair learning improve students troubleshooting performance in robotics education?[J]. Journal of educational computing research, 2020,58(1):220-248.
[33] WEI X, LIN L, MENG N, et al. The effectiveness of partial pair programming on elementary school students' computational thinking skills and self-efficacy[J]. Computers & education, 2021,160(1):1-15.
[34] TSAN J, VANDENBERG J, ZAKARIA Z, et al. A comparison of two pair programming configurations for upper elementary students[C]// Annual Conference on Innovation and Technology in Computer Science Education. Portland: ITiCSE, 2020.
[35] YUAN H, CAO Y. Hybrid pair programming—a promising alternative to standard pair programming[C]// SIGCSE 2019 - Proceedings of the 50th ACM technical symposium on computer science education. Minneapolis: ACM, 2019:1046-1052.