基于Python语言的科学计算课程教学改革研究

2022-01-22 10:34郝静,平梦婷,陈建文,王仲梅
计算机时代 2022年1期
关键词:科学计算大数据教学改革

郝静,平梦婷,陈建文,王仲梅

摘  要: 科学计算是一门理论与实践结合的专业课程,该课程对学生的综合能力培养有着至关重要的作用。针对课程对传统软件依赖性强,学生缺乏实践与学习动力等问题,提出将Python程序设计语言及Jupyter大数据分析平台融入科学计算课程的教学改革方法,并在教学内容和教学方式上给出了具体的措施。以数据科学与大数据技术专业课程教学改革为例,这些方法和措施的采用显著地提高了学生的应用和创新能力,证明了教学改革的有效性。

关键词: 科学计算; 教学改革; Python编程; 大数据

中图分类号:G642          文献标识码:A     文章编号:1006-8228(2022)01-90-03

Research on teaching reform of scientific computing course with Python language

Hao Jing, Ping Mengting, Chen Jianwen, Wang Zhongmei

(College of Science, Hunan University of Technology and Business, Changsha, Hunan 410205, China)

Abstract: Scientific computing is a professional course which combines theory and practice, it plays an important role in the cultivation of students' comprehensive ability. In view of its strong dependence on traditional software and the lack of practice and learning motivation of students, this paper puts forward the teaching reform of integrating Python programming language and Jupyter big data analysis platform into the scientific computing course, and gives specific measures on teaching content and teaching methods. Taking the teaching reform of the data science and big data technology specialties as an example, the adoption of these methods and measures has significantly improved the application and innovation ability of students, which proves the effectiveness of the teaching reform.

Key words: scientific computing; teaching reform; Python programming; big data

0 引言

科學计算是数据科学与大数据技术专业的一门重要课程。目前,智能计算和仿真模拟是计算机科学和计算数学领域热门研究课题,相关研究成果能应用于工程、气象、飞行器等许多重要领域。

当前国内开设的课程均依托于Matlab等编程软件,然而Matlab软件受到国外开发商的使用限制,因此须寻找一种开源的编程软件实现科学计算和仿真模拟。

Python是一款开源软件,具有简单、可拓展性强等特点,其中利用机器学习和深度学习求解偏微分系统的研究工作受到学术界特别的关注。在“新工科”理念下,国内外许多高校陆续开设了Python语言程序设计相关课程[1],利用该软件的通用性和丰富生态系统来实现混合式教学。科学计算与Python编程语言是数据科学与大数据技术专业的两门核心课程,在解决数据科学任务与挑战方面具有独特优势地位。两者相结合,不仅能提高教学质量,还能突破以往传统的Matlab计算生态系统限制,改变传统的教学思维,帮助学生更好的掌握科学计算知识,对于专业人才培养具有重要意义。本文教学改革框架如图1所示。

1 改革的必要性

1.1 不过度依赖Matlab等商业软件

传统上,微分系统的数值求解和仿真模拟一般由Matlab等软件实现。Matlab等计算软件功能强大,但其作为一款国外商业软件,购买须花费大量资金;而且开发商对软件的功能使用上有所限制。为了不被“卡脖子”,我们必须尽快依托开源软件实现算法的开发与突破,尤其是在工程测量中一直占据重要技术地位的偏微分方程计算领域。Python是一款开源软件且第三方库十分丰富,具有通用性的特点,随着越来越多开发者的介入,Matlab大多数应用均可被Python取代。

1.2 课程教学需加强

对于数据科学与大数据技术专业的学生来说,对程序设计和数值求解的能力要求较高。目前,国内大多数高校科学计算课程的程序由Matlab软件来完成,而Matlab语言与Python具有差异性,容易混淆编程规则,因此给学生在编程语言的实操上带来困难。相比之下Python语言具有简单易学、可拓展性强的特点,同时大数据专业的学生精通Python语言,因此利用Python进行科学计算难度较小,专业适配性更强。

1.3 实践教学与课堂教学需紧密结合

科学计算是一门理论与实践密切结合的课程,应用能力的培养应该占据教学的中心地位。传统上,课堂教学与实践教学环节往往脱节,教学效果不理想。大数据分析平台Jupyter可以解决这一问题,该软件集教案设计、PPT制作、Python程序运行、可视化、网页制作、Latex文档编译等多功能于一身,实现课堂教学与实践操作同步进行。改革科学计算课程的教学方式方法,有利于锤炼学生应用计算机软件的能力,提升获得感和创新活力。

1.4 课程考核方法有待改革

科学计算这门课程,目前大部分高校采用单一的期末笔试来考查学生的学习情况,这样的考核方法已经不适应专业发展形势,学科间的交叉融合需建立在课程考核改革的基础之上。该课程需重视算法设计、程序实现、上机操作等过程的考核。具体可通过以下方式实现:引入动画、实例库、计算机辅助教学和课件等资源,促进数值计算方法课程的软件建设;利用计算机教学科研网络平台和数据科学与大数据技术实践教学平台来提高数值计算方法课程的硬件设施水平等[2]。

2 科学计算课程教学改革思路

科学计算技术是数据科学与大数据技术专业学生必备技能,是实现专业创新发展的重要法宝。改革主要目标是:将Python语言应用到科学计算中,实现对于几类偏微分系统以及复杂流体系统的数值求解和仿真模拟,突破以往传统的Matlab计算生态系统,解决智能计算与仿真模拟的软件依赖问题以达到教与学的统一。具体有四个方面内容。

2.1 利用机器学习算法求解偏微分方程

