Creative Education Studies
Vol. 11  No. 07 ( 2023 ), Article ID: 68810 , 5 pages
10.12677/CES.2023.117260

基于大气科学的Fortran语言程序设计教学探讨

张莹,胡文东

成都信息工程大学大气科学学院/高原大气与环境四川省重点实验室/气象环境与健康研究院,四川 成都

收稿日期:2023年4月27日;录用日期:2023年7月7日;发布日期:2023年7月17日

摘要

Fortran语言程序设计作为一门简洁高效的计算机高级编程语言,在大气科学专业中被广泛使用。文章在充分厘清了Fortran语言程序设计传统教学中存在的短板弱项后,从教学设计、教学方式及专业融合三个方面提出了针对性的建议,旨在激发学生对该课程的学习兴趣,加强学生的上机实践,加速相关专业课的有效融合,以期为大气科学专业学生以后顺利开展业务科研工作打下坚实基础,同时也为高等院校涉及计算机程序设计的其他专业进行类似的教学改革提供借鉴和参考。

关键词

Fortran语言,程序设计,专业融合

Discussion on Fortran Language Program Design Based on Atmospheric Science

Ying Zhang, Wendong Hu

Plateau Atmosphere and Environment Key Laboratory of Sichuan Province, Institute of Meteorological

Environment and Public Health, School of Atmospheric Sciences, Chengdu University of Information Technology, Chengdu Sichuan

Received: Apr. 27th, 2023; accepted: Jul. 7th, 2023; published: Jul. 17th, 2023

ABSTRACT

Fortran language program design, as a concise and efficient computer high-level programming language, is widely used in the specialty of atmospheric science. After fully clarifying the weaknesses in the traditional teaching of Fortran language programming, the paper puts forward targeted suggestions from three aspects as following: teaching design, teaching methods, and professional integration, which intend to stimulate students’ interest in the course, strengthen students’ computer practice, and further accelerate the effective integration of relevant professional courses. In this way, it is expected to lay a solid foundation for students majoring in atmospheric science to carry out business and scientific research smoothly in the future, and also provide reference and reference for other majors involved in computer programming in colleges and universities to carry out similar teaching reform.

Keywords:Fortran Language, Computer Programming, Professional Integration

Copyright © 2023 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

Fortran语言是世界上第一个被正式推广使用的、极具发展潜力的计算机高级汇编语言,Fortran优点在于其语言表达和数学公式非常类似,计算速度快,程序本身拥有强大的函数库,直接可对矩阵进行操作,并且编程功能最为强大 [1] [2] [3] [4] ,长期以来,它始终是数值计算、大气科学及工程技术等相关领域所使用的主要计算机语言 [5] [6] [7] [8] [9] 。大量的程序设计者使用该语言,编写了许多科学计算中有关数值计算问题的高性能源代码程序,并提供了相应的库文件供使用者直接调用,从而使得Fortran语言得到快速的推广和发展 [10] 。大气科学领域中的数值天气预报模式、统计天气预报、天气气候诊断分析等研究领域和实际业务中的大量计算问题,几乎全部是用Fortran语言编写的源代码程序 [11] [12] [13] [14] 。经过多年的积累,这些程序不仅成熟可靠、算法优良、计算精度高,而且还在不断的扩充、完善;与此同时,Fortran程序源代码不受开发平台和操作限制,可以跨平台、跨系统交换源代码,加之其计算速度快,程序本身拥有强大的函数库,可对海量气象数据进行批量处理等一系列优点 [15] [16] [17] [18] [19] ,奠定了Fortran在大气科学专业中无可替代的地位;还有,Fortran语言相比其他语言语法要求要严格些,更适合严谨的科学计算领域,如对数组进行越界检查,若不作检查,这在科学计算方面这种“散漫”的用法是相当危险 [1] 。故此《Fortran语言程序设计》一直是高校大气科学专业开设的专业基础课程之一 [20] [21] 。然而,作为一种高级程序语言,Fortran语言程序设计的专业性和趣味性往往被忽视,教学方式相对单一,造成大气科学专业的学生对该课程往往兴趣不足,同时,Fortran语言程序设计与大气科学其他专业课之间缺乏有效融合,也阻滞了其在大气科学专业上的拓展应用 [22] 。

2. Fortran语言教学中存在的问题

