九州大学 山田研究室

基于块的编程学习与基于文本的编程学习哪个更好?

2024年05月11日

大家好。

这篇记事我想介绍一下本次英语文学研讨会上研读的论文及其感想。

论文题目:Using multimodal learning analytics to understand effects of block-based and text-based modalities on computer programming

期刊:Journal of Computer Assisted Learning

卷数和页数:63-75

出版年份:2024

作者:Dan Sun, Fan Ouyang, Yan Li, Chengcong Zhu, Yang Zhou

https://doi.org/10.1111/jcal.12939

以下是这篇论文内容的概述。

掌握计算机编程技能有两种学习形式:基于块的和基于文本的。在基于代码块的编程学习中,如 Scratch,代码是通过可视化图形(如代码块)按逻辑组织起来的,这些图形显示了可用的命令(在哪里以及如何使用特定命令)。 对于初学者来说,基于块的编程更容易理解,并能避免语法错误。 而基于文本的编程则是通过用 C 或 Java 等语言编写代码的传统方式(而非可视化方式)来教授编程。学习者需要更高级的编程技能。因此,基于文本的编程不能被基于块的编程所取代,后者是基于块的编程的后续学习阶段。然而,有报告称,学习者在基于文本的编程过程中经常会遇到语法错误,从而导致他们在编程课程中磕磕绊绊,最终辍学。

以往比较基于文本和基于块的编程学习方法的研究主要集中在学习成果和编程兴趣上。虽然编程学习需要学习者构建知识并积极解决问题,但学习过程本身,即学习者如何参与编程,还没有得到很好的研究。 本研究使用学习分析方法来探索学习者在基于文本和基于块的两种学习形式中的行为和知识获取差异。

本研究在中国的两个班级进行了一项实验,对基于文本和基于块的编程学习进行了比较,共有64名中学生参加。 学习者被分为基于文本的学习组(32人)和基于块的学习组(32 人)。每组学生通过六节课学习顺序结构、选择结构和循环结构等基本编程概念,并在Code4all平台上进行实际操作。 基于块的小组使用块的拖放功能,而基于文本的小组则通过一个字符一个字符地输入命令进行练习。 两个班级由同一位教师授课,教学风格和内容相似;在第六节课上,根据学习情况对学习者的编程结构进行了测试。 此外,还收集了包括Code4all行为数据、编码屏幕记录和测试成绩在内的学习数据,并利用聚类分析和滞后序列分析等技术进行分析,以确定学习者编程行为和知识掌握的特点。

分析结果显示,基于文本的学习者编写的代码更长,语法错误更多,调试时间更长。而基于区块的学习者则在无关行为上花费了更多时间,进行了更多的平台操作和调试尝试。 此外,基于文本的学习者在修改代码时经常参考外部资源,而基于块的学习者则利用视觉线索来调试和修改代码。此外,使用协方差分析法对作为协变量的前测试得分进行分析,结果表明,基于块的学习者在知识获取方面优于基于文本的学习者。这些结果表明,基于块的学习方法能有效地掌握编程知识,建议将其应用于初级编程课程的教学实践中。这些结果还表明,学习行为本身并不能完全反映编程学习的成果,因此需要与综合评价相结合。 观察到学习者在学习过程中经常参考外部资源,这表明教师应提供适当的学习环境,并通过使用外部材料和资源及时提供支持。 最后,作者指出了研究的局限性,包括研究时间较短、屏幕记录与平台学习数据同步的技术限制以及平台操作的新颖性,这些都需要在今后的研究中加以改进。

以下是我对这篇论文的印象。起初,当我看到标题时,我以为这篇论文是关于多模态学习分析(MLA: Multimodal Learning Analytics)的,它分析的是行为和生理信息,如面部表情、眼神注视和脉搏。 但实际上,我觉得这篇论文非常有趣,因为它是关于使用多模态学习分析方法对基于文本和基于块的编程学习方法进行分析和比较。从论文中可以看出,基于块的编程行为分类法以及将聚类结果可视化为雷达图的方法非常清晰,信息量也很大。但是,我对这项研究结果的解释有一些疑问。 由于基于块的编程和基于文本的编程针对的是不同的学习阶段,首先,基于块的编程可能比基于文本的编程更有效,尤其是本研究侧重于初学者的编程学习。我期待着进一步研究从基于块的学习到基于文本的学习的适当过渡时间,以及如何整合这两种学习形式。

(笔者:特任助教 耿学旺)

PAGE TOP