Linux及程序设计在大气科学中的实验教学研究
作者: 王瑞 周天 李哥青 陈思宇
摘 要:为推动和落实新时代高等教育的高质量发展,完善实验课程在“双一流”高等院校中的课程体系建设,该文基于当前兰州大学大气科学专业(2020级和2021级)Linux及程序设计实验课程教学情况,从实验教学内容、随堂交流和观察及课后调查问卷等方面,分析实验教学效果和目前存在的问题,并针对教学中存在的问题提出相应的建议和改进方法,以期优化实验教学方案、提高教学质量,激发学生创新和综合实践能力,培养大气科学领域具有良好计算机应用技能的复合型人才。
关键词:Linux系统;大气科学;Cygwin;NCL;实验教学
中图分类号:G642 文献标志码:A 文章编号:2096-000X(2023)11-0116-05
Abstract: In order to promote the high-quality development of higher education in the new era and improve the curriculum system construction of experimental courses in "double first-class" universities, the experimental teaching effect and existing problems are analyzed from the aspects of experimental teaching content, teaching methods, classroom observation/communication(Grade 2020 and Grade 2021), and questionnaire, based on the current situation of Linux and learning of programming in School of Atmospheric Science of Lanzhou University. Meanwhile, the corresponding suggestions and improvement methods are put forward to optimize the experimental teaching program, improve the teaching quality and stimulate students' innovation and ability of practice, which trains integrated talents with good computer application skills in the field of atmospheric science.
Keywords: Linux system; atmospheric science; Cygwin; NCL; experimental teaching
Linux操作系统起源于Unix操作系统,最初Linux的内核由芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)于1991年编写,之后将内核上传至网络供大家下载并不断完善其中的程序代码,逐渐发展成如今一种稳定、开放、多任务、多用户、能在个人计算机上实现全部Unix特性的操作系统[1]。随着电子信息技术和数理学科的发展,使用计算机技术求解描述大气运动的数理方程组,是当今大气科学领域中天气预报和气候预测的重要手段之一。数值天气预报模式(例如目前国际上主流的中尺度气象模式WRF和我国自主研发的业务预报模式GRAPES)的研发和运行大多基于Linux操作平台,尤其是近年来大数据和人工智能算法在数值天气预报中的应用越来越广泛。实验教学作为国家实施高等教育“质量工程”的内容,是培养学生使用计算机处理和分析大气科学相关问题的重要部分,完善高等教育建设战略“双一流”学科及课程体系[2-3]。因此,作为对该专业学生今后在数值模拟方面学习的铺垫和启发,在实验课程中设置Linux系统基础操作是十分必要的[4]。笔者所在兰州大学大气科学学院根据培养方案和教学大纲要求,在大一上学期设置大学信息技术基础实验课程(共36学时),课程内容主要设置为Linux系统基本命令、Shell Script循环和判断结构程序、NCL(NCAR Command Language)程序设计入门学习。首先需要搭建Linux实验平台即安装Linux系统,过程中需学生自己进行磁盘分区和内核管理设置等,然而,由于学校机房计算机资源存在硬件设备老旧、计算机内存有限和运行速度较慢等问题,在这些限制条件下,不便于学生在有限的实验时间内安装Linux操作系统,进而在教师示范操作后无法及时进行模拟练习,不能达到预期的实验教学效果。因此,在实验教学中选择安装并运行虚拟环境来模拟Linux系统,对于本专业的学生来说,能够满足Linux基本命令和程序设计入门学习的需求并且很容易上手操作。
在笔者实际授课过程中,选择Cygwin作为模拟Linux系统环境进行基本操作的训练。Cygwin是搭建在Microsoft Windows平台上运行的Unix模拟环境,由Cygnus Solutions公司开发的免费Windows软件,本着“Get that Linux feeling-on Windows”的原则可实现在Windows上仿真Linux操作系统。其核心部分是Cygwin库,提供了POSIX系统兼容环境。Cygwin发行版包含了来自开源世界的数千个包,包括大多数GNU工具和许多BSD工具等。Cygwin将DLL库(动态链接库)和管理工具等按照Unix/Linux的目录树架构进行组织存放,用户打开Cygwin终端进入运行界面后,就可以像在Unix/Linux系统中一样使用相同的命令进行操作[5]。Cygwin可以运行在现如今发布的Windows版本,包括Windows Vista、8、10和所有后来的版本。Cygwin允许轻松地移植许多Unix程序,而无需对源代码进行大量更改;学校机房无需额外购置设备,所占空间小(即使安装Cygwin全部函数库也只需占用十几千兆的存储量),平台维护成本低;功能丰富,包含多种应用程序协议(例如:GPL、X11等),适合本专业实验教学的应用,非常便于学生在学校机房和个人计算机上进行安装和实训操作。
另一方面,NCL程序设计是由美国国家科学基金会赞助,美国国家大气研究中心(NCAR)开发的大气科学领域常用数据分析和程序设计绘图软件。NCL具有图形接口简单、丰富的函数库和处理数据方便等优点,其官方网站上已公布详细的学习手册和种类齐全的脚本示例。此外,NCL的语法规则与本专业要求学习的Fortran(Formula Translation)语言逻辑和语法有相似之处,并且可使用WRAPIT接口实现与Fortran语言的参数传递和调用[6-7],成为本专业学生在今后的业务和科研工作中很好的应用软件。通过NCL程序设计的学习,不仅有助于学生锻炼程序设计思维、熟悉大气科学领域遥感、站点数据的处理分析并使之可视化,而且还可为大一年级下学期的Fortran语言和大二年级下学期的Python语言的学习打下基础。然而,NCL的安装和运行均在Linux系统环境下进行,因此想要掌握NCL首先要熟悉Linux系统和基础操作命令。
综上所述,本文基于对兰州大学大气科学学院2020级和2021级学生开展的Linux基本命令,基于Linux系统的Shell Script和NCL程序设计入门基础实验教学,从实验平台系统安装、实验教学内容、课堂和课后调研等多方面分析和总结实验教学情况,探讨目前实验教学存在的问题并针对问题提出相应的建议和改进,以期优化实验教学方案,提高实验教学效果和质量,培养学生的程序设计逻辑思维,激发学生的创新能力。
一 实验平台搭建——Cygwin和NCL的安装与配置
(一) Cygwin的安装
基于Cygwin能很好地模拟Linux系统环境,便于学生在学校机房和个人计算机上搭建Linux实验平台和实训操作,在此介绍Cygwin安装过程。登录Cygwin官方网站(https://www.cygwin.com/)下载其安装程序,Cygwin安装程序分为32位版本和64位版本,在此需要注意的是本专业后续实验内容NCL程序设计需要在32位的Cygwin版本上运行,因此选择安装32位版本的Cygwin安装程序(setup-x86.exe)。安装过程大体分为3步:选择安装方式和路径、下载所需函数库(组件)并安装运行、安装后的测试。如图1所示,Cygwin有3种安装方式可供选择,分别为网络在线下载函数库(组件)安装、下载Cygwin函数库(组件)但不安装、当Cygwin函数库(组件)已下载到本地时直接安装,一般在网速较为畅通的情况下可直接选择网络在线下载函数库(组件),同时选择安装存储路径。
下一步在分类(Category)选项中选择需要安装的函数库(组件),此处可选择全部安装但需要花费较长时间和较大存储空间,也可只挑选部分进行安装(图2),但需要注意的是若选择安装部分函数库(组件),为了后续在Cygwin中成功安装NCL必须安装的函数库(组件)有Devel,Editors,Graphics,Libs,Net,Shells,X11。在安装完成后还需检查是否安装成功,即打开Cygwin终端并输入cygcheck -c cygwin,若状态(Status)显示OK则表明安装成功(图3)并可正常模拟Linux系统环境。成功安装Cygwin后,在安装路径下会生成类似于Linux系统环境中的12个目录分别是/bin,/cygdrive,/dev,/etc,/home,/lib,/opt,/sbin,/srv,/tmp,/usr,/var,其中/cygdrive是Windows系统中的盘符被映射到此目录下,通过此目录(路径)Cygwin可访问Windows各磁盘目录(路径)。
(二) NCL的安装与配置
NCL的官方网站(http://www.ncl.ucar.edu/Download/cygwin.shtml#InstallNCL)上提供了详细的安装教程,例如在官网公布的NCL Version 6.5.0版本下载网站(https://www.earthsystemgrid.org/dataset/ncl.650.dap/file.html)选择含有CYGWIN字符的NCL安装包ncl_ncarg-6.5.0-CYGWIN_NT-10.0-WOW_i686.tar.gz,下载该安装包并拷贝到已安装好的Cygwin目录下。在Cygwin终端界面进行解压安装的操作,命令为tarzxvfncl_ncarg-6.5.0-CYGWIN_NT-10.0-WOW_i686.tar.gz。解压完成后,需要设置环境变量,即在用户的主目录下打开.bashrc文件,并在文件末尾添加以下3行代码。
export NCARG_ROOT=/home/ncl
export PATH=$NCARG_ROOT/bin:$PATH
export DISPLAY=:0.0
此处设置环境变量是为了给Cygwin指示NCL的安装路径,需要注意的是第一行中设置的安装路径必须与NCL安装包实际解压存放的路径一致。添加完成后保存并退出.bashrc文件的编辑,激活编辑过的.bashrc文件,在终端中输入source .bashrc命令即可。最后测试NCL安装是否成功,在终端中输入ncl-V,若显示NCL版本号则证明安装成功。
二 实验教学分析
(一) 实验教学效果
实验课程教学选择《鸟哥的Linux私房菜基础学习篇(第四版)》[1]作为Linux基本命令和Shell Script的参考教材,《NCL程序设计入门》和《NCL数据处理与绘图实习教程》作为NCL程序设计参考教材,课程教学内容包括Cygwin和NCL安装、Linux基本命令、部分Shell Script和NCL程序设计绘图等方面,同时利用超星“一平三端”智慧教学系统开展辅助教学活动。