面向卓越工程师系统能力培养的嵌入式方向教学探讨
2017-09-28武小平刘丹苏科华
武小平++刘丹++苏科华
摘 要:分析面向系统能力培养的教学课程体系特点及卓越工程师培养计划目标,探讨如何在有限的学时中通过教学与实验使学生能够将嵌入式系统所涉及的软硬件系统相关知识融会贯通,介绍针对卓越工程师培养的嵌入式系统方向课程的教学经验。
关键词:系统综合能力;卓越工程师;嵌入式系统;教学改革
1 面向系统能力培养的教学体系
对于高校计算机专业教育而言,以应用和系统综合能力培养为核心,着力重视培养计算思维及解决问题的能力,依然是当前教育的侧重点之一。计算机系统能力主要体现在能够自觉利用系统观,理解计算机系统的整体性、关联性、层次性、动态性和开放性,并用系统化方法,掌握计算机硬软件协同工作及相互作用机制的能力[1]。
系统能力的培养是提高计算机专业本科教学质量和水平的一个重要方向。从学习的角度也需要更多地关心计算机系统的整体性,培养自身计算机系统能力,这也是工程教育的特征。文献[1]从计算机技术发展的特点,介绍了系统能力培养的主要内涵和需求,阐述了系统能力培养和课程体系设置的总体思路,也代表了国家层面对系统能力培养课程体系设置的发展方向。文献[2-3]则分别从清华大学和浙江大学的实际情况,介绍了在计算机系统能力培养方面所做的课程体系建设和教学改革实践工作。
2 卓越工程师班嵌入式系统方向课程分析
2.1 嵌入式系统方向课程概况
嵌入式系统概念随着芯片技术的发展和应用需求的扩张逐渐普及。伴随着物联网及相关应用的发展,嵌入式系统也成为计算机科学技术领域的一个重要发展应用方向。目前国内高校的嵌入式系统教学基本上都是从早期的微机原理类和单片机类课程发展而来,而更多的学校则是作为本科培养方案中的一门专业必修课或专业限选课。由于受限于学时安排,大多是开设一门嵌入式系统原理类课程作为一个入门级的概述,缺乏后续更深入的学习课程安排。
卓越工程师培养计划是国家贯彻落实中长期教育改革和发展纲要的重大改革实践项目,也是促进我国由工程教育大国迈向工程教育强国的重大举措。对于计算机专业而言,卓越工程师的培养以工程应用技术为主。根据卓越工程师的培养计划和目标,到了本科高年级阶段,则应该在不同的專业方向做课程细分与侧重学习,这样就对后续的课程设置提出了更高的要求。
结合嵌入式系统的工程应用技术特点,课程的设置希望能够让学生更深入地了解系统底层的环节。在专业基础必修课中,面向所有专业学生开设有嵌入式系统原理课程。针对卓越工程师的培养目标,在嵌入式系统方向的定位是能够从事驱动级系统程序开发、嵌入式操作系统移植以及面向上层应用的技术支持;而在受限于专业方向选修课程只有3门的情况下,我们在嵌入式系统方向的专业选修课程设置为:ARM体系结构与编程、嵌入式OS及应用,嵌入式系统综合设计与嵌入式系统的体系层次之间的对应关系如图1所示。
2.2 教学内容编排
(1)ARM体系结构与编程。本课程是在嵌入式系统原理的基础上开设的嵌入式方向选修的第一门课程。在嵌入式系统原理中,学生从51单片机入门,逐渐过渡到ARM体系并基本掌握嵌入式系统的基本设计原理及开发方法,对嵌入式系统有了一个总体上的认识,并对系统开发的全过程有了基本了解。在此基础上,本课程将引导学生深入掌握一种主流的ARM体系架构(以ARMv7为蓝本),并以一种具体的ARM Cortex微控制器为例(STM32系列),学习掌握32位ARM Cortex微控制器的片上资源及接口编程。课程侧重突出应用程序实践,结合具体的应用案例加强基于ARM体系的应用编程能力培养。在针对基于具体微控制器的应用时,引导学生逐渐从基于ARM汇编的面向寄存器编程过渡到基于C语言的面向库函数编程。
本课程主要知识点包括:①ARMv7体系的编程模型。理解其工作模式和特权级别,数据类型支持和存储映射I/O,中断与异常处理流程。②BootLoader概念、作用与移植。理解BootLoader基本概念及通用执行流程,以开源项目U-Boot为例,学习掌握其编译与移植。③以基于ARM Cortex-M内核的STM32系列微控制器为例,学习掌握其片上资源及接口编程,了解其固件库资源及应用示例。④嵌入式系统接口及编程。实现基于STM32微控制器进行外围接口设计及控制编程,具体通过连接字符型LCD显示、行列式键盘、电机控制、SPI通信、IIC通信等,提高实践与设计能力。
(2)嵌入式操作系统及应用。嵌入式操作系统在概念上与通用操作系统并无本质的区别。由于嵌入式系统硬件平台的差异性和特定性以及某些场合对实时性的要求,使得嵌入式系统中的操作系统最终表现出来的形式也是侧重点不一。在操作系统原理、嵌入式系统原理、高级语言程序设计等前导课程学习的基础上,本课程将结合嵌入式系统的软硬件特点,以嵌入式Linux为蓝本,引导学生学习嵌入式操作系统的内核结构、引导程序、图形库、内核构建和裁剪移植技术,培养基于嵌入式操作系统的应用和实践能力,为后续的系统级开发积累初步的知识和经验。
本课程主要知识点包括:①嵌入式软件体系结构。了解嵌入式软件及开发工具分类,掌握嵌入式软件体系结构,掌握嵌入式软件运行流程及交叉编译开发过程。掌握嵌入式操作系统体系结构,嵌入式操作系统功能及特点,了解嵌入式操作系统发展趋势。②嵌入式操作系统内核基础。了解嵌入式操作系统内核的实时性、可移植性、可剪裁性、可配置性和可靠性;掌握嵌入式操作系统的应用编程接口。掌握嵌入式操作系统内核的主要功能及重要性能指标。掌握嵌入式操作系统的任务管理与调度、通信机制、中断和时间管理、高可靠实时系统设计。③嵌入式Linux。掌握嵌入式Linux的构建与应用开发流程;学习Linux图形库移植及应用开发技术;掌握嵌入式系统接口设计与Linux驱动程序设计方法。④典型嵌入式操作系统简介。学习了解u/COS-II、IOS、Android系统的基本体系结构、开发环境及应用软件开发流程。endprint
(3)嵌入式系统综合设计。本课程为案例式教学。在前述课程的学习基础上,由主讲教师结合科研项目讲解项目中具体的嵌入式系统解决方案及设计实现内容,结合试验进行验证或引导学生做深入尝试。本课程可由多名老师联合授课。
3 面向系统综合能力培养的教学实践
国内很多应用型本科院校针对卓越工程师培养目标,结合本校的教学特色,在嵌入式系统教学方面做了很多有益的探索[4-7],尤其是以赛促教、案例式教学、项目式教学等教学方法和教学模式的探索,取得了较好的效果。
嵌入式系统作为本院卓越工程师的专选方向之一,应该将计算机专业前期重要的相关专业课程如高级语言程序设计、计算机组成原理、微机系统与接口技术、操作系统、编译原理等课程知识进行充分集成整合,给学生提供一个能够将系统进行综合的平台。再针对嵌入式系统开发所侧重的底层接口与控制,将计算机系统的软硬件有关知识进行融会贯通,并形成系统及应用,对于提升学生深入理解计算机系统和综合系统设计能力将大有裨益。因此,在制定嵌入式方向的后续专选课程大纲时,明确提出要求在课程内增加综合实践环节,包括课程大作业、团队合作开发等,加强学生的动手能力和团队合作能力;增加案例教学内容,通过具体案例分析促进学生对工程知识的理解。
3.1 案例導学
在ARM体系结构与编程课程中,在学习微控制器体系及片上资源编程与接口之后,设计了两个综合实验案例:第一个案例为结合实验室开发板,实现一个片上资源及接口编程的综合应用程序。该案例通过GPIO、中断、定时器、串口通信的编程,实现将键盘扫描、电机控制、LED显示综合集成的控制程序,属于入门级案例,也是提高学生学习兴趣的一种手段。第二个案例为基于ARM的嵌入式银行排队模拟系统,是相对开放式的综合应用案例。该案例贴近生活实际,功能容易理解。在教学实践中可提前一周左右的时间安排学生先自主进行设计,然后再通过讲解系统的功能分析、硬件总体设计与接口模块化设计、软件总体设计与应用程序开发,让学生有一个对比理解的过程,加深系统设计的理解。
在嵌入式OS及应用课程中,在嵌入式OS内核及嵌入式Linux的学习基础上,设计了两个综合实验案例:第一个案例为基于Linux任务调度、信号互斥和中断控制分别实现控制LED的效果,加深对内核操作的理解;第二个案例为扩展LCD显示及Camera图像采集,掌握基于内核的硬件扩展及I/O管理方法。
3.2 以赛促教
近年来在教育部教学指导委员会的支持下,一些在全国有影响力的竞赛项目也逐渐受到各大高校的重视和学生的热捧。随着物联网及移动互联网的发展,嵌入式系统方向相关的竞赛也逐渐突显巨大的影响力,比如全国大学生物联网设计竞赛、全国智能小车竞赛等,还有一些企业赞助的杯赛项目,如英特尔杯全国大学生电子设计竞赛嵌入式系统专题赛、博创杯全国大学生嵌入式物联网设计大赛等。这些竞赛一般都是开放式命题,有利于参赛者自由发挥创意。同时,全国性的竞赛水准也对学生和指导老师提出了更高的要求。
结合卓工班学生的培养计划和目标,在教学中有意识地引导学生组队参加各类竞赛,以参赛来促进专业知识的更深入学习。一方面,通过组队参赛,培养学生的团队合作精神,弥补单纯的课堂和实验教学中对团队配合的训练;另一方面,在理论教学中所涉及的项目案例,也都是预设性和验证性的居多,通过参赛则能更好地培养学生主动创新能力及解决实际问题的能力,对于学生后续的专业深入学习起到巨大的推动作用。
3.3 项目实践
嵌入式系统是非常注重项目实践效果的专业方向之一。结合综合实践课程嵌入式系统综合设计,我们在教学上也做了一些有益的探索,其中比较显著的就是该门课程将由多名老师动态联合授课。在开课的前一学期,我们会发布课程信息,号召承担有嵌入式系统相关实际项目的老师参与进来,课程的主要内容也就是讲解老师所承担的项目内容。例如,笔者在2014年承担了湖北省科技支撑计划项目——基于物联网的国土资源智能监测系统,计划在综合设计课程中申请6个学时,向学生讲解项目中研发的一套基于4G网络传输的用于国土资源监测预警的嵌入式系统平台,让学生能够直接感受到嵌入式系统在实际研发项目中的应用。
4 结 语
嵌入式系统方向知识面涵盖广,教学上面临的系统性问题较多。从工程技术的角度来看,尤其要注重对学生系统综合能力的培养,也是非常适合卓越工程师培养目标的专业方向之一。武汉大学计算机学院卓越工程师班第一届学生目前正步入高年级阶段,对于选择嵌入式系统方向的学生而言,新制定的培养课程大纲的教学实践效果将在他们身上得到体现。面向系统综合能力培养的教学实践是个值得深入探讨的课题,后续也将根据实际教学效果做进一步深入的研究,探索更符合时代发展需求及本学院实际情况的教学模式和教学内容。
参考文献:
[1] 王志英, 周兴社, 袁春风, 等. 计算机专业学生系统能力培养和系统课程体系设置研究[J]. 计算机教育, 2013(9): 1-7.
[2] 陈文智, 陈越, 庄越挺. 面向系统设计能力培养的教学改革探索[J]. 计算机教育, 2013(20): 70-76.
[3] 刘卫东, 张悠慧, 向勇, 等. 面向系统能力培养的计算机专业课程体系建设实践[J]. 中国大学教学, 2014(8): 48-54.
[4] 牛玉军, 毛玉萃. 面向卓越工程师培养的嵌入式系统课程建设[J]. 实验科学与技术, 2013(12): 335-337.
[5] 王苏峰, 唐玉华, 陆洪毅, 等. 嵌入式系统课程教学方法探索[J]. 计算机教育, 2011(20): 65-69.
[6] 殷建军, 张明武, 尹令. 嵌入式系统课程现状分析与对策研究[J]. 计算机教育, 2010(14): 114-119.
[7] 于晓海. 金建设. 嵌入式系统课程教学模式探索[J]. 计算机教育, 2011(13): 76-80.
(编辑:郭田珍)endprint