投稿问答最小化  关闭

万维书刊APP下载

基于C语言程序设计谈在线虚拟实验用于MOOC教学

2024/1/23 16:41:15  阅读:66 发布者:

0 引 言

虚拟实验软件是一种利用虚拟现实技术和计算机仿真技术来模拟真实实验环境进行实验交互过程的软件[1]。在C语言程序设计教学中,它可以通过对硬件设备和软件平台的工作机制、程序的执行流程、计算机内部信息流的动态过程等的模拟呈现,为学生提供一个虚拟的实验场景和交互方式,使学生可以在不受时空限制的情况下进行可视学习和实验操作。作为计算机技术用于线上教育的一种新形式,在线虚拟仿真实验[2]丰富了MOOC课程的内容和形式,填补了实验在线的空缺,对于引导学生完全自主学习,推动线上教学的发展,助力翻转课堂具有重要意义。

1 C语言MOOC在线教学现状

C语言程序设计是一门重要的计算机基础课程,对于培养学生的编程思维、算法设计和数据结构应用能力具有重要意义。随着MOOC的兴起,C语言相关的MOOC课程建设获得了长足的发展,其MOOC内容呈现出了较多元的形式,除了讲座视频、互动讨论、在线测验,还包括编程在线测评等。C语言MOOC在提供优质教学资源的同时,也存在尚未解决的挑战和问题,如学生缺乏直观的面对面交流与互动,缺乏细粒度的量身讲解等,导致不少学生对于C语言的细节、本质的知识把握不足。这主要受制于两方面:①C语言编程过程中有很多涉及语法细节的问题,无法仅从教学视频中获得答案,初学者在学习过程中经常遇到长代码报错,难以定位其问题所在,也无法分辨其中的逻辑关系和语法问题;②能够参与MOOC答疑的师资力量有限,面对长代码问题,目前MOOC平台提供师生问答方式进行讨论,这很难应对海量选课学生的庞大问题体量。即使学生互问互答,也难以保证其答疑质量和正确性。因此,需要进一步完善MOOC教学模式和资源创建,提高学生的学习效果和质量[3]。虚拟实验方法提供了与MOOC融合的教学资源与模式,突破传统实验的局限,弥补了MOOC在实验教学环节的匮乏。重点在于利用技术赋能实验教学的可视性和可重复性,提升学习效果和教学效果,并促进开放共享教育理念的实施。

一直以来,在国内MOOC上开放的虚拟实验很少[4-6],国际平台CourseraedX上,也仅在不免费的情况下才能访问完整的课程实验资源。目前,虚拟实验作为一种新技术支持下的课程资源已经出现在国内的一些MOOC平台中。例如,中国大学MOOC平台上华东师范大学的大学物理实验课程、北京理工大学的大学计算机课程,其实验都提供了虚拟仿真操作,对实物器材进行了模拟,使用专门的虚拟实验仿真平台作为虚拟实验软件的载体,突破传统实验在设备、场地、时间等方面的限制,方便学生进行实验操作。学堂在线平台上清华大学的数据结构课程也配置了虚拟仿真实验,如“图灵机演示”“Hailstone”等,使用离线Excel文件作为载体,对数据结构中的算法运行过程进行动态交互演示,其操作简便,能够让学生在短时间内掌握操作的技能和规范,将关注点放在实验原理和过程上。

与以上课程相比,C语言不仅需要关注代码执行过程的算法逻辑,还需要关注程序运行时相应数据流在计算机内存中的变化态势,因此,程序设计类课程的虚拟实验不是直接对实物器材模拟并强调实验操作步骤,而是既对计算机内存微观数据流进行模拟,又是对算法逻辑进行交互性演示和操作的过程。北京理工大学开设的C语言程序设计课程获评国家级一流线上课程,其实验建设过程不断探索和完善,最终将虚拟实验以在线方式融入MOOC课程,利用先进技术支撑,创建数字化实验教学资源,从多方位考查学生能力,以期提升在线教学的效率。

2 在线虚拟实验用于MOOC教学的解决方案

虚拟实验教学改革需要3方面的支撑:教学积累、技术赋能、软件研发。

1)实验方法。