近几年,通过总结在Fortran语言程序设计教学与实践中存在的问题发现,学生在学习Fortran语言程序设计时的目的不明确、针对性不强、兴趣不高,所以教学效果一直不理想。究其原因,主要是大气科学专业的学生在计算机语言学习上缺乏逻辑性的培养与建立,仅通过大一《计算机应用基础》的学习,学生整体得数学建模和模型转换能力不强,缺乏逻辑抽象思维能力,很难直接掌握Fortran程序设计语言抽象的编程语法和相对复杂的数学算法,没有从上机实践和实际应用中享受到Fortran的强大功能所带来的乐趣,受挫感持续增加,成就感越来越低,从而导致学生的学习兴趣大大降低。其次,在学习方法方面还没有从传统的学习模式中彻底转变过来,具体表现为文字记忆的多,实操实练的少,甚至出现对一些命令语句及相关算法死记硬背的现象,不能做到举一反三,活学活用。还有,由于Fortran语言程序设计的教授时间先于其他的专业课,在学生还没有充分了解大气科学专业自身特点的情况下,学生很难认清Fortran语言程序设计课程在大气科学领域的主要用途及重要性,造成了学生在学习该课程时在学习重点的把握上会有偏差,上课只是机械接受老师的授课内容,而没有自主思考如何将所学知识点与本专业实际有效结合起来,限制了学生们的学习热情,阻滞了该课程在大气科学专业上的拓展应用。通过进一步调研发现,大气科学专业学生在进行Fortran语言程序设计学习时出现上述问题主要是由以下5个方面引发的,具体表现为:

(1) 教学课时设计不合理。本课程共48学时,其中包含课堂讲授32学时 + 上机16学时,课堂理论教学时间是上机时间的两倍,从而导致大量本应该通过实践加深理解和记忆的知识点只能通过课堂教学和学生们的死记硬背来完成,教学效果大打折扣,最终造成学生上课能听懂,但到上机编程处理具体问题时却又无从下手的尴尬局面,有些学生上机时甚至出现了畏难及逃避心理,进而对Fortran语言学习失去信心。

(2) 教学方式不科学。现阶段Fortran语言程序设计教学主要以多媒体课堂讲授为主,加之讲授内容较为抽象、枯燥、信息量大,使得本应该通过及时上手实践的知识点只能通过机械式记忆来勉强掌握,不能做到举一反三,活学活用,课堂教学效果一直欠佳。

(3) 理论与实践联系不紧密。课堂理论教学往往被安排在前面,而上机总是在课堂授课全部结束以后才安排实施,理论教学和上机操作在时间安排上明显脱节。学生在课堂学习的知识点不能及时通过上机操作强化记忆和消化,特别是靠前章节的知识点,早已经被淡忘甚至是遗忘。学生在上机编程过程中经常出现死搬硬套例题中的部分语句或者查一条命令、写一条命令的现象,编程效率低下且非常容易出现一些低级或逻辑性的错误,使学生在上机操作中本应获得的成就感大大降低。

(4) 上机内容针对性不够。上机内容整体陈旧,没有聚焦大气科学专业本身。在大气科学专业对应的业务应用及科学研究中,气象数据多是以十进制的站点数据和二进制的格点数据为主,呈现数据庞大,多维数据并存的特点,且大部分物理量均是通过对多个常规气象要素场的调用和计算得出的。而对于类似数据的读取、调用、计算及输出在课堂教学及上机实践中却很少涉及。

(5) 与专业课对接有欠缺。能够对庞大的气象数据进行繁复的计算处理才是大气科学专业学生学习Fortran语言程序设计的根本目的。在学生进行毕业设计等相关科研活动中,如何将数值天气预报模式、统计天气预报与方法、天气气候诊断分析等其他专业课中的相关数学公式转化为Fortran语句,并进行简洁准确有效的表达成为了很多学生科研路上的“拦路虎”。

3. Fortran语言教学方法创新与探讨

根据自身的授课心得,针对上述Fortran语言教学中存在的相关问题,提几点建议,以期为教务部门更加合理的进行教学设计提供参考,同时帮助大气科学专业学生有针对性的、高效的学习Fortran语言相关编程知识。

(1) 增加上机实验,及时温故知新,培养学生的实践能力

常言道“眼过千遍不如手过一遍”,对于计算机编程语言而言,实践性强是其基本特征,在实际授课过程中,老师很难在有限的课时量内,将理论讲授和上机实习做到有效兼顾。针对学生Fortran统一上机时间严重不足这一问题,可以考虑通过设置课外作业的方式解决。课外作业可以从内容设置和考核方式两方面着手,一是针对每一章节的学习重点,老师设置题库,让大家根据自身的实际情况完成一定数量的题目,对于超额完成的情况,可根据超出要求作业量的多少给予一定的考核加分;二是在考核方式上,将学生每一次课外作业的完成情况纳入期末考核成绩,并增加课外作业的考核权重,引导学生加强课外实践。这样在学习时效上可以及时加深学生对课堂内容的理解,提升学生独立分析问题和编程解决问题的能力,在学习重点上逐渐引导学生从传统的以理论学习为主向理论和实践并重倾斜,达到学以致用的目的,也从根本上提升了教学的时空灵活性。

