CoCalc云平台辅助的计算材料学教学探索与实践

2023-12-15 06:48文艳伟李浩博单斌杜纯
大学教育 2023年16期
关键词:互动兴趣效率

文艳伟  李浩博  单斌  杜纯

[摘 要]含有编程类知识的理工科课程的教学往往会遇到程序环境配置繁、代码调试难、知识点与代码脱节、师生交互性差等问题。针对计算材料学课程项目研究式教学存在的难点,课程教学团队借助CoCalc云平台,并结合线下教学的模式,解决了实践环境配置、代码调试、师生互动等教学环节问题,激发了学生利用便捷的云平台展开探究性学习的兴趣,完成了互融式教学设计,变晦涩、抽象和枯燥的学习为直观、形象和有趣的学习,提升了学生的学习体验感和获得感,为理工科实践类课程的教学提供了新思路、新模式。

[关键词]CoCalc云平台;计算材料学;兴趣;效率;互动

[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2023)16-0037-05

计算材料学是以计算机为工具,应用适当的数学方法,对材料科学问题进行数值分析与研究,对材料性质及过程进行数值模拟的新兴学科,是研究材料问题的一种新方法。计算材料学课程是华中科技大学材料科学与工程学院的一门专业核心必修课程,国内众多高校,例如浙江大学、中国科技大学、上海交通大学、西北工业大学也开设了该课程。该课程主要教会学生以小组合作的形式,利用计算机模拟探究材料的多种物理化学性质,深入理解材料微观结构和宏观性能的联系,对学生专业知识体系的完善、创新研究能力的提升,以及团队精神、探索精神的培养具有极其重要的作用。

计算材料学课程涉及量子力学、固体物理、材料科学基础、计算机程序设计等知识,概念繁多,对学生的专业知识、技术能力、探索技能要求较高,是一门技巧性较强的实践性课程。模拟原理抽象、程序代码枯燥、缺少直观形象的认识是学生学习该课程的拦路虎,再加上部分学生缺乏充足的实践参与学习体验,导致其容易丧失学习兴趣。“课堂上似懂非懂,结课项目无从下手”是计算材料学教学过程中一种比较普遍的现象。针对程序类的实践性课程,人们在教学方法、手段、考核方式等方面进行了一系列探索。在国内外云平台蓬勃发展的背景下,教育资源在管理和配置上具有低成本、灵活性、互动性等优势,因此云计算辅助教学管理模式在高校教学实践中逐渐兴起[1-2]。尤其是对计算机类基础课程,云平台教学在细化时间粒度、获取双向学习效果方面有明显的成效[3-5]。刘思宇等人[6]借助华为ModelArts云平台,探索了计算机视觉教学案例,让学生可以在由易到难的实验过程中多角度、渐进式、由浅入深地掌握计算机视觉领域的基础工程方法。李斌[7]基于华为DevCloud对软件项目的实训课程进行了实践,通过人工智能软件的运用全面提升了学生的软件工程能力。开源中国(OSChina)推出了针对高校的代码托管服务平台Gitee高校版,提供了班级/团队管理的方式,以支持教师、助教、学生多角色权限,并方便分组进行项目合作编程。卢华灯等人[8]在项目式教学中使用Gitee进行了理实一体化迭代式教学探索,降低了学生理论学习与代码实践切换的难度,记录了学生编程实践过程,提高了巡堂指导的效果。

笔者在试用过程中发现,Gitee平台支持的编程语言有限,没有集成如Python、Linux等的编程环境,这使计算材料学的程序教学严重受限,学生也无法在线调试,体验感较差;作业批改与课程考核大多通过在线评测系统进行,学生仅能提交代码、查看评测结果,而不能与教师或其他同学在线协作,课程交互性有待提高。CoCalc是一个基于Web的协作平台,自2013年问世以来,已被美国的加州大学洛杉矶分校、佐治亚理工学院,英国的牛津大学等世界一流大学用于生物信息学、数据科学、密码学等数百门课程的教学实践。例如,哈佛大学的数学课程使用CoCalc提供给学生实时访问计算工具,并可协作完成作业和项目;加州大学伯克利分校的计算机科学课程使用CoCalc为学生提供一个用于编码、测试和协作项目的平台。目前,我国主流云计算运营商尚未推出能够实现同类功能的教育产品。计算材料学课程教学团队首次将CoCalc云计算平台引入国内课堂教学,进行了一系列有意义的探索,解决了学生在配置程序环境、代码调试、作业反馈等环节的难题;通过理论教学与代码实践迭代式教学,改善了学生的学习体验,提高了教学效率。CoCalc云平台使用的便捷,极大激发了学生开展探究性学习的兴趣,使综合教学效果大幅度提升。

