面向新工科的计算机类专业学生系统能力培养方法与实践

作者: 陈乃金 石建国

面向新工科的计算机类专业学生系统能力培养方法与实践0

摘要:新工科是为了迎合国内工程教育发展形势而作出的专业建设方案,计算机类专业作为典型的新工科专业,当前在人才培养方面仍未能充分满足社会对该类人才的需求,主要表现在具有复杂工程能力和系统创新能力的人才严重不足,说明当前的计算机类人才培养方法及实践环节仍存在某些不合理之处。文章总结了当前在计算机类人才培养方面存在的问题,提出了在新工科背景下计算机系统能力培养的基本思路,并结合实际提出加强系统能力培养的教学体系设计方案,以及在系统能力培养过程中如何通过实践环节强化实现这一培养目标。

关键词:新工科;计算机类专业;系统能力;培养方法;实践

中图分类号:G642 文献标识码:A文章编号:1009-3044(2023)17-0149-05

0 引言

2017年2月,教育部提出开展新工科建设,随后形成了“复旦共识”“天大行动”和“北京指南”等指导性文件,并在全社会发布了《关于开展新工科研究与实践的通知》,探索符合中国特色的工程教育新模式。

计算机类专业作为典型的新工科专业,在专业人才培养方面具有就业渠道广、人才需求量大和专业素质要求高等特点。尤其是随着新工科专业建设在国内的持续开展与深入,工科专业人才培养方面的标准和层次正在不断提高,创新型与复杂应用型人才培养成为人才培养的重要方向。

因此,教育部高校计算机科学与技术专业教指委从能力培养的角度强调了对计算机学科学生的4项专业能力(表1)的培养,尤其强调计算机系统能力培养的重要意义和迫切需求。在此方面,国内一些高水平大学已经开始了系统能力培养的探索与实践,并取得了一些积极的效果,如清华大学在实践能力培养方面开发了THINPAD实验教学平台,该平台以单周期、多周期和流水线MIPS处理器的设计为核心,通过MIPS 指令设计完成CPU的基本算术运算和逻辑运算功能,从而加强核心硬件的设计能力;还有部分高校把CPU 设计与编译器、操作系统以及外围接口电路的设计综合起来进行软硬件系统协同开发等,比如东南大学的以MiniSys-1ACPU为核心的软硬件综合实践平台[1]。

很多高校在系统能力培养的实践过程中,总结出一些具有实践指导意义和较高理论价值的研究成果,王志英等[2]提出计算机专业学生需要更多地关心计算系统的整体特性,详细阐述了系统能力培养和课程体系设置的总体思路;袁春风等[3]针对计算机系统能力培养提出了实验课程体系构建的基本方法,并总结了实验教学改革实践中存在的一些主要问题;刘卫东等[4]结合清华大学计算机类专业在系统能力培养方面所做的工作和实践成果,分析了课程体系建设和改革的关键内容,归纳了一种加强计算机系统能力培养的教学方案。高小鹏[5]从课程体系建设角度出发,提出了一种新颖的教学方法——工程化综合方法,旨在指导学生开发具有足够规模的系统。

1 计算机系统能力的内涵

计算机系统能力是运用系统原理和科学方法,结合计算机系统的整体性、结构性、耦合性、逻辑性和功能性特点,理解并把握计算机软硬件协同实现系统整体功能的能力[6]。计算机系统能力包含知识理解能力和实践应用能力两个层面。知识理解能力是从知识和原理性角度准确理解和把握计算机系统的工作原理、硬件层次结构、软件逻辑及软硬件在各层次间关联关系的知识逻辑;实践应用能力是运用系统工程及项目管理的方法实现计算机系统功能,并满足一定的实践应用和社会需求的系统开发与设计能力。

根据教育部计算机专业教学指导委员会的界定,计算机专业学生应具备计算思维能力、算法分析与设计能力、程序设计与实现能力和系统能力[7],能力点分配见表1。从表中可以看出系统能力所占的能力点数最多,占比达75%。说明系统能力对计算机专业人才来讲尤为重要,从某种程度上来说,系统能力的高低决定了计算机专业人才培养的整体质量和最终成效。

