基于云计算的翻转课堂在编程类课程中的应用
作者: 田晓轩 王少峡 王虹
[摘 要] 面向非理工专业学生开设编程选修课程可使其适应大数据时代的职场及学术要求,但面临缺乏可及性、稳定性强的编程操练环境,理论课程难度较大而课时不足,以及个体化指导和过程性评价不足等困难。在“R语言与数据可视化入门”课程中,通过搭建云计算平台,借助swirl自主学习包实现理论课程翻转教学,借助MOOC/自媒体/自制视频资源实现数据分析与可视化实践课程翻转教学,结合侧重于过程性评价的多元考核方式,达到较好的教学效果。本教学设计对其他非理工专业学生的编程选修课程具有一定示范推广价值。
[关键词] R语言;数据可视化;云计算;翻转课堂;swirl包
[基金项目] 2020年度天津中医药大学教学改革研究项目“‘互联网+’背景下新型教学模式及其评价体系的研究与实践”(2020JY064);2022年度中央本级重大增减支项目“名贵中药资源可持续利用能力建设”(2060302)
[作者简介] 田晓轩(1982—),男,天津人,博士,天津中医药大学中医药研究院研究员,主要从事中药资源鉴定研究;王少峡(1978—),男,河北邯郸人,博士,天津中医药大学医学技术学院研究员,主要从事神经药理学相关研究;王虹(1974—),女,山东龙口人,博士,天津中医药大学医学技术学院副院长,研究员(通信作者),主要从事医学技术相关研究。
[中图分类号] G434 [文献标识码] A [文章编号] 1674-9324(2024)15-0029-04 [收稿日期] 2023-04-23
一、面向非理工专业开设编程选修课程的价值
当下人类已进入数据化生存时代。在生物医学领域,高通量测序等组学手段的应用已使医学研究从科学假说驱动逐渐转向大数据驱动。通过开设编程类选修课程,培养学生基本数据分析与挖掘能力,已成为生物医学专业学生通识教育的一部分。但限于学生较为薄弱的知识背景,编程类课程要在有限的选修课时中达成教学效果,必须明确合理的教学目标与合适的教学工具[1]。
数据分析的过程大致分为五个阶段,包括收集数据、处理数据、分析数据、展示数据和报告撰写。R语言擅长统计建模和解决数据分析相关的问题,是一种为数据而生的程序设计语言[2],具有免费、扩展性强、更新快、交互性强且绘图能力强大等特点,可基于简洁可读的代码完成设计,且学习门槛较低,被认为是数据分析实践、统计作图的理想工具[3]。笔者认为,以掌握基本数据处理和可视化分析等实用技能为教学目标,通过开设“R语言及数据可视化入门”课程,用36课时介绍R语言和可视化基础知识,并着力于对学生数据分析与绘图等具体实践能力的培养,可增强学生利用计算机进行临床试验和科研的能力,符合其知识背景和职业规划实际,也可使其适应大数据时代的职场及学术要求。
二、非理工专业编程课程的常见困难
一般来说,面向非理工专业学生的编程课程,需在较短课时内实现编程语言基础知识的讲授和具体实践能力的培养。而现有编程课程往往存在以下困难。
(一)缺乏可及性、稳定性强的编程操练环境
笔者认为,编程语言课程的理论与实践不可分割,缺乏交互的教学难以激发学生的学习兴趣和潜能。特别对于计算机基础较弱的学生,更应将动手实践贯穿课程始终,在编程中理解编程。需借助好的教学平台,强化自主学习并及时给予正反馈,使其跟上课程节奏并掌握解决问题的能力。
常规教学中,多在机房中采用集中教学的方式完成编程实践。然而,在疫情防控期间,相较于普通教室,在相对封闭的公共机房授课具有更高的疫情传播风险。且对于线下授课,无论授课地点,均可能受疫情影响而存在不确定性,随时需因疫情情况变化而转移至线上,学习方式由集中式学习转变为分布式学习[4]。除此以外,基于机房的学习也难以利用学生的碎片化时间,造成个体学习时间不足。
在缺乏实验场所支撑的情况下,教师常在线示范,或借助远程协助工具等帮助学生在个人计算机或在线编程网站上完成编程学习[5]。然而,考虑到课程内容必须依赖若干R语言程序包完成,一般在线编程网站难以实现。而利用个人计算机,则常需花费其大量时间搭建软件、工具包等编程环境[6];且不同学生的计算机往往问题各异,师生疲于解决系统兼容性等问题,难以专注于课程内容本身,无法保证课程进度。
(二)理论课程难度较大而课时不足
生物医学类等非理工专业学生,常只具备Office操作等基本计算机技能,缺少编程经验。用14个学时使其掌握第一门编程语言的理论知识,难度较大。此前,已有诸多教育者利用MOOC等大规模在线开放课程[7]以及本校特色的线上教学资源,以翻转课堂的形式,有效拓展教与学的时间和空间,克服授课时间不足的困难,提高教学实效。
然而,这类翻转课堂也面临流于形式化、知识碎片化等问题。因多数教师无法查看学生的MOOC学习进度,部分学生自制力或理解力不足而导致自学效果较差,如在面授时间主要开展小组讨论等活动,则其难以参与而影响学习效率。为保证全体学生进度,理论课程仍主要依赖面授完成。
(三)个体化指导和过程性评价不足
在笔者教学过程中,观察到学生的接受能力、学习意愿存在较大差异。例如,在可视化绘图模块中,仅靠一次讲解常有部分学生不能充分理解,在随后的实践操作环节出现代码“卡壳”情况,因计算机教学的特点,其无法跳过“卡壳”部分继续下一步的学习。教师无暇在授课时间完成逐一辅导,陷入或影响全班教学进度或放弃后进学生的两难境地。此外,实践环节学生生成的代码难以在第一时间汇集反馈,导致教师对学生的过程性评价不足,课程进度调整滞后。
三、基于云计算平台的多元翻转课堂教学
(一)云计算平台搭建
为把“以学生为中心”的理念融入课堂教学,笔者在服务器上搭建Rstudio server平台,并对学生开放。在课程准备阶段,教师统一为学生分配账号、设置权限、部署软件环境并拷贝必需数据,以上工作通过几行代码完成,省时高效。学生可通过网页随时使用计算平台,且只需专注于授课内容本身,节省大量编程环境故障排除时间。利用Git技术,可实现代码共享、作业自动提交教师审阅,从而达到“云机房”的授课效果。
(二)翻转课堂课程设置
笔者基于以上云计算平台,充分利用MOOC/自媒体/自制视频资源,借助雨课堂在线教育与考核功能,实现多元翻转课堂课程设置。“R语言与数据可视化入门”课程设计见图1。
1.借助swirl教学包实现R语言理论课程翻转教学。实践中,本课程常作为学生的第一门编程课程,其基础理论部分较为抽象,逻辑性较强,学习难度较大。笔者在Rstudio server计算平台中,部署约翰斯·霍普金斯大学开发的交互式R语言自学包swirl,并将其作为课前学习内容提前布置。“学习编程的唯一方式就是编程”,区别于常见教学视频式的内容,swirl包通过人机交互的方式,引导学生在动手回答问题的同时实现递进式学习(见图2)。对于理解力或计算机背景较弱的学生,也允许其反复试错并可即时给予语言激励,提高其兴趣。自主学习进度也有即时记录。学生在课前完成指定学习内容后,可积累足够的感性认识并熟悉专有英文名词。
在随后的课堂面授中,教师专注于概念理论的串讲,为学生搭建整体知识框架,并适当采取小组的方式对概念难点、自学过程中的疑问进行讨论分析,激发学生思维。
在课后,学生可在Rstudio server中完成指定课后作业(事先已统一部署发放至个人账户),形成代码及输出结果,借助Git环境或雨课堂形式提交。
2.借助MOOC/自媒体/自制视频资源,实现数据分析与可视化实践课程翻转教学。本课程力图用22个学时使学生具备数据分析与可视化的实际能力。相对于理论教学,此部分内容较为直观,但交互操作、代码细节较多,仅靠课堂上的演示,学生常难全部掌握。除MOOC等“金课”与自录制视频资源外,受商业因素驱动,公众号、哔哩哔哩等平台拥有大量优质的R语言绘图视频资源,经教师甄别后均可作为课前学习内容。教师将配套软件包、代码及数据预先部署于Rstudio server中每个学生的个人目录下,学生可反复收看视频后,复现视频中的数据分析与绘图,并完成相应习题。基于Rstudio server的实践不限时间异步进行,但需在每个教学周内完成。此外,通过公众号订阅,学生还可以在课程结束后持续学习相关知识。
在课堂面授中,教师主要完成核心代码的串讲,以及高级图形的拓展演示。频繁利用小组形式,使学生通过讨论解决习题中的编程报错;鼓励其不断修改代码,并将结果在全班展示。让学生在实现个性化数据分析的过程中,达到对知识的进一步理解。
(三)多元考核方法的应用
借助Rstudio server云计算平台,有利于将教学结果评价向过程性评价转变。课程成绩考核与评估方式为:综合成绩=平时成绩×50%+期末成绩×50%。
平时成绩分为:课前,swirl包学习进度和视频实践案例完成情况;课中,即时反馈情况、小组表现、借助“雨课堂”的随机点名、限时章节测试和程序设计提问等;课后,日常作业情况。
期末成绩为利用自设题库,通过雨课堂平台限时完成。设置的题型包括单项选择题、多项选择题、观点判断题和程序设计。
其中程序设计内容,教师给定数据集和待解决问题并提前部署于计算平台,要求学生提供R markdown导出的html文件,包含代码与分析结果的完整报告,以此判断学生分析代码的真实性和合理性。
四、学习效果分析
2022年秋季学期课程结束后,对参与学习的28名学生进行了匿名问卷调查,回收有效问卷22份,回收率78.6%。调查结果显示,27.3%的学生对课程的整体感受非常满意,59.1%的学生对课程满意,13.6%的学生认为课程感受一般,无不满意情况。详细分析问卷反馈情况,感受“一般”的学生自觉学习效果较差,课外配套学习较少。100%的学生表示对编程语言有了初步的认识。90.9%的学生自述可利用R语言实现数据可视化,达成课程教学目的。86%的学生认为翻转课堂式学习体验较好。但需注意以下两点:一是仍有4.5%的学生反映自学时容易偷懒,教师需在面授中加大预习督促力度。二是在回答“编程实践中,成就感与挫败感哪个更大些?”这一问题时,有18.2%的学生表示挫败感更强。为增强学生兴趣,促使其在课程结束后主动利用课程知识解决实际问题,未来应加大激励力度。
总体而言,本课程通过搭建云计算平台,为学生提供了易操作、可及性强的编程自主练习环境。继而调整课堂内外时间,将学习的决定权从教师转移给学生。在这种教学模式下,在课堂内的宝贵时间,学生能够更主动地专注于项目的学习,共同研究并解决问题,从而获得更深层次的理解,学生的学习更加灵活、主动,参与度更强。
参考文献
[1]严冰,关培超.大学非理工类编程课程教学改革研究:以C语言为例[J].教育教学论坛,2019(40):127-128.
[2]渠畅.基于R语言的大数据挖掘课程建设研究[J].无线互联科技,2018,15(4):91-93.
[3]沈新娣,侯丽英.医学类专业概率论与数理统计教学实践:R软件与案例结合教学[J].教育教学论坛,2020(22):284-285.
[4]祝智庭,郭绍青,吴砥,等.“停课不停学”政策解读、关键问题与应对举措[J].中国电化教育,2020(4):1-7.
[5]张志伟,汪刘送,崔琳等.新冠肺炎疫情背景下大数据课程线上教学探究:以《Spark编程基础》为例[J].宿州学院学报,2022,37(6):80-84.
[6]顾洪亮,余光明.探究R语言在高师院校课程中的教学实践研究:以地理科学专业《计量地理学》为例[J].现代交际,2020(19):70-72.
[7]夏磊.疫情防控背景下计算机应用基础课程教学改革的探索[J].中国新通信,2021,23(21):177-178.