首页 > 编程语言 >以精确反馈促进学生编程逻辑和问题解决意识:一种基于两层测试的在线编程训练方法

以精确反馈促进学生编程逻辑和问题解决意识:一种基于两层测试的在线编程训练方法

时间:2023-11-24 19:45:38浏览次数:38  
标签:实验组 PT 编程 两层 训练方法 学生 学习 方法

(Promoting Students’ Programming Logic and Problem-Solving Awareness With Precision Feedback: A Two-Tier Test-Based Online Programming Training Approach)

DOI: 10.1177/07356331221087773

一、摘要

研究目的:培养学生的计算机编程技能已成为全球重要的教育问题。然而,学生在学习计算机编程时理解这些抽象概念仍然是一个挑战,这意味着在计算机编程活动中需要提供即时的学习诊断和反馈。因此,我们开发了一个在线学习系统,为学生提供精确的反馈,指导他们识别计算机编程的误解,以提高他们的计算机编程学习成绩,增强他们对编程逻辑正确概念的理解。

研究对象:为了检验所提出的方法的效果,开发了一个学习系统并进行了准实验。台湾两班共99名八年级学生被分为实验组和对照组。实验组采用基于测试的两层编程训练(T³PT)方法的学习系统,对照组采用常规学习系统。

实验结果:结果表明,在学生的编程逻辑概念问题解决意识技术接受度和对学习方法的满意度方面,所提出的方法明显优于传统的编程学习方法。

二、研究问题

(1)与传统的计算机编程学习方法相比,T³PT方法能提高学生的学习成绩吗?

(2)与传统的计算机编程学习方法相比,T³PT方法能提高学生的问题解决意识吗?

(3)与传统的计算机编程学习方法相比,T³PT方法能提高学生的技术接受度吗?

(4)T³PT方法是否比传统的计算机编程学习方法更让学生满意?

三、研究设计

(一)实验工具

双层测试:使用两层问题来评估学习者对特定主题的理解的测试策略:第一层问题用于评估学习者对该主题的知识或理解,而第二层问题用于检查学习者给出第一层答案的原因(Treagust, 1988)。双层测试解决了一般选择题无法区分学生选择正确或错误答案的原因的问题(Çil, 2015),可以更深入地了解学生对编程概念的理解情况(Lin, 2016)。

基于两层测试的编程训练(T³PT)系统结构如图1所示。系统前端由两层测试子系统和精度反馈子系统组成,后端为数据管理和记录的数据库。

在两层测试子系统中,每个问题被分为两层。第一层问题评估学生对编程概念的理解。第二层问题是基于第一层选择的答案,用于进一步理解学生选择第一层答案的原因之一,以检测学生是否对编程概念有误解。

图1 T³PT系统的结构 

 

图2  实验过程

预测旨在测试学生对编程的先验知识,包括20道关于计算机编程基本概念的选择题,总分100分。后测根据学习活动的内容,考察学生的程序设计知识和程序设计逻辑知识,包括15道程序设计知识选择题和10道程序设计逻辑选择题,每道4分,总分100分。

问题解决意识量表采用李克特5点量表(1 =完全不同意,5=完全同意)。该量表包括“我总是尽我最大的努力去解决我遇到的问题”等5个条目。

技术接受度量表是在Davis(1989)提出的量表基础上修改而来,采用5点李克特量表(1 =完全不同意,5=完全同意)。由13个关于学习系统的认知有用性和认知易用性的问题组成。

学习方法满意度量表是在Hwang et al .(2013)提出的5点李克特量表基础上修改而来的(1 =完全不同意,5 =完全同意)。这个量表包括7个项目。

(二)实验对象和方法

两个班的八年级学生参加了这项研究。他们的平均年龄为14.2岁。一个班被指定为实验组,另一个班被指定为对照组。实验组49名学生(女21名,男28名)采用T³PT方法,对照组50名学生(女24名,男26名)采用常规计算机编程方法。学习内容是八年级计算机科学课上的Scratch编程。为了保证研究的有效性,两个班由同一位老师授课;此外,两组学生被安排在相同的时间内学习相同的内容。

四、研究结果

(一)学习成绩

本研究采用协方差分析(ANCOVA)排除实验组与对照组前测成绩的差异,比较两组后测成绩是否存在显著性差异。编程后测包括记忆类问题和逻辑类问题,分为两部分进行讨论。

1、记忆型问题采用协方差分析

如表1所示,编程记忆型问题后的ANCOVA测量结果显示,差异无统计学意义(F = 3.90, p= > 0.05)。

组别

N

M

SD

Adjusted mean

Std.error

F

η²

实验组

49

41.20

6.27

41.26

0.89

3.90

0.04

对照组

50

38.84

6.35

38.79

0.88

 

 

表1 学习成就(记忆型问题)的方差分析结果 

2、逻辑型问题采用独立样本t检验 