(2) 理论联系实际,丰富教学手段,激发学生的学习兴趣

由于本学科大部分学生计算机基础薄弱,在初次涉及计算机编程时,由于编程的逻辑思维尚未形成,加之理论授课本身枯燥乏味,很容易出现书本看不太懂、上课云里雾里的尴尬局面,从而使学生产生厌学和挫败情绪。此时,老师应及时做好心理疏导,帮助学生树立信心,同时,在授课过程中要加强基本理论知识的教学和注重学生对基础知识的掌握。那么如何使学生更好地掌握基础知识呢?可以根据Fortran语言自身的特点合理安排教学内容。例如顺序结构、选择结构和循环结构为Fortran语言程序中的三大基本结构,选择和循环为难点,授课过程中应该做到条理清晰、重点突出。重视讲解经典的Fortran语言程序设计实例和数学算法,如冒泡排序、闰年计算等编程实例,最好能结合动画等形式让学生先理解编程的逻辑思维,在此基础上,再重点讲解Fortran实现的语法,这样学生就很容易接受编程思维。另外,教师可以有意识地列举一些生活中的例子将程序中抽象的内容具体化、形象化,在加深学生理解记忆的同时,还可以激发学生对Fortran语言的兴趣。例如在交换两个变量(A和B)时,往往需要一个新的中间变量(C)作为辅助变量,代码如下:

if(A>B)then

C=A

A=B

B=C

学生就很不理解,为什么不能直接交换?这时我们可以利用生活中互换装醋瓶子(A)和装酱油瓶子(B)的行为举例,首先要找一个空瓶子(C),把醋倒进空瓶子(C),再把酱油倒进之前装醋的瓶子(A),最后把醋倒进之前装酱油的瓶子(B),这样就顺利完成了醋和酱油的交换,空瓶子(C)作为一个新的变量辅助了这次交换行为,类似于这样的讲解可以让学生从根本上理解和接受变量交换的内涵,提升教学效果,激发学生的学习兴趣。

另外,建议将Fortran语言程序设计的授课地点改在机房,老师可采用编程演示和板书/PPT讲解相结合的方式,培养学生编程的实际操作能力,真正做到边讲边学,边学边练,学练结合,这样既可以调动学生的积极性,还可以就学生出现的各类问题随时给予解答,活跃了课堂氛围,拉近了师生距离,增强了教学效果。

(3) 加强专业对接,促进专业融合,助力学生的长足发展

Fortran语言由于其强大的计算功能,在大气科学专业的日常业务及科研活动中均被广泛应用,其主要用于对常规气象数据的读(提)取、计算及生成与可视化软件相匹配的数据文件,是广大气象工作者绕不开的一门必修课程,所以促进其与大气科学其他相关专业课之间的有效融合显得尤为重要。在教学及上机后期,当学生掌握了Fortran编程的基本框架及命令语句后,教师的教学重点可以放在系统性地讲解Fortran语言在大气科学专业中的应用上来。区域性数据该如何提取,如何批量处理多个站点数据,如何同时调用多个文件数据,一些复杂的物理公式该如何通过Fortran语句实现等常规性应用均应被涉及,着重对一些经典算法和程序进行剖析讲解,对每一条命令语句的作用及在日常编程过程中容易出现的问题进行详细梳理,以点及线再到面,在重温之前所学知识点的基础上,让学生对后期Fortran语言在本专业的应用也有一定程度的认识,不至于到时候无从下手。

4. 结束语

本文在结合大气科学专业自身特点的基础上,通过深入分析Fortran语言程序设计的教学现状,充分厘清了传统教学中存在的短板弱项,并从教学设计、教学方式及专业融合三个方面针对性地提出了相关意见建议。旨在加强学生的上机实践,引导学生将学习重点从传统的以理论学习为主向理论和实践并重转变;激发学生对该课程的学习兴趣,培养学生自主编程的能力;加速相关专业课的有效融合,为以后业务科研工作打下坚实基础,从而真正实现Fortran语言程序设计的教学目标,使其扮演好专业基础课程的角色。教学实践结果表明,上述改革有利于高校大气科学专业人才的高质量培养,这也为高等院校涉及计算机程序设计的其他专业进行类似的教学改革提供借鉴和参考。但本文也存在一定的不足之处,如科学性不够凸显,没有通过教改前后学生学习情况以及教学质量的变化来反映具体的教改效果,希望在后续的研究中进一步弥补完善。

