HyFlex教学解决方案:解决混合式及线上计算机编程课的难题

        过去几年,新冠疫情肆虐,给全球高等院校带来了诸多问题,西交利物浦大学也身处其中。因学生自身所在国家地区的政策规范要求以及西浦所在地的具体要求,学生是否返回学校上课的不确定性很高。。作为计算机编程专业的老师,我们非常清楚,学生需要积累大量编写代码的实践经验,这点至关重要。但因为种种限制,我们只能通过线上教学,因此无法更多地在编程实验室与同学们面对面互动。在此期间,我们发现了三大难题:一,如何克服语言障碍;二,如何对编程作业进行评审;三,如何确保学生参与度。为此,我们设计了HyFlex教学解决方案以应对这些挑战。我们的解决方案贯穿了整个学习过程,有助于提高学生的课堂参与度。无论线上、线下还是两者混合的学习形式,该解决方案均能适用。

 

 

同学们在助教和课程负责人的帮助下,在计算机实验室进行编程练习。但在新冠疫情流行期间,这样的实践课几乎难以实现。

 

 

一、如何克服语言障碍

 

        西交利物浦大学是一所具有国际化背景的高等学府。我们招收的学生来自世界各地,对于绝大数学生而言,英语并不是他们的母语。因此,他们学习计算机编程存在一定的难度,因为这门课中同学们必须学习并掌握的专业术语全部是英语。此外,在大多数现代的和经典的编程语言中,其句法使用了一些常见的英语单词和短语。

 

 

同学们常犯的语言错误

 

 

        为克服语言障碍,我们创建了一个在线交互式术语表,其中包含了对每个英语术语的含义解释,并且每周会在我们学校的虚拟学习环境(VLE)学习超市上不断更新此表。这样,学生在学习编程语言的同时,还能学习编程所需用到的外语。通过这一技术的应用,老师和学生都能随时随地对术语表进行协同创建和编辑。此外,我们还使用Moodle Quizzes和H5P工具来创建英语学习游戏,旨在测试学生的英语知识。其中一个例子就是拼词游戏,学生需要找出课上讲到过的单词。通过玩类似的游戏,学生可以从中发现学习语言的乐趣!

 

 

这是一款拼词游戏,学生需要找出课上讲到过的单词

 

 

二、用CodeRunner对学生的编程能力评分

 

        在现代计算机编程课上,我们会教学生如何在计算机上编写计算机代码,包括学习如何借助支持性工具进行编程,如集成开发环境(IDE)和可视化工具。因此,如果我们还是按照传统考试的形式让学生在试卷上手写代码,然后对他们的编程技能进行打分,这就似乎有些讽刺了,即使传统的考试形式就是如此。如果以这种形式进行考试,学生无法撤消错误,也无法删除错误答案或插入新行,但如果上机操作考试的话则完全没有这些问题。此外,传统考试形式也无法使用学生们较为熟悉的计算机上的自动格式化或拼写检查功能。因此,改卷老师难以看懂答卷,更不用说打分了。之前我们见过学生手写代码,但半天都不知从何看起。

 

        众所周知,大学里有许多公共大课,这对于任课老师改卷始终是一个挑战。想象一下,一位老师需要为1200名学生改卷打分,这是一个多么大的工程量!答题的算法千变万化,其中部分答案可能正确,因此要按正确比例给分。我们既要负责编译,又要负责打分,分析语法并确定每个答案的哪些部分是正确的,以及应该打几分。有时我们还要完成大量计算工作,根据评分准则决定是否给予加分,过程中很容易出错。正因为如此,我们也很难对形成性评估进行反馈,尽管反复的编程练习对于初学者而言非常重要。

 

 

图为给学生的手写代码打分。想象一下,任课老师需要为1200份这样的试卷打分!

 

 

        为了解决这些难题,我们在三年前就开始在学习超市中使用名为CodeRunner的Moodle插件。这一插件可以对代码进行自动打分,并根据测试用例的正确性给予反馈。学生在线提交作答的代码后,立即能得到代码是否通过测试用例的结果。问卷调查显示,当系统报告代码成功通过所有测试用例(在下图中绿色方框中显示),我们的学生会获得一种极强的成就感。

 

 