根据Levene’s齐性检验的结果,两组学生的方差存在显著性差异,违反了齐性假设,因此不能用于ANCOVA。

 

采用独立样本t检验。对两组学生计算机程序基础知识的前测进行独立样本t检验。结果显示,两组学生在学习活动前对计算机程序基础知识的掌握情况差异无统计学意义。

 

采用Shapiro-Wilk检验检验后验的正态性,后检验符合正态分布。

 

然后,对逻辑型题的学习成就后测进行独立样本t检验,结果显示,两组学生的学习成就存在显著差异,见表2。结果表明,T3³PT方法有助于提高学生对编程逻辑概念的学习。

 

 

组别

N

M

SD

t

d

实验组

49

21.45

5.55

3.38**

0.68

对照组

50

18.20

3.84

 

 

**p < .01.

表2 学习成就(逻辑型问题)的t检验结果

(二)问题解决意识

排除前一份问卷的影响后,结果显示实验组学生与对照组学生在问题解决意识上有显著差异。即采用T³PT方法,实验组学生的问题解决意识明显高于对照组。

 

组别

N

M

SD

Adjusted mean

Std.error

F

η²

实验组

49

4.00

0.54

4.01

0.08

15.01***

0.14

对照组

50

3.57

0.60

3.56

0.08

 

 

***p < 0.001; 

表3 问题解决意识的ANCOVA结果

(三)技术使用的接受度

根据独立样本t检验分析结果可以看出,基于两层检验和精度反馈机制的学习方法的有用性与一般程序学习方法的有用性有显著差异;而这两组学生的易用性则不然。

1、感知有用性 差异显著

 

2、感知易用性 差异不显著

 

维度

组别

N

M

SD

t

d

感知有用性

实验组

49

3.61

0.66

2.87**

0.58

 

对照组

50

3.25

0.59

 

 

感知易用性

实验组

49

3.36

0.53

1.59

0.32

 

对照组

50

3.18

0.59

 

 

**p < .01.

表4 技术接受度的t检验结果

(四)对学习方法的满意度 差异显著

组别

N

M

SD

t

d

实验组

49

3.57

0.54

3.34**

0.67

对照组

50

3.21

0.55

 

 

**p<.01

表4 学习方法满意度的t检验结果

五、结论

在学生的学习成绩方面,本研究分析了编程测试中记忆型题和逻辑型题的得分。当使用传统的计算机编程方法时,两组在记忆型问题上的学习表现没有显著差异。产生这种结果的原因是Scratch是图形化编程软件,每个块都有特定的使用方式,而不仅仅是与编写程序相关的功能,比如重复循环等等。然而,双层测试侧重于帮助学生理解编程逻辑的基本概念,而不是如何使用Scratch的每个块,因此两组在记忆测试方面没有显著差异。对于逻辑类型的问题,T³PT方法明显优于传统的计算机编程学习方法,即双层测试可以提高学生的编程技能和学习成绩。从对学生的访谈中可以发现,在两层测试过程中,学生被提示重新思考相同的逻辑概念。在错误发生后立即提供精确反馈是最有效的教学行为,而精确反馈机制可以帮助学生及时准确地澄清自己的误解,更好地理解逻辑概念的应用。

问题解决意识分析结果显示,实验组的T³PT方法在课堂活动中可以获得明显更好的问题解决意识。造成这种情况的原因可能是由于采用了T³PT方法,要求学生在两层测试中反复深入思考选择同一问题答案的原因,以及精度反馈机制,使学生能够比较选项之间的差异,以确认自己的选择是否正确。

本研究采用t检验分析的结果显示,使用T³PT方法的实验组学生对学习方法的满意度显著高于对照组学生。这是因为初学者在学习编程时经常面临各种挑战和困难,容易失去动力。T³PT方法可以培养学生的积极思维,为他们提供比一般编程学习方法更准确的学习辅助和澄清误解的积极帮助。

贡献:与以往的相关研究相比,本研究的贡献在于提出了一种基于两层测试的具有精度反馈的可视化计算机编程方法。这种方法提供了一个机会来评估学生对编程逻辑概念的掌握程度,并结合一个精确的反馈机制来增强学生对编程逻辑概念的正确理解。通过帮助学生掌握正确的编程逻辑概念,避免误解的产生,初步解决了编程学习中的一个重大问题。此外,该方法还增强了学生的问题解决意识。本研究结果可为研究者解决程序设计学习中逻辑概念的学习提供参考,也可为学校教师在计算机程序设计学习中提升学生的学习成绩和问题解决意识提供参考。两层测试学习系统帮助中学生学习图形编程语言(Scratch),并培养他们解决问题的意识。两层测试的精确反馈不仅促进了学生的编程逻辑,也减轻了教师的负担。