机器学习和深度学习主要包括线性回归、决策树、逻辑斯蒂回归、支持向量机、隐马尔可夫模型、神经网络等。不同于传统差分方法,利用机器学习算法求解偏微分方程可以通过构建无网格算法进行设计,避免网格剖分,解决维度爆炸的问题。在课程教学过程的初级阶段,学生可以通过Python进行调包,实现简单的偏微分方程的求解;进阶阶段,可以向学生们展示一些利用Python语言的第三方库和深度学习算法求解偏微分方程的程序,帮助学生掌握算法设计思路,进而解决来源于物理、工业工程、流体的数值模拟仿真等困难问题。

2.2 利用Jupter实现教学环节一体化

Jupyter notebook是一个交互式自动笔记本,支持多种自动编程应用语言,它是以网页的形式打开,在网页上实现即时代码开发、文档编写、可视化、Markdown、Python程序运行等。教师在科学计算课程的教学中可以引入Jupyter大数据分析平台,结合代码进行讲解,实时编译运行,做好充分的讲解与演示,以生动的形式展现课程的教育教学全过程。课后的实验报告、终期考核可以结合Jupyter完成,提交生成PDF文档,方便浏览且自动识别程序结果。Jupyter实质上是一个Web应用程序,它便于创建和共享文字化的程序文档,可以将解题思路和代码共存于一个程序文档,既便于老师查看,也便于日后回顾。通过Jupyter打造具有鲜明特色的个性化课程教学体系,促使教学进程向纵深发展。

2.3 实现专业课程的层级推进与无缝衔接

科学计算属于一门承上启下的课程,实际是介于基础理论和实践教学课程间的一门核心课程,主要讲授数值算法、微分方程数值解法。课程内容包括:差分方法;常微分方程数值解法;偏微分方程数值解法;有限元方法等[3]。后续将安排深度学习、数学模型、大数据技术与应用等高级课程,实现专业课程之间的无缝衔接,持续优化数据科学与大数据技术等专业人才培养方案。在科学计算课程教学环节中,教师除了注重学生的程序设计思想的培养,还应该先开设机器学习、数据挖掘等课程,在算法的实现过程中引导学生自主学习TensorFlow、Scipy等第三方库,有效训练学生的基本技能。

2.4 考核改革的专业针对性

相比于其他的课程,科学计算更注重考核学生的实践能力,考核形式應多元化,考核方式主要为随堂测试、上机实践、期中实验报告、期末考试等。上机操作和实验报告有助于提高学生的操作能力,通过完成Python语言编程设计,实现对算法设计的深刻理解[4],同时教师可将优秀的实验报告编撰成《科学计算论文集》,积累教学素材。期中多频次实验报告以具有实际背景的微分方程为求解对象,构造数值算法,利用Python编程实现。期末考试既考察学生数值计算理论、Python应用能力,也考核学生算法设计思想,考核分数由平时表现(30%)+ 分组报告与综合项目(30%)+ 期末综合测试(40%)综合打分。数据科学与大数据技术专业主要培养学生数据采集处理、特征工程、模型训练与优化能力,而科学计算技能在其中扮演这关键的角色,因此有针对性的对专业技能课程的考核进行改革,有利于以学生为中心的科学理念形成和学科建设的健康发展。

2.5 开展学科竞赛和项目研究

问题驱动式教学在高等教育中的重要性和科学性已经被广大师生认可。在科学计算课程的教学进程中,教师利用学科竞赛和课题研究引导学生开展知识探索和原始创新,有利于提高学生参与度、发挥创造力和想象力,有利于挖掘年轻人的潜能。当然,在问题驱动式教学中,教师的个人综合能力直接决定了改革的实施效果。高水平的学术指导就像音乐指挥家,非演奏本体却主导整个表演过程。以湖南工商大学大数据专业教学改革为例,在实践教学改革后,学生参与实践竞赛的兴趣有了明显提高,该专业学生数学竞赛的参与度提高了30%,同时全国大学生数学建模竞赛的参与度达到了80%。

3 结束语

科学计算是数据科学与大数据技术专业学生需要掌握的一项重要技能。课程的开设不仅可以通过简化假设建立数学模型向学生完整的展示完整的解题过程,还可以借助数值方法和数学软件帮助学生进行理解[5]。对于科学计算课程教学改革的成效,在诸如全国大学生数学建模、统计建模、大数据分析等大赛中得以显现,学生取得优异成绩的同时,还播下了创新创业的种子。这些成绩的取得与教学方法的不断探索和改革是密不可分的,实践证明,利用Python软件对数据科学与大数据技术专业学生的科学计算课程进行改革,能催生最大潜能,提升学生获得感和创新精神。在实践教学和实训方面,基于Python语言的科学计算课程教学改革还有进一步提升的空间。

参考文献(References):

[1] 刘卫国,奎晓燕.Python语言程序设计教学体系建设[J].计算机教育,2017,(8):13-17

[2] 王海军,曹德欣,陈兴同,胡建华,杨然.基于科学计算和实践创新能力培养的数值计算方法课程改革与实践研究[J].大学教育,2016(8):135-136,150

[3] 李丹丹.浅析Python在大数据课程教学改革中的作用[J].教育现代化,2019,6(82):115-116

[4] 魏冬梅,王秀华,王影,陈一夫,汪思德.基于Python的程序设计通识课程建设与教学实践[J].计算机教育,2019,2:69-73

[5] 赵国忠.科学计算核心课程教学的几点思考[J].阴山学刊(自然科学版),2018,32(3):106-108

猜你喜欢
科学计算大数据教学改革
《计算机程序设计》课程中科学计算思维能力的培养
关于理科生计算能力培养的探讨
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究
微课时代高等数学教学改革的实践与探索
基于大数据背景下的智慧城市建设研究
大学物理教学中培养科学计算能力的研究