《化工数值计算》课程教学设计与改革
2020-06-07李杰森刘晓莉林洁丽
李杰森 刘晓莉 林洁丽 吴 臣 许 锋 陈 忻 曾 飞
(1. 佛山科学技术学院环境与化学工程学院,广东 佛山 528000;2. 佛山科学技术学院数学与大数据学院,广东 佛山 528000;3. 佛山科学技术学院电子信息工程学院,广东 佛山 528000;4. 瀚蓝环境股份有限公司,广东 佛山 528200)
1 引言
自然科学和工程技术的发展,都离不开数学。科学问题及工程问题,通常都需要数学来解决。随着社会发展,新的工程应用与实践具有相当的复杂性,其背后的数学问题,难以通过简单的解析计算或者小规模的数值方法得以解决,往往需要借助计算机。计算机硬件,以及算法的迅速发展,在很大程度上推动了工程应用的发展。《化工数值计算》这门课,正是需要向学生传授这一思想,并有意识地利用工程数值计算的方法来解决化工生产中的实际问题。与数学专业开设的《数值计算》或《数值分析》课程相比,它更关注实际应用,着重数学与化工生产实际的结合。
在新工科背景下,在教授学生一定数学原理以及计算机技术之外,更应该培养学生的工程意识,提高其分析问题和使用数学工具的能力,锻炼其以计算机手段解决问题的能力,同时也要调动学生学习的积极性。这样,才能使《化工数值计算》课程的教学与实际应用紧密结合。
本文结合《化工数值计算》课程的特点,结合佛山科学技术学院化学工程与工艺专业(下称佛大化工专业)的教学实践,提出在教学方法、内容设置、考核方式等方面进行的创新。
2 《化工数值计算》课程的分析
《数值计算》(有些院校取名《数值分析》、《数值方法》或其他相近的名称)是数学类专业一门重要的专业课程。纵观大部分院校数学专业开设的《数值计算》课程,都有着以下两个特点:
(1) 偏重理论,对于相关理论,讲得较为详尽,都有较为详细的推导过程;各种算法都有相应的计算公式及误差公式,定义抽象、证明和推导过程都极其复杂;
(2) 上机操作的内容都只是为了解决某个数学问题,例如用数值方法计算某个定积分,或求解某个微分方程等,而没有与具体的应用结合。
《化工数值计算》课程的主要内容与《数值计算》课程大致相同,但区别比较明显。主要区别如下:
(1) 侧重点有所不同。《化工数值计算》课程相比之下更加侧重实际应用,因此不像数学类专业的《数值计算》课程,相关理论的讲解及推导相应地减小,更重侧重化工生产实际中的数学模型的求解。
(2) 在教学目的方面,《数值计算》课程是为了锻炼学生求解数学问题的能力,而《化工数值计算》课程则为了锻炼学生分析和解决生产实际问题的能力。
因此,《化工数值计算》课程的教学,不能够照搬《数值计算》课程,而是把《数值计算》课程中对基本数学知识及实践技能与为化工生产实际相结合,在此基础上继承和发展,从而形成《化工数值计算》课程独有的,适合化工专业人才培养目标的教学体系。
3 教学设计与改革
根据以上分析,对《化工数值计算》课程的教学,需要与学科建设、生产过程、以及实际应用等方面相结合。因此,在教学设计方面,不能够把《化工数值计算》课程当作纯数学类课程,更不能够过分强调数学学科的严谨性、系统性、完整性,而是要根据这门课程所具有的实用性来精选教学内容、变革教学方式和手段、以及优化考核方式。
3.1 精选教学内容
2017年以前佛大化工专业并没有开设《化工数值计算》课程。学校于2017年组织修订了人才培养计划和教学大纲,并对人才培养规格的提出新要求。其中有两个指标点如下:
“指标点 2-4. 能够从数学与自然科学的角度对解决方案进行分析,并试图改进。”
“指标点 5-2. 能够初步运用现代信息技术工具对化工问题进行预测与模拟,并了解其局限性。”
为适应新工科背景下化工专业教育的形势,并满足对人才培养规格的新要求,佛大化工专业新增了《化工数值计算》课程,并制定了相应的教学大纲。课程一共32学时,其中16学时为理论课的讲授,16学时为上机实验。每周4学时,其中理论课与上机课各2学时。每周课程内容如表1所示。其理论课与数学类专业《数值计算》课程的内容相似,但在课程讲授中会在不影响后面内容理解的前提下,适当略过抽象晦涩的理论。同时也不能照搬数学类专业《数值计算》课程的教学模式,要在相应内容中加入与化工生产实际紧密联系的案例,更多的时间用于结合计算机技术,演示相关算法在MATLAB中的实现,包括代码示例与分析。在上机的教学环节中,会给学生提出一个化工生产实际中遇到的问题,要求学生用刚学到的数值方法在该问题,老师也会进行指导。通过理论讲授和上机操作的结合,力求以问题驱动教学,以本学科实际情景为出发点,引导学生进行有目的的思考,并在教师指导下分析化工实际问题,提出解决方案,通过借助计算机工具来编写代码解决实际问题。
表1 《化工数值计算》课程的授课内容及安排
3.2 变革教学方式和手段
由于专业课程设置的原因,佛大化工专业学生普遍数学功底不太扎实,计算机应用能力也较为欠缺,由此对《化工数值计算》课程教学的开展来两方面的问题:
(1) 课程中枯燥乏味、错综复杂的数学公式及其推导,会把学生吓倒,特别是第一次课,过多的数学内容会让学生产生畏惧心理,产生对课程的排斥情绪,甚至厌学。
(2) 学生不熟悉程序设计的基本思想,缺乏基本动手能力,对于代码检查排错也是无从下手,因此他们不能熟练运用计算机处理实际问题,更不会通过计算机编程来解决实际问题。
这些问题会给学生带来较大的困难,对授课老师来说更是个很大的挑战。针对这些问题,我们提出了如下解决方法。
针对第一个问题,如上所述,《化工数值计算》课程应当弱化数学理论教学,强化算法应用,强调数学与计算机的工具性,坚持以生产实践为导向。在第一次课,就要给学生介绍数值计算在化工生产中的应用,特别是学生在本专业课程的学习中会遇到的问题。例如,《化工热力学》中遇到的立方型状态方程的求解,《化工原理》中对流传热系数的计算,《物理化学》中反应动力学参数的确定,以及《物理化学》和《化工热力学》都会涉及相平衡的计算。这些问题能够给学生设置一个场景和明确的目标,就是要解决这些实际问题;而解决这些实际问题需要用到一定的数学工具,并且把这些手段通过计算机编程来实现。相比一开始就展现一大堆数学原理,这样的课程导入符合《化工数值计算》课程的特点,也一定程度上避免学生畏惧心理。
在讲授各部分内容时,在不影响课程连贯性的前提下,适当省略一些数学理论,尤其是过于复杂的部分,仅简单介绍数学基础,把更多的时间用于讲解算法的应用。同时列出参考书目或相关资料,让有兴趣且学有余力的同学可以深入了解。例如,数学类专业《数值计算》课程在讲解非线性代数方程的数值解时,会先讲述迭代法的基本思想,接着讨论迭代收敛性以及误差限,然后再讲述常用的一种数值方法——Newton-Raphson迭代,并推导其迭代公式,即
其中xn为输入值,xn+1为输出值,当|xn-xn+1|小于给定误差时认为迭代收敛。在《化工数值计算》课程则直接进入主题。由于Newton-Raphson迭代的推导只需要一元微分学及平面解析几何的简单知识,在课上也可考虑把上述公式推导出来。但是,更重要的就是要给学生讲解这个迭代公式的应用。
针对第二个问题,首先要选用门槛较低,较容易上手的编程语言。MATLAB具有用法简单、灵活、结构性强、延展性好等优点,学生容易快速掌握基本的语法。同时,MATLAB有着较多内置函数,能够把常用的算法通过简单的函数命令来实现,与本课程要弱化数学理论的宗旨相一致。相比之下,C语言、Fortran语言等用法较为复杂,没有内置函数,也难以很快上手。虽然,通过LAPACK等库能够实现部分与MATLAB内置函数相类似的功能,但这些库的安装较为复杂,可靠性不好,且在主流Windows操作系统中难以兼容。综合这些因素,《化工数值计算》课程选用了MATLAB作为编程语言。
此外,Python语言也有着一定优势,例如用法也较为简单,灵活,通过NumPy,matplotlib等第三方库也能实现MATLAB的大部分主要功能。因此,Python也是个不错的选择。但目前佛大化工专业开设《化工数值计算》课程的时间不长,而课程的建设还需要一定积累,因此还不能同时兼顾Python。在以后的教学中,将逐步实现MATLAB与Python同时并时,在课上同时讲授两种语言,学生可以在两种语言中自由选择。
其次,在理论课程中,要详细讲解MATLAB的基本操作,并作必要的演示。在第一次理论课的时候,就重点明确程序设计的基本思想,讲解MATLAB的操作,并给学生演示较为常见的程序结构的实现,例如分支判断,for循环与while循环,子函数及调用,m文件的编写,等等,并且在上机实践课让学生上机操作,熟悉MATLAB的使用,为后续的内容打下基础。在后面的课程中,需要还需要巩固加强MATLAB的操作技能。
(a)
(b)
3.3 优化考核方式
数学类《数值计算》课程普遍会通过定时闭卷书面考试的形式,对学生的基础理论、基本方法的掌握,也可能同时结合上机操作。书面作答的考试形式可能会引起学生机械式的死记硬背,而缺乏算法的理解以及应用能力。而《化工数值计算》课程需要弱化数学理论的要求,侧重实际操作,因此佛大化工专业《化工数值计算》课程按实际情况,通过上机操作进行考核,并包括平时上机实验与期末上机考核。其中上机考核成绩占40%,平时成绩占60%。优化后的考核方式能够强化课程内容的应用价值,更能客观科学地考查学生的实际应用能力,更能符合化工专业的学科特点以及学生的学情。
(1) 平时成绩。平时成绩以平时上机表现及实验报告的完成情况来综合评定;学生需在老师面前展示代码及运行结果,并回答相关问题。上机表现包括上机过程与同学和老师的讨论,程序运行情况,以及对老师提问的问答。实验报告要根据当次上机的内容撰写,内容包括五部分:实验目的、实验原理、实验环境(计算机硬件和软件系统)、实验过程与结果、讨论分析及感想。同时要求学生把源代码也要提交给任课老师查阅,防止编造实验结果的情况出现。为了突出对学生分析问题及实际操作的能力的考查,实验报告中“实验过程与结果”、“讨论分析及感想”这两部分为重点考查的内容,模板如图2所示。
图2 实验报告模板
(2) 期末上机考核成绩。期末上机考核是在机房随堂进行,每人一台电脑终端,可上网查阅资料,也可以带其他纸质版或者电子版资料,但相互之间不可交流,老师也不会进行指导,所有工作必须独立完成。教师根据课程讲授的内容,选择与化工生产实际相关的实验题,尽可能多地覆盖课程所涉及的重要算法。学生需要当场进行程序设计,解决考题中提出的问题,并当场完成实验报告,实验报告要求与平时一样。学生完成上机考核内容后,要求学生当场演示程序运行的结果,并就运行结果回答相关问题。教师根据实验报告及表现给学生评定上机考核成绩。
4 结语
《化工数值计算》课程,不仅具有很强的理论性,而且具有明显的实用性,并与化工生产实际紧密联系,具有显著的代表性。本文以佛大化工专业《化工数值计算》为例,结合的相应的化工专业学科特点,给出了本课程建设与改革的一些建议。通过课程的开设,希望能够培养学生理论联系实际的优秀品质,提高分析及解决问题的工程素质。同时也希望本文能够给《化工数值计算》课程的一线教师们带来一定的启发和参考。