75
计算机教育
Computer Education
第 2 期2021 年 2 月 10 日
中图分类号:G642
文章编号:1672-5913(2021)02-0075-05基金项目:山东大学教育教学改革研究项目“人工智能教学实践一体化平台建设研究与探索”(2019Y118)。
作者简介:李晓磊,男,副教授,研究方向为人工智能与大数据,*************;张伟(通信作者),男,教授,研究方向为人工智能、模式识别,******************。
0 引 言
自21世纪以来,随着人类社会的发展,新的科技革命已然开始,尤其以人工智能和大数据等为代表的技术爆发,引燃了从理论知识到相关产业的一系列增长点,使得我国在近代科技落后的情况下,有机会同
世界强国站在新的起跑线上,奋起直追,实现中华民族的伟大复兴。为主动应对这一轮新的科技和产业革命,教育部于2017年积极推进新工科建设,全力探索形成领跑全球工程教育的中国模式、中国经验,助力高等教育强国建设[1]
。
新工科的建设需要从两方面来考虑,即高校方面和社会方面。在高校方面,新工科促进和提升了一些顺应新时代的新兴专业(如人工智能、机器人、大数据、云计算等)与传统工科专业(如计算机科学、自动化、统计科学等)的交叉升级改造,以跟踪最新的理论与应用模式,提高教学质量,打造优质的教育体系和教学平台。在社会方面,新工科的培养目标需与产业发展的需求相适应,以保证产业发展对相应人才的需求。产业
新工科人工智能相关专业程序设计
课程体系设置探讨
李晓磊1,张 伟1,刘 磊2,计湘婷2
(1.山东大学 控制科学与工程学院,山东 济南 250061;2.百度在线网络技术(北京)有限公司,北京 100085)
摘 要:针对程序设计能力的评价提出基于技能、算法和知识的三维模型,确定以各个维度上的全面发展作为当代新工科学生的培养目标,参照麻省理工学院相关专业的程序设计课程体系,对比分析山东大学“人工智能与机器人”新工科实验班程序设计相关课程的设置,指出高校需结合本国的产业发展同时对接国际前沿,以培养高质量新工科专业人才。关键词:新工科;人工智能与机器人;程序设计;课程体系
对于技术落地的刚性需求,使得良好的程序设计能力成为新工科人才必不可少的能力和素质[2-3]。目前,高校对于程序设计能力的培养重心多在编程语言的掌握和运用水平的提高上,对教学方法、评价体系等也做了不少的研究工作和实施措施
[4-6]
。但从整个大学阶段的教育来看,这些举
措并不全面。高端人才不是单纯的程序员,还需具备高层次的架构和算法设计能力[7]。因此,本文提出了一种程序设计能力的三维评价模型,确立相关培养方案的评价标准,有助于教学体系的评估和改进。
1 程序设计能力三维评价模型
程序设计是解决特定问题的过程,是基于数学、物理和相关专业领域的知识,组织思维形成解题的步骤。问题的解决需借助计算机实施,因而这些解题步骤需要从计算机执行的角度来组织。虽然程序设计的执行结果目标一致,但由于程序设计具有极大的自由创作空间,因此形成的过程往往因人而异,存在很大的差别,这也
2021
76
计算机教育
Computer Education
决定了程序设计质量的差异。随着计算机技术的发展,评价程序设计质量的标准也有所变化。例如,在计算机发展早期,机器的内存和CPU 资源较为昂贵,程序设计的质量评价多以程序执行时间和对存储空间的极小化需求为主要指标;随着计算机硬件条件的飞速发展,程序设计的质量评价越来越多地考虑程序的框架结构、可维护性和可扩展性等高层次的概念因素,这也促进了软件在社区共享和快速开发方面的发展。
从高校人才培养的角度分析,程序设计能力是编程技能、专业知识和算法设计等多方面能力的综合表
现,可以使用图1所示的三维模型来表示。
(4)开发框架的变迁:早期的程序以单线程、单应用为主,后期的应用需要协调数据、网络、计算等资源的统一运行,出现了MFC 、QT 、MVC 等开发框架和模式。
知识维度主要是对专业知识掌握的能力。作为工科专业的大学生,数学和物理知识是对现实世界分析和建模的基础,通常在大学一年级和二年级的学习中完成。在大学高年级阶段,着重学习专门的专业知识,致力于发展成为本领域的高精尖人才。只有掌握相关的专业知识,才能使得程序设计具备更高的应用价值。
算法维度侧重于程序的架构形式,主要体现在所开发软件的运行效率、可扩展性和可维护性。近年来,由于大数据、深度学习和人工智能方面的应用需要消耗极高的计算资源,一方面催生了集计算、多核计算等高性能计算硬件系统,同时也出现了相应的Hadoop 、Spark 、
TensorFlow 、PyTorch 等高效计算平台和框架。其中,较为明显的算法变迁即包含从单一的数值计算到图计算的扩展等算法模式。
由以上三个维度的分析可以看出,新工科高等教育的目的是要培养在这三个维度上都达到足够高度的全面人才,而不是仅仅具备高级程序员素质的“码农”。
2 结合麻省理工学院相关专业的实例分析
自动化专业是我国的一个宽口径特专业,国际上相对应的专业有电气工程(EE )、计算机科学(CS )等。众所周知,麻省理工学院(MIT)是工科领域的翘楚,笔者以2020年麻省理工学院电气工程与计算机科学(EECS)系的课程设置为例,结合前文提出的程序设计能力三维评价模型进行具体分析。
图2是MIT EECS 本科课程中程序设计相关的课程设置体系[8]。其课程分为基础必修课、Level1必修课、Level2必修课,以及相应的高级课程和高级实验课程,具有良好的层次和衔接。大学阶段的第一个学期,安排了Python 语言的学习。近年来,Python 语言因其简单、优雅的编程风格,伴随着机器学习、深度学习等的发展得到了广泛的应用。实质上,Python 不仅支持简单
技能
知识
算法
基础编程 数据结构
面向对象编程
基础算法
集计算算法
多核计算算法 数学 物理 专业
图1 程序设计能力三维评价模型
技能维度主要涉及编程基础、数据结构、面向对象编程等程序设计能力,这也是目前普遍认为的程序设计课程的主要授课目标。在历史上形成的教学体系中,早期以Basic 语言课程到C 程序设计课程为主,后来演变为“大学计算机”到“C 程序设计”为主,再后来发展为“C 程序设计”“Java 语言”或“Python 语言”到“面向对象的程序设计”,这些都是在适应计算机技术的发展和社会对人才的需求,具体体现在以下几个方面的变迁。
(1)目标代码平台的变迁:从以PC 为主的32位、64位的应用,到目前扩展到Linux 、Mac OS 以及Android 等平台,甚至包括一些专用的嵌入式系统平台的应用。
(2)编程环境的变迁:从命令行窗口模式到图形化集成开发环境,发展为现在面向专用平台的交叉编译开发模式。
(3)应用形式的变迁:早期的程序设计以面向计算应用为主,后期的应用类型逐渐多样化,如数据库应用、多媒体应用、网络应用等。
第 2 期
77
人工智能教学专栏
的脚本式编程,也是一门完全面向对象的语言,既可以轻松完成与C/C++等编程语言的交互,又便于实现模块扩充和性能优化。因此,Python 语言在小至实验室的简单脚本和大至大型项目的研究开发方面都有极强的用武之地。对于刚刚步入大学的新生而言,他们大多数都没有程序设计的基础,通过Python 课程的学习能够培养他们掌握一定的编程技巧和利用计算技术解决实际问题的能力。另外,本课程也是其他众多后续课程要求的前修课程。由此可见,基础必修课旨在培养学生的基本编程技能。
护的程序,涵盖了测试、面向对象编程和并发编程等高级编程内容。与前修课程中以Python 为主的编程方式不同,该课程主要针对Java 语言的编程训练。“机器学习导论”课程更偏向于电气工程专业,强调Python 语言和算法的实践应用,侧重于机器学习相关知识的学习,因此本课程要求与研究生课程一致。该系列课程的培养目标兼顾了学生在技能维度和算法维度上的能力提升。
高级课程中设置了以Java 、C/C++语言为主的“计算机语言工程”和“多核编程”两门课程。“计算机语言工程”课程重点分析了高级编程语
图2 MIT EECS 系程序设计相关课程设置体系
Level1必修课程中主要包括“算法导论”“编程基础”和“计算结构”。“算法导论”课程旨在强化学生在利用计算思维解决问题时所需的数学建模、数据结构与算法框图等能力;“编程基础”课程配备软件设计和开发的实验模块,着重培养学生对计算概念、软件工程以及算法技术等抽象问题的处理能力。“计算结构”课程则更偏向于电气工程专业的数字系统和计算机架构,侧重于引导学生进行高水平硬件编程和综合设计,例如让学生设计一款简易CPU 等。因此,本系列课程注重培养学生在技能维度上的能力。
Level2必修课中包括“软件架构基础”和“机器学习导论”。“软件架构基础”通过大型编程项目的练习,重点培育学生编写安全、易懂、易维
EE
CS
6.141机器人:科学
与系统
6.001 计算机科学编程导论Python
基础必修课
Level1必修课
6.006 算法导论 6.004计算结构
6.170 软件工作室
6.172软件系统性能工程
中国在线编程Level2必修课
高级课程 高级实验课程
6.036 机器学习导论
6.009 编程基础 6.031 软件架构基础
6.035 计算机语言工程
6.816 多核编程 言的实现问题,涉及编译原理等基础知识,包含多人合作的项目在编译器的设计和开发。“多核编程”介绍多核机器的编程原理,包括死锁、并发、负荷平衡以及多处理器调度等内容。多
核编程的作业是利用大型多核机器进行高并发应用程序设计,本课程要求与研究生课程一致。因此,该阶段的课程设置主要用于提升学生在算法维度上的能力。
高级实验课程主要
由“软件工作室”“机器
人:科学与系统”和“软件系统性能工程”组成。“软件工作室”包含了需求调研、概念设计、原型开发、数据设计和用户界面设计等,要求学生进行团队协作训练,即以团队为基础在一学期内完成应用项目的开发。“软件系统性能工程”课程的前修课程是“计算结构”“算法导论”和“软件架构基础”,旨在培养基于实际项目开发高效、高性能和可扩展的软件系统,涉及高性能算法技术、指令级优化、内存分级优化以及并行编程等技术。“机器人:科学与系统”课程主要针对实际系统中的机器人和无人车的控制,包括传感、计算机视觉、感知、学习、控制以及嵌入式系统的开发、调试等,要求学生利用复杂的机器人平台设计和开发自主导航与人机实时交互功能,并
2021
78
计算机教育
Computer Education
进行定时交流和撰写相关技术材料。实验课程注重理论联系实际,是全面提升学生在三个维度上的综合能力的环节。
以上只分析了程序设计相关的课程,学生知识维度的能力则通过其他未涉及的专业课程进行提升。此外,由图2可以看出,CS 专业偏重于软件设计技能和高级算法能力的提高,EE 专业则侧重于硬件系统应用知识、软件能力和算法能力的综合培养。综上,MIT EECS 对于程序设计能力的培养目标是培育全面的高素质人才。
3 山东大学“人工智能与机器人”新工
科实验班培养方案分析
山东大学控制科学与工程学院在师资力量、课程体系、培养模式和实习实训等方面具有深厚的积累和优越的办学条件,其自动化专业是山东省首批品牌专业和国家级特专业。基于教育部《高等学校人
工智能创新行动计划》中关于人工智能与机器人交叉融合的指导思想,控制学院借助其自身在控制理论、机器人以及人工智能等方向的综合特和优势,积极响应教育部“人工智能+X ”的建设计划,拟开设“人工智能+机器人”的相关专业,引领高校新工科建设进程。2018年6月,山东大学在控制科学与工程学院召开了
“人工智能与机器人”新工科专业建设专家论证会,确立了专业建设目标、学科特、培养方案和建设规划。新专业旨在为国家培养一批理论基础扎实、综合素质强硬、具备国际化视野并掌握人工智能与机器人前沿理论与技术的精英人才。目前,学院以“人工智能与机器人”新工科实验班的形式进行培养方案的实施,采取自动化专业大类选拔招生的方式,在第一学期进行分流。
对比麻省理工学院EECS 程序设计相关课程的设置,该新工科实验班根植于控制科学与机器人科学,有着控制工程和智能制造等鲜明特,在课程设置上也具有独特的安排。图3所示是该实验班培养方案中,基于三维度评价模型的程序设计相关课程的设置情况。“计算思维”课程以培养学生的计算思维、意识、方法和激发学生学习兴趣为出发点,分为计算科学基本知识、理论和问题,以及计算科学求解问题思想和方法两个层次,并以C 语言为主进行编程实践学习。后续课程补充主要包括以C++语言为主的“面向对象的程序设计”和面向Python 编程的“Python 编程与算法导论”两门课程。这3门课程分别开设于大学第1、2、3学期,使学生在大学二年级上半学期就具备了良好的编程技能,为后续相关实践课程的开展以及学生参与科技创新等活动奠定了良好基础。
知识维度
算法维度 技能维度
计算思维 通识必修课 专业基础课
大学物理
微机原理与接口技术机械工程基础 面向对象的程序设计
数据结构
专业核心课
认知科学与类脑计算
自动控制原理 智能感知技术 机器人学
信号分析与处理
独立实践课
单片机应用系统设计实践 人工智能技术实践 智能机器人技术实践
运筹学 人工智能导论
图像处理与机器视觉 机器学习
毕业设计
Python 编程与算法导论
图3 山东大学“人工智能与机器人”新工科实验班程序设计相关课程设置
第 2 期79
人工智能教学专栏
算法维度上,“运筹学”“人工智能”“机器学习”“图像处理与机器视觉”和“认知科学与类脑计算”等课程的开设使得学生掌握了全局优化、并行计算、集计算、多核计算以及大数据等方法,并通过引入神经网络、深度学习等热点知识,为研究生的培养建立了良好的衔接。知识维度上,主要以嵌入式系统开发、自动控制原理、机器人技术、智能感知等特学科为主,结合单片机、人工智能和机器人等独立实践课程,培养学生成为相关领域的专业人才。
由此可见,该专业立足于控制理论和控制工程基础,重点培养在人工智能与机器人方面的理论与应用技能,从专业基础课程到专业实践课程循序渐进,通过独立实践的教学模式,锻炼学生使用现代工具解决实际复杂工程问题的能力。在充分考虑各个课程知识衔接的同时,“新工科实验班”的课程设置还将在体系上深化学生在知识、技能和算法等多维度上的综合能力,使学生成为人工智能与机器人领域的复合型高精尖人才。
科技创新和工程实践是锻炼程序设计能力的有效途径。为加强学生的科技创新能力,学院通过指派本专业的教师或企业的高级技术人员组织并指导部分学生参加全国性科创赛事,合理挂靠山东大学工程训练中心国家级实验教学示范中心的平台资源,并与济南市高新区联合创建“山东省机器人与智能装备公共技术服务平台”作为教学实践基地,充分利用该平台的机器人装备以及智能制造装备,鼓励大学生参与创新创业和科研开发工作,使学生在理论结合实践中不断成长。
4 结 语
在课程设置时,需结合学校和所属学院具体的传承和条件,如师资力量的结构、教学条件的支撑以及社会力量的补充等多个方面,同时立足本国国情,对接产业对人才的需求,合理规划课程建设。另外,新工科专业的培养方案还需经历不断成熟完善的过程,以适应社会对人才的需求和国际前沿科技的发展。以科学的分析、具体的实施和发展的思想办学,做好、做强新工科本科专业教育,并借此进一步提升研究生教育水平,提高我国高校的综合实力。
参考文献:
[1] 钟登华. 新工科建设的内涵与行动[J]. 高等工程教育研究, 2017(3): 1-6.
[2] 姜晓坤, 朱泓, 李志义. 面向新工业革命的新工科人才素质结构及培养[J]. 中国大学教学, 2017(12): 13-17, 23.
[3] 杨文斌. 产学深度融合新工科人才培养的探索与实践[J]. 高等工程教育研究, 2020(2): 54-60.
[4] 宋友. 面向大类工科专业的程序设计课程教学改革[J]. 中国大学教学, 2018(11): 47-50.
[5] 唐四薪, 郑光勇. 程序设计课程体系的维度与层次划分及其教学实践[J]. 计算机教育, 2019(11): 161-164.
[6] 余颖, 李晓昀. 程序设计类课程多维评价方法探索[J]. 计算机教育. 2016(9): 147-148, 156.
[7] Ronny S, Fazilat S, Bárbara S V. A meta-analysis of teaching and learning computer programming: Effective instructional
approaches and conditions[J]. Computers in Human Behavior, 2020, 109: 1-18.
[8] Massachusetts Institute of Technology. MIT course catalog bulletin 2020-2021: Electrical engineering and computer science[EB/
OL].[2020-11-22]. catalog.mit.edu/degree-charts/electrical-engineering-computer-science-course-6-2/.
(编辑:赵原)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论