具备上述四大基本能力,硬件设计人员才能够设计面向实际应用的高性价比的硬件产品,系统开发人员才能从整体上架构并组织面向系统软件的设计与开发,针对计算机硬件和操作系统才能设计并优化编译器的性能,面向应用的程序设计人员才能依据硬件设计逻辑、应用软件的实现功能及程序设计编程思想和算法,编写出高性能的应用软件。因此,计算机类专业系统能力的培养要求掌握计算机软件硬件各层次的工作原理及接口以及系统内各部件之间的逻辑关联,能够从整体上实现系统功能的优化和提高[8-9]。

由上可知,对计算机系统的全面理解需建立在计算机软件与硬件的有效协同对接的基础之上,因此,从专业教学角度看,必须研究如何贯通软硬件课程之间的知识联系。尤其是核心课程如数字逻辑、计算机组成原理、微机原理与接口技术、数据结构、编译原理和操作系统课程内容之间的衔接,以及这些核心课程综合性实验和系统性设计等实践项目有效“落地”。

从学生学习角度看,也必须改变当前计算机类专业学生“知行不一”(重理论、轻实践)和“欺软怕硬”(重软件、轻硬件)的现象。

2 新工科计算机类专业学生系统能力培养思路

在教育部新工科专业建设实践中,新工科专业建设注入了新的内涵,即工程教育的新理念、学科专业的新结构、人才培养的新模式、教育教学的新质量、分类发展的新体系。结合新工科专业建设的内涵和基本要求,计算机类专业的学生系统能力培养的基本思想总结为[9]:建立计算机系统整体观念,打通计算机类专业核心软硬件课程知识联系,建立一体化课程教学体系,改造计算机类专业现有培养模式,要求学生具有扎实的理论知识,还要突出实践技能尤其是复杂工程能力和系统应用能力等高阶素养的培养,使学生具备适应新技术发展的整体素质和能力,教学方面,从顶层重新设置核心专业课程教学大纲,加强硬件实践环节能力训练。具体包括以下几方面:

1)从系统能力培养的角度统一编写高质量系统能力培养专门教材,建立新工科计算机类专业包括实践教程在内的课程教材体系。

2)完善系统能力培养方案,重新修订系统能力培养的不同层次实践教学内容,包括专业课的课内实验、课程设计、专业综合实践、生产实习和毕业设计等实践环节。

3)加强高校间的合作交流,提高专业教师的教学水平,包括教学和实践能力。参与各类计算机系统设计大赛,通过比赛提高学生的计算机系统分析和设计能力,并分析比赛过程中学生存在的问题,进一步思考在教学方面存在的薄弱环节,进而加以持续改进。

4)从学校制度设计和顶层设计着手,搭建校企合作平台,并建立联合企业进行项目合作研究的长效化机制。企业提供项目及需求,并提供项目开发的实践环境,高校将学生送到企业进行项目开发和实践锻炼,使学生的实践技能与社会需求能够有效对接。

5)以学生为中心进行教学设计,充分考虑到学生个体的发展需要。根据每一个学生的个体差异,给所有学生以平等的机会和多渠道的学习平台获得更好学习效果。

通过这些举措使学校人才培养与社会和行业需求建立联系,真正培养出社会需要的具有高阶系统能力和复杂工程应用能力的计算机专门人才。

3 计算机类专业学生系统能力培养教学设计

人才培养质量的高低最终要依靠学校的制度保障、教学设计、学习渠道和实践路径等方面来保证,从教学设计的角度看,主要是专业课程教学体系设计及教学方法设计[10-11]。

3.1 计算机类专业学生系统能力培养课程体系设计总体思路

为培养具有系统应用能力的计算机专门人才,需要建立一套新的符合计算机类专业人才培养目标的专业课程体系,尤其要加入一些贯穿计算机系统的综合性课程,按照新工科专业建设标准规划计算机核心课程分层次教学内容。为此,本文提出计算机专业系统能力培养的总体思路:首先从顶层理清计算机系统设计的思路和方法;再介绍底层各硬件系统的开发和子模块功能的实现方法;然后把顶层系统设计和底层硬件设计联系起来,介绍如何在硬件平台上通过软件程序设计实现系统各模块功能;随后按课程分类安排计算机硬件、软件、算法、数据库、操作系统和编译原理等相关教学内容,实现授课内容在深度和层次上由浅入深的层次递进;最后,经过对培养的几轮学生的系统能力进行评估,找出在能力培养方面的薄弱环节,进而加以优化和持续改进。

