在大学通识教育中面向实践的科学和工程教育探索

2019-10-23 05:15杨晓春
计算机教育 2019年10期
关键词:领域科学工程

杨晓春,张 锦

(1.上海成趣信息科技有限公司,上海 200001;2.湖南师范大学 信息科学与工程学院,湖南长沙 410081)

0 引 言

大学科学和工程教育的一个目的是培养学生科学思维和工程思维[1—2]。随着当今科学和技术的快速发展,工程、技术和科学应用越来越紧密地结合,高校教师在某种程度上难以提供相应的实践课程以发展学生的科学思维和工程思维能力。本文提出,高校教师可以与具备正确教育理念和教育方法的业界专业人士协作,共同开发科学和工程课程和实践活动。本文将介绍在计算领域培养科学思维和工程思维的相关课程的实践情况,针对智能类专业提出相应的培养建议。

1 科学思维和工程思维在大学理工科通识教育的基础作用

科学思维的通用认知过程涉及归纳、演绎、类比、问题解决和因果推理,人类也将其应用于非科学领域[1]。工程师使“事物”(更好地)发挥作用,通常采用六种思考和行动方式[2]3,第一,系统思考;第二,适应;第三,发现问题;第四,创造性地解决问题;第五,可视化;第六,改进。

科学思维和工程思维有相同性也有不同性。科学思维和工程思维在大学阶段的培养可以通过科学和工程核心概念以及科学和工程实践活动来进行。本文着重从科学和工程实践活动来阐述如何培养两种思维能力。

1.1 科学思维和工程思维的实践活动

科学家和工程师的工作领域(图1)涉及的过程较为相似,均包括三个活动领域:①调查和实证调查;②模型的构建(如科学概念/理论或工程设计)使用推理和创造性思维;③评估模型的有效性(对科学而言)或适应性/有用性(对工程而言)[3]44。

图1 科学家和工程师的三个活动领域

具体说来,包括以下步骤[3]42:①提出问题(对于科学而言)和定义问题(对于工程而言);②开发和使用模型;③计划和执行调查;④分析和解释数据;⑤使用数学和计算思维;⑥构建解释(对于科学而言)和设计解决(对于工程而言)方案;⑦参与论证;⑧获取、评估和交流信息。

从以上步骤可以看出,除了第①和第⑥步之外,其他基本相同。特别地,两者都包括模型的构建以及使用模拟工具来测试科学理论和预测工程设计的结果。工程和科学都涉及创造性过程,并且都不仅使用一种方法。与科学研究一样,工程设计既是迭代的,也是系统的,因为每个新版本的设计都会根据到目前为止所学到的内容进行测试和修改。同时,工程设计必须系统性地采取一些有特色的步骤:①确定问题并定义规范和约束;②为如何解决问题提出想法,工程师经常使用研究和小组会议提出一系列解决方案和设计备选方案,以便进一步开发;③构建模型和原型来测试潜在的解决方案,从中获得有价值的数据。工程师通过数据可以分析各种解决方案,进行评估和改进设计。相比之下,某些类型的科学研究是为了实际目的而进行的,并产生了重要的新技术;还有许多科学研究则是出于好奇心而进行的,目的是回答关于世界的问题或理解观察到的模式[3]46-48。在大学通识教育的过程中,鉴于科学实践和工程实践两者的相似性,本文并未严格区分两者的不同,而是将两者结合起来共同实践。

1.2 从认知科学角度看科学思维和工程思维的核心概念

1.2.1 认知科学贯穿到科学领域的过程

历史上,科学思维被称为科学探究中涉及的思维过程。Osman Yasar 提到科学思维涉及认知科学的内容以及一系列贯穿科学领域的过程,图2 列出了科学思维中涉及的认知过程[4]。

1.2.2 工程的核心概念

工程的核心概念包括工程设计以及工程、技术、科学和社会之间的联系[3]201-212。技术是对满足人类需求或欲望的自然世界的任何修改。工程是用一种系统的、迭代的方法来设计对象、过程和系统,以满足人类的需求。科学的应用是将科学知识用于特定目的,决定是否要做更多的科学研究,决定是否设计产品、工艺或一些方法,决定是否研发新技术,或者是否预测人类行为的影响。

工程设计包括理解如何定义和划分工程问题,如何使用模型来开发和改进设计问题的可能解决方案,以及可以采用哪些方法来优化设计。

