温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
跨学科
教学
视角
离散
单元
综合
计算机
学科
本科生
编程
计算
能力
培养
第 8 期2023 年 8 月 10 日计 算 机 教 育Computer Education中图分类号:G6426“跨学科教学视角+离散单元法综合实训”的非计算机学科本科生编程计算能力培养梅凡民1,苏 进2,陈金广3,梁晓强1,林 川1(1.西安工程大学 环境与化学工程学院,陕西 西安 710048;2.西安工程大学 理学院,陕西 西安 710048;3.西安工程大学 计算机科学学院,陕西 西安 710048)摘 要:针对省属高校新工科建设由于办学资源等因素制约而不宜套用部属及双一流高校路径的问题,在问卷调查分析理工科本科生计算编程能力状况的基础上,提出微调培养方案,通过增设跨学科综合实训体系推动新工科建设。以融合多学科知识的离散单元法综合实训为例,探讨其对理工科专业的综合性及普适性,介绍构建综合实训的教学框架的方法,并从跨学科知识学习、编程逻辑与方法、心理建设等方面阐述如何培养非计算机学科本科生编程计算能力的多维途径,通过介绍初步实践过程说明教学效果达到预期目标。关键词:新工科;综合实训;学科交叉融合;离散单元法;编程计算文章编号:1672-5913(2023)08-0006-05基金项目:西安工程大学 2021 年本科“课程思政”重点项目“环境生态学(双语课程)”;西安工程大学线下一流课程项目“环境生态学(双语课程)”;陕西省自然科学基础研究项目(2021JM-448)。第一作者简介:梅凡民,男,教授,研究方向为风沙物理学,。1问题的提出为了应对新一轮科技变革、产业革命以及新经济模式对高等教育质量的新需求,有关学 者1-5、教育部6和高等院校7积极地推进新工科建设。与传统的理工科培养体系相比,新工科在教育理念、培养方案、人才培养模式、质量评价等方面具有引领性、交融性、创新性等特征2,是新时代高等教育改革的新趋势,也是一项涉及多维要素的系统工程2,8-9。学科交叉融合是新工科建设的重要目标和特征1-9,对此相关学者分别从课程与实践环节建设的角度10-15以及宏观的专业建设角度16-22对学科交叉融合的途径进行了研究,为高校新工科建设提供了重要的参考。尽管如此,目前的研究忽视了两方面的问题:有关省属理工科高校学科新工科建设的学科交叉融合机制还不清楚。从目前的文献来看,新工科建设主要集中于部属院校和双一流高校,省属工科高校参与度低7,而后者涉及的学生人数和比例远高于前者,其培养质量关乎我国高等教育整体水平,目前的研究很少关注此类高校。新工科建设不仅涉及系统的制度设计2,8-9,还受师资、学科、经费等办学资源因素的限制,因而探索省属高校的新工科建设路径是十分必要的。目前学科交叉融合的研究多侧重多学科视野、兴趣和知识的传授,忽视学生综合运用跨学科知识解决工程问题能力的培养。已实施的跨学科综合实训侧重培养学生的综合设计、加工/装配、性能测试能力,很少关注学生编程计算能力的培养(除计算机及相关学科外10-11,15,21),而后者也属于理工科学生的基本能力(如工程教育认证强调培养学生综合利用数理等学科的理论和方法解决专业问题的基本能力,而此类能力一般与编程计算能力 有关)。人才培养第 8 期7就第 1 个问题而言,微调培养方案构建跨学科综合实训体系对省属理工科高校新工科建设具有可行性,有两方面的理由:由于办学资源的限制,省属高校的新工科建设要小幅度逐步调整以节约成本。各学科内容缺乏深度融合是传统培养方案的主要问题,跨学科综合实训能起到粘合剂的效应。传统培养方案由通识教育(数学、物理、化学、计算机类、工程制图类等课程)与专业教育叠加而成,有广度而缺乏交叉融合。跨学科综合实训不仅具有交叉融合的作用,而且是培养学生跨学科学习能力和解决工程问题能力的主要途径。就第 2 个问题而言,传统培养方案虽然设置了计算机基础、计算机程序设计等相关课程及上机实践,但缺乏旨在培养学生编程计算能力以及利用跨学科知识解决工程问题能力的综合实训。2目前理工科本科生计算编程能力状况以理工科学生自发组织的编程计算学习群中的学生为研究对象,利用问卷调查分析目前理工科本科生计算编程能力的状况。问卷调查涉及学生本科院校的类型、学科类型、自主学习意愿、编程计算能力的获得感、改进编程计算教学的意见等方面。本次调查共收集到有效问卷 199 份。参与问卷调查的学生分别来自 985 高校(30.15%)、211 高校(29.65%)、具有硕士学位点以上的普通本科院校(33.17%)以及其他类型的高校学生(7.04%),所属学科分别为理工、农学、医学等学科。调查样本在院校分布和学科分布上有一定的代表性。用 3 个指标间接地反映目前理工科编程计算能力的状况:自主学习者对编程计算与职业生涯发展重要性的认同程度;自主学习者占本专业学生的比例;自主学习者编程计算能力的自我评价。和指标用学生对编程计算重要性的认可程度以及自主学习的意愿反映当前编程计算教学的影响力;指标反映了学生编程计算能力的获得感。指标表明 77.39%的学生认可编程计算可改变就业渠道,有 22.11%学生认为编程计算在本专业/学科有重要的作用。这些数据表明计算机教学使大多数学生认识到了编程计算在职业生涯发展中具有重要的作用,是学生开展自主学习的重要驱动力。指标表明 24.62%的学生发现自主学习的学生占所在专业学生的比例小于 2%,45.23%学生发现此比例在 2%10%,26.63%学生发现此比例在 10%20%,这意味着具有自主学习意愿的学生比例总体低于 20%。学生不愿意自主学习编程计算的主要原因分别是学生有畏难情绪(64.82%)、无兴趣(42.21%)以及不认可其重要性(21.61%)。无论是学习体验中的畏难情绪还是兴趣不够,均从侧面说明目前编程计算教学的影响力还有改进空间。指标表明参与问卷调查学生的编程计算能力还有很大的改进空间。表 1 表明约 60%的学生虽然获得了编程计算的基础知识和技能但不能实现简单情景的编程,能对简单情景进行编程的学生约占 28%,仅有约 10%学生能对复杂情景进行编程。表 2 表明约 77%的学生认为当前本科计算机课程教学还须改进,其中约 55%的学生认可以具体问题为背景的综合实训来培养编程能力的建议。这也是借助跨学科综合实训改进本科生编程计算能力的重要原因。表 1 参与调查问卷的学生对编程计算能力的自我评价编程能力评价选项人数比例/%具备部分计算编程的基础知识和技能,不能实现简单情景的编程,无编程经验11859.30具备计算编程的基础知识和技能,能对简单情景进行编程实现5527.64具备计算编程的基础知识和技能,能对较为复杂的情景进行编程实现2010.05其他63.0120238计 算 机 教 育Computer Education线上小规模的调查问卷结果与线下观察具有一定相似性。2017 年以来西安工程大学(以下简称我校)连续 5 届环境科学与工程学科的本科生中具备初步编程能力的学生比例低于 2%,环境学科的硕士研究生中愿意学习编程计算的比例不超过 2%(生源主要为其他高校的地球科学、环境、土木、机械等学科的学生,每年约 50 名)。尽管我校生源和教学资源与 985 和 211 院校相比存在一定的差距,但反映出的本科生编程计算意愿和能力状况仍有一定的普遍性。3离散单元法综合实训对理工科专业的普适性散体颗粒广泛地存在于自然界及以能源、化工、制药等领域。离散单元法是用来模拟散体颗粒之间碰撞及堆积过程的重要算法23,在相关领域得到广泛应用23-26。离散单元法综合实训融合了线性代数、大学物理、编程计算等跨学科的知识和技能,适用于各专业:编程计算所需的牛顿定律、库仑定律、角动量定理、简谐振动模型、矢量运算、刚体碰撞、受力分析等力学知识均来自大学物理与线性代数的教学内容;编程过程中涉及的变量定义、逻辑结构、语法等均来自线性代数、计算机程序设计等课程的基本内容;综合实训的应用情景可以根据专业特点来设置。4离散单元法综合实训的教学框架构建建议综合实训安排在第 5 学期初(学生已修完先修课程),建议学时为10周,每周为2课时。10周的持续时间让学生充分地探索、试错,并通过指导教师的启发与鼓励,自己的动手实践与反思等过程来强化能力养成的心理印迹。时间安排如下:第 1 周讲解训练项目的背景、算法逻辑及基本框架、编程平台语法及结构等内容;第 27 周为编程阶段,涵盖问题讲解、代码调试及优化等;第 810 周为项目讲评与分析,总结编程计算的基本方法、技能及出错原因,指导学生完成实习报告。综合实训的教学内容如图 1 所示,为指导训练的主要知识点和技能要点。在教师指导下,学生通过理解背景知识复习基础知识思考动手出错调试运行总结等诸多环节理解编程的思路、框架、编程计算逻辑及语法特征。初学者对变量定义、向量、矩阵运算等概念的运用最易出错,这是由于以往培养方案中未涉及学科知识融合背景下的编程计算问题。例如,大学物理学课程中涉及的向量概念与线性代数和编程计算语境下的内涵存在一定的差异,而此差异在以前相关教学中很少涉及。具体来说,在线性代数语境下向量被定义为有序数组,如一组颗粒的质量就是向量,这与传统大学物理中质量属于标量完全不同。在编程语境下标量就是不变或变化的数值,它既可能是在物理意义上真正的标量或常数,又可以是在物理意义上或编程语境下为向量但为了简化计算而处理成标量形式的向量,如离散单元法计算中对具有向量性质的中间变量可作标量性质的处理。这些新认识是以前单纯的数学、物理及计算机课程学习中难以理解和体会的。综合实训有助于学生理解编程计算的逻辑,编程计算的逻辑是将实际问题抽象为数学语言表 2 参与调查问卷的学生对本科计算机类课程教学的建议建议选项(多选)人数比例/%教学设计满足编程能力的培养,无建议4723.62增加理论教学内容补充基本知识6130.65增加上机时间和内容来培养编程能力10150.75以某具体实际问题为背景,增加综合实训来培养编程的实际能力11055.28其他94.52人才培养第 8 期9(即数学建模,本科阶段主要是学会理解、选择数学模型与设置相应的参数,涉及力学过程的理解、数学模型的理解、模型选择等方面)、数学语言转化为编程语言、数学逻辑转化为编程逻辑,称作三重转化逻辑;也有助于通过教师的启发、鼓励来培养学生的兴趣、信心及成就感,进而从逻辑及心理建设角度提升本科生的编程计算能力。5离散单元法综合实训的教学实践及效果对研究小组的 6 名本科生按照图 1 框架进行训练,10 周训练中学生的学习状态经历了 5 阶段变化:指导教师对背景知识和方法讲解之后,学生处于茫然无措状态,对编程无信心。在教师鼓励与示范下(展示部分代码并进行讲解)初步理解运用三重转化逻辑来构建编程框架的方法。在试错过程中初步掌握分模块编写代码的方法,包括变量初始化、变量表达(模拟颗粒间作用力与颗粒运动状态参数迭代循环过程)、结果输出等。此阶段遇到的主要问题是不能正确地理解与表征变量,易在向量积和数量积定义及表征变量时出错。在试错过程中,初步掌握识别代码中的逻辑和语法错误的基本方法。代码实现后通过反思能深入地理解离散元编程的逻辑、知识及技能并进而领悟编程的基本方法(1 个学生可达到此目标)。经训练 3 名本科生能利用离散单元算法模拟风沙颗粒碰撞过程27-29,2 名学生能用综合实训获得的编程方法开展图像处理算法研究30-31,1 名学生能把离散单元算法拓展到雨滴溅蚀领 域32,这意味着综合实训能让非计算机专业学生学会编程计算的基本逻辑、方法并利用掌握的编程逻辑和方法解决其他工程领域的编程 问题。总之,综合实训不仅能够帮助非计算机专业图 1 离散单元法综合实训的教学框架离散单元法原理及建模思想编程初始化、相关物理量的定义,正确区分变量的属性 相关物理量(位置、颗粒半径、质量、叠加量、线速度及相对线速度、角速度、力矩、加速度、法向力、切向力、单位法向量、单位切向量)的数学表达及代码实现 用顺序结构、循环结构和选择结构搭建代码 代码调试、分析及讲评 代码优化:引进定义函数;中间变量按常量处理 输出结果并撰写实习报告 简谐振动模型的