一、CoCalc平台简介与课程实施

CoCalc集成了Python、R等程序设计语言及配套的众多科学计算包和Jupyter Notebook、Nbgrader、LaTeX等辅助工具,具有模块丰富、网页操作简单、在线协作便捷等优点,能够很好地满足计算材料学课程所需计算、绘图能力的要求,为实践编程类课程教学改革提供了新的平台与契机。CoCalc平台集成了Python常用的Numpy、Scipy、Matplotlib、PyTorch、Pymatgen等科学计算包,体系完善,能满足基本计算、机器学习、材料结构分析、数据可视化等多样的需求,为开展面向互联网时代、项目探索式代码类课程的开放、共享式云平台教学模式探索提供了契机。

课程教学团队依托CoCalc平台对计算材料学的教学模式进行了改革探索,整个实施过程包含四个环节:课堂教学、课后实践、项目探索、成果展示及考核,如图1所示。课堂教学包括分子动力学基本知识点、代码实现以及课堂演示,课后实践包括课后作业、编程及可视化练习,这两部分是课程的基础,是对学生基本理论知识和编程能力的训练。然后学生分组选择感兴趣的材料模拟小课题开展項目探索,这一过程由教师对课题难度、深度进行把关,选题问题明确且有意义,既能激发学生的探索兴趣,又能锻炼学生的科研能力。通过这一环节的锻炼,学生基础知识的牢固程度和科研能力都会提升至一个新台阶。最后一个环节是小组将科研成果进行分析整理,通过PPT在课堂上向所有同学展示;由其他小组学生对汇报小组的成果进行评分,鼓励大家思考、提问和讨论;学生再完善课题研究成果并撰写规范的科研论文,由教师进行批阅。学生成绩采用多元化的方式进行评价,包括课堂表现(占10%,由教师打分)、课后作业(占20%,由助教打分)、汇报评分(占35%,由学生打分)和论文评分(占35%,由学生打分)。

在整个课程设计中,课堂演示、课后实践以及项目探索这三个环节难度较大,如何将知识点与代码直观、有机地结合与展示,如何构建便捷的实践环境与学生互动,项目探索如何利用最新的互联网或人工智能工具等,都是程序类工科课程面临的重要问题。在教学和实践环节引入CoCalc云平台,解决了学生在课程教学中实践环境构建、知识点呈现、作业互动和项目探索等关键环节出现的问题,促使教学效率显著提升,学生体验和反馈良好。基于该平台,本课程教学团队通过庖丁解牛式的分解让学生高度参与完整的分子动力学程序编写和模拟,通过可视化图形展示模拟结果,有力地揭示了材料计算模拟的机理、材料体系的物理规律,有助于学生形成形象思维与系统思维,并为构建材料科学、物理、化学等领域正确深刻的理性认识奠定基础。

二、CoCalc平台教学优势分析

(一)体验式教学激发学生兴趣