这名学生编写的代码通过了所有测试!想象一下那种油然而生的成就感!

 

 

         CodeRunner的灵活性体现多个方面,比如它能支持不同编程语言及评分准则。还有另一个有用功能,即一旦CodeRunner中某道题目的评分准则改了,它对学生提交作答代码的评分也会相应改变。部分分数可在通过测试用例的子集后给出,无需手动计算。此外,我们在计算机实验室的考试中也用到了这一自动评分器。

 

        不久后,新冠疫情爆发,我们很高兴我们有这一项技术来应对上述挑战!之后,我们便将其用于线上编程考试,考试期间,学生还可以使用平时常用的集成开发环境和其他支持工具。更重要的是,我们不仅用CodeRunner来批改每周常规编程实验室的作业,还用于批改每周大量的写代码练习,其结果作为形成性评估的一部分。此外,在助教线上教学的支持下,我们还能单独查看学生写的代码,然后在学习超市的在线论坛上进行反馈。在分数公布以后,学生可以查看所有批改反馈并获得更优代码解决方案,这有助于他们更快地了解自己的表现。

 

        鉴于CodeRunner的上述实用性功能,尽管如今很多课已回归线下课堂或混合式教学,我们还是使用CodeRunner对学生在实验室写代码进行批改,或是远程批改。在习惯线上操作以后,就会出现一个问题:我们需要鼓励学生们重新回到实验室!

 

 

三、借助JazzQuiz提高课堂参与度

 

        在疫情爆发后,老师们最关心的问题之一就是学生的课堂参与度:我们对着电脑屏幕讲课时,学生是否在认真听课呢?他们是否理解课程内容呢?哪些主题需要再多讲解呢?

 

        我们提出使用JazzQuiz( https://moodle.org/plugins/mod_jazzquiz )作为解决方案,这是在学习超市中用到的一项轮询技术。我们在课上或实验室操作中使用这一工具,对学生们进行“现场”轮询,了解他们对于重要概念的理解程度。此外,我们还可以通过学生对“轮询”的回复情况,了解每位学生的参与度。如果我们需要对学生学习进度给出重要反馈时,JazzQuiz就能发挥重要的作用,我们可以根据需要随时调整教课速度,以及对某些重点知识反复强调等。

 

 

JazzQuiz轮询的某一道题

 

 

        但不可否认的是,每次上课前在JazzQuiz中设计5至10道问题,确实工作量很大。超负荷的工作量让老师们不禁要问:它真的值得花上这么长时间和精力吗?同学们会喜欢它吗?它会提升原本就积极参与的同学的成绩吗?为了找到答案,我们对使用JazzQuiz做了行动研究,通过问卷调查的方式收取学生的反馈。例如,许多学生反映使用JazzQuiz有助于提高课堂专注度:“它能迫使你集中注意力。”对于无法返校的国际学生而言,使用JazzQuiz有助于增加与老师和同学们的互动:“我觉得我最投入的时候是当我做了测试但答错了,然后老师会为我解释这道题……因此课堂互动非常有必要”。有些学生则将JazzQuiz作为一种自我实现的方法:“成绩是否提高其实并不重要,至少我对某个知识点有了更深的理解……这是一种成就感。”另一些学生则发现JazzQuiz有助于构建自己的知识体系:“当你对学习更投入时,你会更加积极地学习,因为你要解决的是自己的问题。”

 

        总体而言,我们的研究表明,学生如果更多地了解JazzQuiz的教学价值,就能更好地利用这项技术,他们的学习成绩也会更优秀。欲了解更多详情,请阅读下文:

 

 

Na Li、Erick Purwanto*、Xiaojun Zhang、Feng Cao、Kok Hoe Wong和Xiangru Chen(2022)。对JazzQuiz在大学生互动式混合学习中教学价值的理解:一项新技术的接受度分析。交互式学习环境。https://doi.org/10.1080/10494820.2022.2129393.

 


作者
Dr. Erick Purwanto, Dr. Thomas Selig
西浦智能工程学院

李娜博士
西浦未来教育学院

发表日期
2023年07月25日

相关文章