基金项目

成都信息工程大学2023年本科教育教学研究与改革项目暨本科教学工程项目:Fortran语言程序设计线上线下混合式教学模式改革研究(JYJG2023096)。

文章引用

张 莹,胡文东. 基于大气科学的Fortran语言程序设计教学探讨
Discussion on Fortran Language Program Design Based on Atmospheric Science[J]. 创新教育研究, 2023, 11(07): 1745-1749. https://doi.org/10.12677/CES.2023.117260

参考文献

  1. 1. 郭利霞, 曹永潇. 高校Fortran语言程序设计课程教学方法研究[J]. 科技信息, 2012(35): 648.

  2. 2. 田红瑛. Fortran语言在大气科学专业的教学与实践改革探讨[J]. 高等理科教育, 2021(2): 79-82.

  3. 3. 孙奇, 王广飞, 丁亮. 基于Fortran的计算程序开发在节能评估中的应用[J]. 科技视界, 2017(2): 263+168.

  4. 4. 韩轶凡, 于伟威, 韩斯宇, 等. 基于FORTRAN的双色圆偏振激光场光电离的电子涡旋研究[J]. 大学物理实验, 2021, 34(3): 6-9+17.

  5. 5. 张越美, 刘士才. 适应数值计算编程的Fortran程序教学探索[J]. 现代计算机(专业版), 2012(23): 42-44.

  6. 6. 王允辉, 杨志红. Fortran语言用于大学物理教学[J]. 学周刊, 2018, 34(34): 11-12.

  7. 7. 李胜林. “程序设计语言FORTRAN”课程教学探讨[J]. 电脑知识与技术, 2015, 11(10): 126-128.

  8. 8. 马思沅. 循环结构和选择结构的FORTRAN语言和C语言实现[J]. 电脑知识与技术, 2017, 13(23): 233-234.

  9. 9. 郑玉, 万能, 方巍. Fortran教学在气象拔尖创新人才培养中的问题与对策[J]. 课程教育研究, 2015(28): 242-243.

  10. 10. 崔清亮. FORTRAN语言课程教学实践与探析[J]. 山西农业大学学报(自然科学版), 2007, 27(5): 99-101.

  11. 11. 朱孙科, 钟厉. Fortran语言在《流体力学》中的应用研究[J]. 中国科技信息, 2013(15): 102.

  12. 12. 胡文清, 詹杰民. 一种在Fluent UDF中使用IMSL Fortran数值库的方法[J]. 中山大学学报(自然科学版), 2017, 56(3): 31-35.

  13. 13. 张凯华, 郭金运, 胡志博, 等. Fortran与C#混合编程在卫星测高中的应用[J]. 计算机技术与发展, 2014, 24(5): 48-52.

  14. 14. 胡文清, 詹杰民. 一种在Fluent UDF中使用IMSL Fortran数值库的方法[J]. 中山大学学报(自然科学版), 2017, 56(3): 31-35.

  15. 15. 贾继军, 王昌宏, 刘社平. Fortran代码高效重用的一种方法[J]. 电脑编程技巧与维护, 2019(2): 17-19.

  16. 16. 金善来, 王永斌, 刘宏波. 基于VC与Fortran的短波传输性能仿真[J]. 无线电通信技术, 2011, 37(5): 62- 64.

  17. 17. 汪润生. 基于VB和Fortran混合编程的有机半导体双端器件载流子输运特性分析软件研究[D]: [硕士学位论文]. 兰州: 兰州大学, 2010.

  18. 18. 魏霞, 郑胜, 秦雄杰. 基于FORTRAN的项目在系统平台移植时的数据挖掘[J]. 微型电脑应用, 2016, 32(3): 70-72.

  19. 19. 胡文清, 詹杰民. Fortran与VB.NET的混合编程[J]. 中山大学学报(自然科学版), 2017, 56(4): 1-8.

  20. 20. 葛坤朋, 谢基海, 龚育龄, 等. 面向应用型创新人才培养的Fortran语言教学改革实践[J]. 东华理工大学学报(社会科学版), 2020, 39(1): 94-96.

  21. 21. 薛胜军, 耿焕同. Fortran语言程序设计[M]. 北京: 气象出版社, 2009.

  22. 22. 徐炽. 高校Fortran语言程序设计课程教学改革与实践[J]. 课程教育研究, 2015(19): 250-251.

期刊菜单