MOOC课程目前已提供两个在线虚拟实验:①循环程序的基本概念和构成方法;②冒泡排序实验过程数据与结果。

对于初学者来说,通过MOOC视频讲解能够了解循环的基本概念以及通过循环控制变量控制循环次数的思想,如何将这些概念和思想落实在学生自己编写的代码上呢?这是一个常见的教学难题。虚拟实验一着眼于该教学难点,以一个求和问题的程序设计为例,让学生采用循环思路设计算法,并启发学生按照规范方法进行流程图完善性设计,培养分析问题并正确表达问题的能力,使学生了解循环程序解决问题的特征点,并能直观了解算法执行过程中计算机内存中控制变量的变化,从而深刻理解循环的执行过程和核心概念。本实验首次实现程序逻辑、程序运行、内存数据流演化的同步动态展示,具体地,将实验界面设计成为3个主要模块,如图1a)所示,实验主要包含左侧的流程图、中间区域的C程序源代码以及右侧区域的内存演示。这3个区域要求学生首先完善流程图,之后虚拟实验软件根据流程图自动生成相应的C程序源代码(如图1b)所示),最后学生通过点击“自动运行”或者“单步运行”按钮,观察根据其流程图逻辑所生成的程序是如何执行的,变量的值在内存中是如何变化的(如图1c)—(f)所示)。

虚拟实验二面向的教学难点是冒泡排序算法,它是一个二重循环,对于初学者来说其逻辑不易理解。MOOC教学中,仅靠视频讲授难以把控学生的理解和掌握程度,也使学生难以消化成为自己动手可用的知识。本实验以一个成绩排名为例,实现冒泡排序算法的动态可视化过程,根据冒泡排序的基本思路,学习利用计算机进行问题求解的算法设计过程,了解采用数组存储数据进行排序算法设计的有效途径,明确一维数组在排序算法中不可或缺的重要性和应用方法。实验界面同样分为3个板块:流程图、程序代码、和内存演示,如图2a)所示。实验同样要求学生在了解冒泡排序理论知识之后补充完整流程图,程序自动生成相应C程序代码。在正确完成前序任务之后,学生可以点击“开始运行”按钮查看排序算法运行过程中逻辑(流程图)、代码和内存中数组元素值的联动性,从而掌握冒泡排序法的核心环节和循环边界条件。

本课程的两个在线虚拟实验具有良好的操作性和可重复性,能够帮助学生更好地理解和掌握循环实验从逻辑到代码的程序设计方法,再到程序动态运行内存变量变化的原理。

2)实验方式。

实验时,学生进入本MOOC课程并打开虚拟实验板块,阅读实验要求后,点击每个在线实验软件的Web链接直接进入实验界面,并根据实验要求完成实验,根据每个实验报告表(见表1和表2)的内容对实验过程中的数据和信息进行记录。实验过程中,软件中有引导性文字,辅助学生正确完成该实验。学生将完成的实验报告电子作业电子文档提交至MOOC课程。

3)实验评估。

MOOC课程的总体计分方式(百分制)为单元测验10%,单元作业35%,期末考试50%,课程讨论5%,其中虚拟实验计分算入单元作业中,占20分。为了有效地对虚拟实验报告表进行评估,采用学生互评的方式,要求学生在给定期限内对其他的同学进行实验报告评价。为了约束学生对该作业的互评完成度,规定完成所有作业并参加互评的学生才能获得个人作业最终成绩的全部;如果不参加互评,作业最终成绩将为得分的70%;如果未能完成所有互评任务(每个人评阅其他3人的实验报告,同时每个人将获得其他3人对自己的实验报告评价),那么作业最终成绩将为得分的90%。通过教师对互评结果进行随机抽样调查,学生的互评准确度基本可靠。图3为虚拟实验环节的学生得分情况与成绩分布,共有412人(不包含通过SPOC选课人数)参与本次虚拟实验,满分20分,平均分为15.6分,约有140人拿到了满分,占总人数的1/3;约有50人的分数为12分(含)以下,约占12%,说明本实验所涉及的内容虽然为一个教学难点,但是已经能让绝大多数学生掌握正确的实验原理,保障学生真正理解相关理论知识并运用于实践。

3 在线虚拟实验与MOOC平台对接