基于科学或科学改进的技术和系统设计影响人们彼此之间以及与环境相互作用的方式,因此这些设计深刻地影响着社会。同时,社会影响科学和工程。社会决策可能由各种经济、政治和文化因素决定,为技术的改进或替代确立目标和根据优先权确定完成的事项。平衡技术的成本、收益和风险是理解工程、技术、科学和社会之间的关键要素。

科学和工程领域是相互支持的。科学家和工程师经常在团队中一起工作,这种现象在计算和人工智能等领域特别普遍,这些领域模糊了科学与工程之间的界限。

1.3 在通识教育中引入科学和工程实践的基本方法和原则

图2 认知科学贯穿科学领域的过程

本文以计算类专业为例,解释科学和工程实践活动的基本方法和原则。在计算类专业引入科学和工程实践的基本方法包括基于问题、项目和实践的学习方法,启发式教学,互动式学习,等等。参考国际电气和电子工程师协会(IEEE)和美国计算机学会(ACM)联合发布的软件工程本科学位课程指南SE2014,课程设计的原则重点包括以下内容[5]。

(1)课程设计者和导师必须具备足够的相关知识和经验,并理解软件工程的特点;

(2)许多软件工程概念、原则和问题应作为整个课程的主题来教授,以帮助学生培养软件工程思维;

(3)软件工程必须以计算和工程两种学科的方式进行教学;

(4)软件工程教育需要超越讲座形式,并考虑各种教学方法;

(5)通过设计课程可以实现效率和协同效应,使学生可以同时学习多种类型的知识;

(6)为确保学生掌握某些重要思想,必须注意通过使用有趣、具体和令人信服的例子来激励学生;

(7)课程必须定期审查和更新。

2 科学思维和工程思维在通识教育中的课程设计及评价方法

笔者依据工程认证教育标准的毕业要求[6],设计培养科学思维和工程思维的相关课程。表1解释了工程认证12 条毕业要求包含的对应科学和工程实践活动的内容。

从表1 可以看出,积极开展科学和工程实践活动对满足工程认证教育标准的毕业要求很有帮助意义。

2.1 结合工程认证教育标准毕业要求设计培养工程思维和科学思维的课程及实践活动

结合工程认证要求,工业界专业人士可以从以下角度,在通识课程中为大一大二的学生提供以下的课程和方法论支持。以目前在本文作者所在的学校开发的课程为例,表2 展示了工程认证教育标准毕业要求与科学和工程实践课程的关系。大部分课程都涵盖了毕业要求的12条内容。

在设计工程认证教育标准毕业要求的第八条职业规范的相关课程时,可以结合工业界案例,也可参考美国计算机学会计算机协会道德与职业行为准则[7],准则大纲包括一般道德原则、职业责任、专业领导原则等。

2.2 部分课程的目标、内容及考核方式

2.2.1 计算如何影响和帮助我们

本课程目标是帮助各个专业背景的大学生理解和运用计算领域的思维和方法。

课程内容包括:计算领域的核心概念和核心思维;如何用计算领域的思想和方法解决身边的问题;计算领域工作者的个性魅力;计算不能做什么?

表1 工程认证毕业要求与科学和工程实践活动的对应关系

表2 工程认证教育标准毕业要求与科学和工程实践课程的关系

课程考核方式:写报告考核学生对计算思维的理解。要求学生针对报告内容,结合自己的情况,描述自己对计算的认识、疑问以及未来的行动计划。根据报告的完整性、清晰度和准确性确定评分。

2.2.2 如何成为一个真正的计算领域工作者

本课程目标引导大学生思考如何成为一个真正的计算领域工作者,了解计算领域工作者的思维特点,了解软件工程宣言和美国计算机学会倡导的职业道德和专业规范,思考工程师文化,鼓励大学生未来在计算领域作出自己的贡献。推荐观看《操作系统革命》纪录片和《硅谷》等影视剧,了解Linux、开源运动和黑客如何打破垄断,促进软件开发发展,创造财富神话的故事和现实,也了解计算领域创业公司发展的故事。

2.2.3 代码阅读与代码质量保障

本课程目标是帮助同学掌握良好的代码阅读能力,懂得欣赏代码的优雅之美,并在开发过程中实践写出良好代码的方法。