局限性首先,本研究以正在学习Scratch编程内容的台湾初中生为研究对象。如果没有进一步的研究,本研究的结果可能无法推广到其他样本和课程。其次,本研究的样本量不够大,实验时间也不够长。

建议首先,基于两层测试的可视化计算机编程方法可以应用于不同年龄段的计算机编程学习,并且可以扩大研究的样本量以延长实验的持续时间。第二,本研究提供了T³PT方法对学生学习成绩影响的初步证据,该方法侧重于测试,未来可以纳入不同的学习方法,如游戏学习或合作学习。当学生使用双层测试学习逻辑概念或高阶思维(如批判性思维技能和计算思维技能)的内容时,也可以进一步调查学生的学习过程。

 

问题与收获

1、进行协方差分析的条件?

①方差齐性

②组内回归系数齐性,即自变量和协变量对因变量的影响没有交互作用。

③数据符合正态分布

2、方差齐性不是独立样本t检验的必要条件。

 

定性分析:滞后序列分析LSA。

合作(强调一块)、协作(有主有次) 

标签:实验组,PT,编程,两层,训练方法,学生,学习,方法
From: https://www.cnblogs.com/daydayupxl/p/17854606.html

相关文章

  • Java登陆第十三天——网络编程(三)DatagramSocket
    DatagramSocket使用DatagramSocket(数据套接字)可以进行UDP程序的开发,此类可以建立单向地、不可靠地、快速地通信。在UDP编程中,混淆了服务端和客户端的概念。因为通信是单向的,所以身份可以随时切换。(也有人把TCP称作服务端客户端,UDP称作发送端和接收端)DatagramSocket类常用......
  • 万字长文:从 C# 入门学会 RabbitMQ 消息队列编程
    RabbitMQ教程 目录RabbitMQ教程RabbitMQ简介安装与配置安装RabbitMQ发布与订阅模型生产者、消费者、交换器、队列多工作队列交换器类型DirectFanoutTopic交换器绑定交换器消费者、消息属性Qos、拒绝接收消息确认模式消息持久化消息TTL时......
  • 开源大模型驱动的智能编程与自然语言处理
    随着人工智能技术的不断发展,开源大模型已经成为了一个备受关注的话题。在这些开源大模型中,WizardCoder和WizardLM是两个备受瞩目的项目。本文将重点介绍这两个模型,并突出其中的重点词汇或短语。首先,让我们来了解一下WizardCoder。它是一个基于PyTorch框架的开源代码生成工具,......
  • 软件编程 ---- 截取网页
     #从Selenium和concurrent.futures导入必要的模块和类fromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptionsfromconcurrent.futuresimportThreadPoolExecutorimportconcurrent.futures.thread#定义一个函数,用于捕获整个页面的截......
  • 软件编程 --- 发http包
     #时间12:08#"expires_in":171205,importrequestsimportjsonfromdatetimeimportdatetimeimporttimeurl="https://jywgappthw.chinatowercom.cn:9000/workorder/bill/getBillList/"headers={"Authorization":"......
  • 《Unix/linux系统编程》教材第14章学习笔记
    |第14章|定时器及时钟服务MySQL简介MySQL(MySQL2018)是一个关系数据库系统(Codd1970)。在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统......
  • 掌握VB.net编程技巧,轻松打造Windows应用
    为了温故而知新,本博客旨在记录我学习VB.net编程的过程,分享基础知识和实用技巧,帮助有需要的朋友轻松入门VB.net编程。无论您是想开发Windows平台上的应用程序,还是想在.NET生态系统中展现创造力和创新精神,本文都将为您提供宝贵的指导。VB.net是一种易学易用的编程语言,它基于Microso......
  • python编程模拟题二
    重要提示:如下四个题都很类似,从简到难不等,请注意:尽管要求输入数字,但如果数字本身在题目中不需要参与计算,那么可以直接把这个数字当字符串来处理即可。如果数字参与计算了,可以把每个数字通过 eval()或 int()转换即可。这四个题目考察大家输入,输出,循环,字符串里每个字符的索引......
  • 不用编程超简单的自动化测试工具:Airtest入门篇教程
    一、背景很多刚入行或从其他行业转行做测试的同学,日复一日每天做点工已经点得疲惫和麻木,觉得做测试和在厂子里打螺丝没太大区别。也想着做一做自动化测试,奈何自己看着代码就头痛,当初就是因为不喜欢编程才选择的做测试。亦或者由于从其他行业转行过来的,隔行如隔山,编程太痛苦。那......
  • 编程语言和Python语言介绍
    (一)编程语言和Python语言介绍(1)编程语言的分类(1)机器语言什么是机器语言?机器语言是计算机可以理解的语言,是直接操作硬件的语言。就是计算机可以听懂的语言。由于计算机基于电工作,电频有高低电频之分,即高电频和低电频(0和1)计算机可以理解的就是二进制的指令(0/1),所有机器语......