计算材料学课程的教学难点在于如何将分子动力学的知识要点与枯燥的程序代码联系起来。分子动力学模拟原理抽象、程序代码枯燥,缺乏直观形象的展示,导致学生容易丧失学习兴趣。因此,必须加强学生学习体验,大幅增加学生的参与度和成就感。成熟的分子动力学软件如LAMMPS模拟功能强大,但是程序代码复杂、数量过万行,不适合用于教学呈现。本课程教学团队以二维平面内氩气分子动力学模拟为例,采用庖丁解牛式的教学方式,引导学生通过自主编程的形式,通过简单的Python代码逐一完成晶体建模、势函数定义、周期性边界条件控制、积分算法等分子动力学模拟,最后通过主程序迭代完成简单、完整的分子动力学模拟程序pymd,如图2所示。图2标识了整个分子动力学模拟的功能模块、课堂教学的知识点、简洁的模块式代码。通过该设计,让学生能够提纲挈领,了解分子动力学模拟的流程和各模块功能;精准定位每个知识点—分子动力学要素在模拟中的角色,然后精细化到各个知识点的编程实现。学生通过重组各模块完成一个完整的分子动力学模拟程序,运行自己编写的程序,获得了满满的成就感,对计算材料方法的认识有了质的提升。CoCalc平台为这一教学设计提供了良好的运行条件。尤其是在知识点与代码关联环节,Jupyter Notebook为学生提供了便捷的网页式程序编写和调试功能,集成的Matplotlib功能包能对学生的代码进行实时画图显示,执行后就可以得到直观的输出结果。如图3所示,代码的实时运行和输出给出了直观形象的二维晶格建模结构、谐振子跳蛙算法的速度和位移分析。教师在课堂上鼓励学生动手修改程序,实现无序二维晶格建模、速度Verlet算法、多体势函数定义等功能。在学习过程中,学生通过阅读及修改代码,动手动脑、实践知识,提升分析和设计能力,既加深了对课堂上介绍的分子动力学公式的理解,又激发了学习兴趣和探索欲望。CoCalc平台的使用,帮助学生通过代码把看似单调的公式应用于实际材料体系的计算分析中,通过动手操作,学生能体验到成功的喜悦,从而增强学习自信,将材料专业知识与计算机技术结合起来,破除了对计算材料学的消极畏难情绪和陌生感。在2022—2023学年的教学实践中,有多个学生小组选择编写基于Python的分子动力学程序作为结课项目,如将课程中的二维分子动力学模拟程序拓展至三维晶体结构,运用自学的机器学习工具PyTorch等进行简单的高通量计算,对材料模拟数据展开综合分析。因此,CoCalc平台的引入激发了学生学习热情和研究创造激情,使教学效果显著提升。

(二)云平台优势助力提升教学效率

计算材料学课程开设之初,仅由教师在课堂讲授相关理论知识,学生实践机会少、理解深度浅。在之后几年时间里,本课程教学团队探索了多种方式,希望为学生提供一个方便、稳定的实践环境。如编写安装指南,让学生在自己电脑上安装Linux系统、MATLAB、Python等计算软件,在一定程度上提高了课程的实践性。但是,这些软件占用空间大、配置过程烦琐,对于计算机基础较薄弱的学生,教师需要大量的时间进行指导。实际执行过程中,电脑环境的差异也可能影响安装效果。例如,安装Python時,不同电脑的设置或软件版本不同,运行过程中易出现软件包缺失的错误,造成了诸多麻烦。据不完全统计,学生花费在系统安装、环境配置上的平均时间超过十小时,严重影响了学习效率和教学体验。

本课程教学团队在实践环节引入基于网页云计算服务的CoCalc平台,保证了集成环境和软件的一致性,免除了软件安装配置的环节;每位学生都可免费注册账号、加入课堂,拥有独自的工作空间用于代码存储及运行。即注册即用的模式,使得学生可以将更多的时间和精力用于课程学习,大幅度提高了教学效率。

此外,CoCalc平台还具有完善的课程管理工具,可以较好地辅助教学,其共享和开放性可以进一步助力教学效率的提升。图4所示为管理员登录界面,CoCalc平台建立课程后,主目录包含了.course文件,记录了选课学生的名单,可以向名单中的每位学生共享课件、发布作业;Assignments里存放作业练习;Handouts可存放课件PPT、交互特性编写代码示例文件或作业。云平台上每位学生账号下都会有独立的Assignments和Handouts文件夹,学生可以直接在网页运行代码、查看结果,并尝试修改,保证互不影响。作业系统可以自动收取作业、利用Nbgrader工具自动批改、对作业进行批注及一键下发,节省了教师逐一查看、验证代码的时间。对学生而言,由于作业文件内置了程序输入输出样例,学生在线运行代码过程中可实时运行了解自己的代码是否正确,错误一目了然,节省了反复上传代码、等待在线评测平台验证、验证失败后手动定位错误的时间。学生使用后普遍给予了积极反馈:“使用CoCalc平台后不用自己下载软件,注册和操作也很方便”“能够比较快地发现自己写得有没有错、错的地方在哪,上面还有老师提供的例子”等。

(三) 云平台的协作性增强了师生的互动