课程形式是老师分享讲解及引导同学分析自己的代码,同学参与讨论并作相应总结。

课程包括:为什么以及如何阅读代码?好代码的特点是什么?阅读代码的基础,等等。

此课程除在笔者所在学院为研究生一年级和大学一年级同学讲授,还在武汉大学遥感信息工程学院和上海电力大学计算机学院为各年级学生作了讲座。课程无强制的考核形式,通过与学生的讨论交流,达到启发学生思考和反思的效果。在课程运行中,对于没有软件开发项目经验的学生,笔者会询问学生在阅读代码中遇到的问题并提出相应的建议和阅读方法,同时推荐优质代码资源,帮助学生总结常见代码错误。

2.2.4 从点子到产品工作坊

此课程为综合性实践课程,集中实践敏捷开发、项目管理和计算类产品开发方法。课程通过概念解释、案例说明以及实际操作介绍从产品设计到工程实践的理念、体系、流程、方法和平台,讲述实战方法和技巧,以帮助学生完成以下目标。

(1)掌握产品设计和开发的知识和方法;

(2)熟悉项目管理知识体系以及项目管理的基本方法;

(3)掌握沟通管理和风险管理的主要内容、分析工具;

(4)熟悉敏捷开发的职能分配、具体活动和产出成果;

(5)应用敏捷开发方法完成一次软件开发迭代活动;

(6)掌握软件开发的设计、编码和测试流程,利用团队协作工具和知识技能完成软件作品;

(7)掌握软件开发中获取工具和知识、建立自己知识库的基本方法。

课程形式采用教师讲解示范、与学生互动和学生小组练习相结合的形式。将小组练习有机地穿插在重要课题讲解后,便于学生学以致用。

课程考核方式采用课堂问答小测验和项目汇报方式。项目汇报方式包括用幻灯片展示软件产品介绍、展示作品功能和回答教师提问。

此课程于2019 年在陆军工程大学开设,获得学员对学习内容、讲授方式和练习方式的较好的反馈。学员通过课程也了解了未来在软件开发、产品设计、项目管理和敏捷开发中需要掌握的知识和技能。

3 科学和工程思维在智能类专业通识教育中的课程设计

3.1 用数学将科学和工程相结合

人工智能的研究,在研究方法上,存在不确定性和可变性,研究过程迭代,类似于实验科学[8],强调懂算法和对数学的实践。在智能类专业的教学中,强调数学和计算工具,并教会学生用数学将科学和工程相结合。数学和计算工具是科学和工程的核心。数学能够以精确的形式表达思想,并能够识别关于物理世界的新思想。计算工具是表示数据的有效工具,它们可以显示计算或模拟的结果。工程也涉及数学和计算技能。尽管数学和计算思维在科学和工程学中的应用存在差异,但数学通常将这两个领域结合在一起。因此,在教学过程中,强调科学和工程的结合,否则一些复杂模型可能无法建立起来[3]64-65。

3.2 课程案例:数学在机器学习中的作用与意义

此课程的目标是理解线性代数、概率论与统计学、微积分与数值计算在机器学习中的作用与意义,为机器学习的研究和应用打好扎实的基础。此课程主要通过分析回顾总结数学的应用意义,启发学生思考及进一步阅读反思,没有强制性的考核。

课程包括:机器学习的产生;数学在机器学习的作用和意义;线性代数的线性空间理论和矩阵分析理论的应用;机器学习的不确定性和概率论的联系;推理式统计的作用;偏差和方差在机器学习评价中的作用;微分学、积分学的应用意义;数值计算在优化问题中的应用。

4 结 语

基于公认的科学和工程实践方法、我国工程认证教育标准的毕业要求以及软件工程本科学位课程指南SE2014,笔者设计并实践了在大学通识教育中面向实践的科学和工程教育的课程,接下来会对学生理论课考试成绩、学习习惯和工程实现成绩进行分析,研究其相关性,并且将结合大学生的发展情况以及具体的课程反馈,对课程进行修改和迭代,进一步帮助大学生在科学研究和工程实践中打下良好的基础。

猜你喜欢
领域科学工程
《计算机辅助工程》征稿启事
电子战领域的争锋
将现代科技应用于Hi-Fi领域 Perlisten S7tse
2020 IT领域大事记
点击科学
领域·对峙
科学大爆炸
子午工程
工程
科学拔牙