C语言程序设计的MOOC课程在线虚拟实验软件运行在“虚拟实验工场”实验平台(vrsyg.com)。图4 所示为多平台无缝对接的虚拟实验软件使用方法展示。教师在MOOC平台发布虚拟实验作业和实验报告,学生打开MOOC课程在课程内容区的“虚拟实验”板块,即可找到两个虚拟实验的详细信息(如图4a)所示),在该作业说明文字中有跳转链接能够对接到“虚拟实验工场”平台的该项Web端虚拟实验软件。软件能够直接运行使用(如图4b)所示),无需学生为了使用该软件在其他平台上额外注册账号。这种无缝对接的方式可以极大地提高学生在线学习的效率,且能有效地反馈作业和获得作业评价。

4 教学效果

C语言程序设计课程的在线虚拟实验用于训练学生算法思维,如在实验操作之初,强制学生完成算法流程图的制作,虚拟仿真实验软件能够动态地运行该流程图,以便学生检查其中的算法逻辑是否正确。之后,软件根据正确的流程图完成程序,根据学生输入数据,分步执行程序并展示后台内存中数据的变化。本课程的虚拟仿真实验主要面向算法和难点问题,能够强化学生进行算法的训练,帮助学生解决编程中的抽象逻辑难题,通过在线虚拟实验软件把程序的抽象逻辑和硬件运行实况直观地关联起来,使教学过程更加细粒度化和简单明了,提高教学辅导和答疑效率。例如,对于某知识点,每百人约有80人会产生问题,而一个教师就这个知识点支持80个学生答疑,在60分钟内每名学生仅能获得不到45秒的答疑时间,而通过本课程的MOOC在线实验,相当于给每个学生培养了一名指导教师在其身边。根据教学经验,总结和设计出MOOC在线实验软件2个。假设本课程选课人数为400人,相当于节省了320(人)×2(个实验)×60(分钟)=38 400分钟的教师答疑时间,为本课程的MOOC教学注入了高效运转的动力。

5 结 语

MOOC课程将虚拟实验以在线的方式引入,通过超链接跳转到虚拟实验Web端的方式,将在线虚拟实验平台和MOOC平台无缝对接,不需要额外的多平台用户账号注册。通过学生互评实验报告,能够良好地实现该部分作业成绩评估,并统计在MOOC课程的总成绩中。在线虚拟实验引入MOOC,能够培养学生的信息素养和约束学生进行自主学习和探索,实现面向学生的赋能教育。借助该项前沿信息技术提高了在线教学的对学生细粒度化辅导能力,节省了教师在线辅导和在线答疑的时间,从而为C语言程序设计课程的MOOC教学提供了更好的支持和帮助,助力对MOOC课程所呈现内容多元化和多样性的探索和实践。

参考文献:

[1] 张敬南, 张镠钟. 实验教学中虚拟仿真技术应用的研究[J]. 实验技术与管理, 2013(12): 101-104.

[2] 华子荀, 黄慕雄. 教育元宇宙的教学场域架构、关键技术与实验研究[J]. 现代远程教育研究, 2021, 33(6): 23-31.

[3] 崔贯勋. 基于云计算技术的MOOC实践教学平台[J]. 实验室研究与探索, 2015, 34(8): 119-123, 157.

[4] 李林, 李凤霞, 兰山, . 基于MOOC的虚拟仿真实验方法探究[J]. 实验室研究与探索, 2017, 36(4): 111-113, 130.

[5] 凌玉, 李念兵, 罗红群. 慕课和虚拟仿真在物理化学实验教学中的作用[J]. 西南师范大学学报(自然科学版), 2020, 45(5): 174-177.

[6] 叶飞, 廖成竹, 章剑波, . 慕课与虚拟仿真深度融合的实验教学[J]. 北京科技大学学报(社会科学版), 2022, 38(1): 67-72.

第一作者简介:赵三元,女,北京理工大学副教授,研究方向为计算机基础教育、计算机视觉和虚拟现实技术,zhaosanyuan@bit.edu.cn

引文格式:赵三元,李仲君,李凤霞,.基于C语言程序设计谈在线虚拟实验用于MOOC教学[J].计算机教育,2023(11):195-200.

转自:“计算机教育”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com