CoCalc平台具有云协作特性,该平台的实时访问计算工具和协作功能非常适合在课堂上使用。从教的角度来看,教师可以方便地进行实时课堂编程演示,并与学生一起进行交互式讨论;从学的角度来看,学生可以通过CoCalc平台实时访问代码和使用计算工具,进行模拟和分析,在课堂上观察和理解材料的性质和行为。尤其是针对项目探索类的课程,学生与学生之间可以通过CoCalc平台的协作功能一起完成项目,这种互动性提升了学生的写作能力。教师可以通过CoCalc平台的在线评审功能,对学生的作业和项目进行及时评审,为学生提供有针对性的反馈和指导;可以创建并使用CoCalc平台的在线练习和测试来评估学生的学习进度与成果,帮助学生了解他们的强项和弱项。传统的教学模式下,当学生遇到困难时,需要发送代码截图或文件给教师请教,却经常遇见反馈不够及时的问题,代码较长、问题描述不清晰等更影响了互动的效率。在CoCalc平台上,教师或助教可以通过看板了解学生的作业提交情况,并在需要时直接进入学生的工作空间查看代码文件,相当于“坐”到了学生的电脑前,可以完整地阅读学生的代码,最后确定问题所在。例如,有学生在编写氩气分子三维分子动力学Python模拟程序时,发现原子数目较多时会出现体系温度及势能异常的情况,他们认为是势函数声明的问题。本课程教学团队教师通过云平台直接进入学生的工作空间,分析代码后发现,问题来源于代码开头部分,学生忽视了计算机数组的有关特性,导致生成原子坐标列表时发生了溢出错误,部分原子坐标异常。据此,教师及时批注了该部分代码,使学生在半个小时内就调试并解决了这个问题。CoCalc平台作为教师和学生之间的桥梁,增强了师生交互性体验,将教与学环节紧密联系,做到了教学相长。

三、CoCalc平台教学不足分析

本课程教学团队在采用CoCalc平台进行计算材料学教学的实践中,也总结了该平台在课程教学中的一些不足之处。首先是免费试用版的CoCalc平台为每位用户提供的云计算资源有限,代码在执行中会出现卡顿情况,使学生的使用体验感欠佳。其次,部分学生反馈Python嵌套式界面和程序结构阅读起来有些费劲,需要一定时间适应代码写作习惯。最后,Nbgrader自动评分系统对教师端的使用要求较高,由于Nbgrader评分方式固定,需要教师精心设计判分条件。

四、结语

本课程教学团队在实践中借助CoCalc云平台的集成性、多功能性、易用性和协作性,探索出直观形象的互融式教学设计,增强了学生学习体验;发挥平台的集成性和多功能性优势,解决了学生配置模拟环境遇到的各种障碍,节省了大量学习时间,提升了学习效率;利用平台的协作性帮助学生与学生、学生与教师实现共同工作,增强了师生之间、生生之间的交互,激发了学生的科研兴趣,课程教学效果得到了显著提升。本课程教学团队的实践探索希望能为编程类、基于项目导向的高校理工科课程的教学改革抛砖引玉,借助新兴的云平台技术,变晦涩、抽象和枯燥的学习为直观、形象和有趣的学习,激发学生的学习兴趣,引导学生探索创新。

[ 参 考 文 献 ]

[1] 刘文.基于“云计算”的辅助教学模式及其資源组合[J].教育教学论坛,2016 (26):144-145.

[2] 朱晓燕.基于云服务的高校教学实践平台[J].电子技术与软件工程,2017(18):12-13.

[3] 吴宪君.基于云服务的大学计算机基础课程资源平台设计[J].现代信息科技,2017, 1(5):124-126.

[4] 张泽文.云服务在高校计算机教学中的应用探讨[J].中外企业家,2018(1):37.

[5] 苏菲.基于云服务的高校计算机课程SPOC教学模式探讨[J].信息系统工程,2021(2):161-163.

[6] 刘思宇,李嘉乐,赵家栋,等. 基于ModelArts云平台的计算机视觉实验教学探索[J].电脑知识与技术,2022, 18(24):29.

[7] 李斌.基于华为DevCloud的计算机软件项目实训课程创新性实践[J].信息技术与信息化,2019(12):30-32.

[8] 卢华灯,李婷妤.基于Gitee的理实一体化迭代式项目驱动教学法应用研究[J].计算机教育,2019(7):117-120.

[责任编辑:钟 岚]

猜你喜欢
互动兴趣效率
提升朗读教学效率的几点思考
浅谈粉丝经济与网络造星的互动关系
基于快乐教学的投掷课教学研究
智力因素在语文教学中的作用研究
试论培养学生的问题意识
低年级识字教学中游戏的设计与研究
关注生成,激活学生认知
巧用多媒体技术, 让语文课堂更精彩
奥巴马与劳尔本周“互动”
跟踪导练(一)2