3.2 计算机类专业学生系统能力培养方法和教学内容设计

计算机类专业系统能力培养要求学生首先应有计算机系统整机观念,深刻理解计算机系统从硬件层次→软硬件接口层→软件层的层次化结构,能够从计算机设计的视角分析计算机应具备的功能,针对功能如何按层次化设计方法完成部件设计、接口设计和软件设计。这就要求必须理解各个层次之间的相互关系,并掌握指令集体系结构的工作原理和设计方法,具备使用EDA工具等进行硬件设计的基本技能,理解操作系统如何实现硬件管理、作业管理和进程调度等功能,掌握硬件的优化编译技术,掌握面向计算机硬件进行系统级程序设计的基本方法;能够进行CPU硬件电路设计、操作系统设计和编译器设计,具有系统设计与开发能力、系统优化与应用能力。

在计算机类专业课程体系当中,一般以计算机体系结构、计算机组成原理、编译原理和操作系统这4门课程作为计算机系统能力培养的核心课程。在系统能力培养的知识和能力层次上,硬件设计能力起着基础和决定性作用,有了计算机组成原理等硬件课程的基础,学生将更容易从计算机系统整体的角度理解编译原理和操作系统等后续课程。因此,需要着重加强数字逻辑、计算机组成原理等硬件能力的培养,要求学生具有扎实的理论功底和实践技能。

1)数字逻辑。该课程主要涉及硬件设计的基本逻辑和功能实现。从CMOS和TTL最基本门电路的原理入手,进一步介绍组合逻辑电路和时序逻辑电路分析和设计方法,以及各种触发器的逻辑功能及硬件实现,在此基础上介绍随机和只读存储器硬件电路工作原理及逻辑实现,最后介绍硬件描述语言Verilog以及可编程逻辑器件,包括FPLA、PAL、GAL、EPLD和FP⁃GA设计等。该课程侧重培养学生基本数字逻辑电路设计能力,为学习计算机组成原理和微机原理及接口技术打下良好基础。

2)计算机组成原理。该课程运用了数字逻辑课程中提供的基本功能逻辑电路来设计计算机的功能部件,主要介绍计算机系统的基本组成,各物理部件工作原理、结构和功能实现等。包括计算机工作逻辑、系统总线、存储器、输入/输出系统、数据运算与表示、CPU、指令系统、控制器和微程序设计等。该课程侧重培养学生计算机硬件系统的认知、分析和设计能力,进一步为微机原理与接口技术、编译原理和操作系统等课程学习打下良好的系统级硬件基础。

3)计算机体系结构。主要介绍计算机体系结构的概念、工作原理、分析设计方法及最前沿的技术发展情况。具体内容包括高级流水线技术、并行处理系统、并行设计与编程技术、单周期和多周期处理器技术、多处理器系统和向量处理机等。首先从“高级语言程序→汇编语言程序→机器指令序列→控制时序”的路线分析程序从代码编程到编译解释,再到最终在CPU上运行的整个过程。为建立计算机软件与硬件系统的整体概念打下基础。其次,将指令执行过程与异常、中断、I/O和存储器访问等概念技术结合起来,说明CPU执行指令过程中硬件与操作系统相互切换和协同工作的处理过程,从而深刻理解软硬件系统之间的关系和协同工作机制。最后从MIPS指令系统设计角度分析单周期和多周期处理器设计原理和方法。

该课程侧重培养学生计算机系统的软硬件综合应用能力,为优化程序设计、操作系统设计和编译器设计打下基础。

4)编译原理。编译技术主要用于将高级语言源程序转换为计算机系统硬件能够自动执行的目标代码。而目标程序的执行效率则取决于编译器性能的高低,因此编译优化技术也是计算机类专业学生需重点掌握的核心技术。除此之外,该课程还介绍编译程序构造的一般原理、设计方法和主要实现技术,包括文法、自动机和语言的基础知识、词法分析、语法分析、语法制导的语义计算、语义分析、中间代码生成、运行时存储组织、目标代码生成、符号表管理和出错处理等内容。该课程侧重培养学生分析设计和实现编译程序方面的基本技能,为之后从事系统软件和应用软件的开发打下良好的理论和实践基础。

上一篇 点击页面呼出菜单 下一篇