一、教师简介
吴琼飞,副教授,双师双能型教师,中共党员,主要研究方向:嵌入式系统及应用,物联网技术,计算机视觉;发表学术论文近20篇,其中EI会议收录4篇,CPCI-S收录2篇,北大中文核心期刊2篇;主持或参与教研科研项目8项,其中省部级5项;申报软著2项;指导学生参加创新创业大赛获国家级项目2项,省级项目2项;指导学生“挑战杯”创业大赛获铜奖2项;指导学生“蓝桥杯”软硬件类竞赛获奖十余项;指导学生“全国计算机设计大赛”获二三等奖若干项;指导学生优秀毕业设计一等奖、二等奖若干项。获校级教学质量优秀二等奖2次;荣获ATC认证ARM工程师。2024-2025-1学期所授《嵌入式系统原理》课程入选武汉设计工程学院校级优质课堂。
二、课程概述
《嵌入式系统原理》是我校计算机科学与技术&计算机科学与技术(专升本)专业的一门专业核心课程,具有非常强的理论性、实践性和应用性;课程开设在第5学期,运行至今已10余年,之前总学时56学时(理论40学时,实验16学时),综合各个方面的考虑,学时从2023年开始精简为48学时(理论32学时,实验16学时)。课程主要讲授嵌入式系统ARM的体系结构、指令集架构及ARM软硬件设计技术,重点学习ARM的可编程模型原理、特点及应用,通过本课程的学习让学生掌握嵌入式系统级软硬件设计方法,能运用所学知识完成嵌入式程序设计、应用与开发工作,同时使学生具备跨学科知识及综合应用能力,从而适应地方经济社会发展新技术、新产业、新业态和新模式需求。
三、教学改革及经验分享
(一)重构理论教学内容
立足于学情,聚焦人才培养目标,结合市场需求,重构理论课程知识体系,优化教学内容,重构理论课程知识体系,形成“一体两翼三引擎”体系结构,“主体”主要讲授ARM处理器结构、ARM指令集、ARM开发工具及原理、ARM硬件技术等;“右翼”主要讲授ARM编程,包括ARM汇编、ARM汇编与C混合编程、ARM接口编程等;“左翼”主要讲授ARM与Linux系统级设计,包括Linux内核、BootLoader技术、Linux驱动、嵌入式Linux应用程序设计等;实现“硬件架构”、“硬件编程”及“系统工程”三个“驱动引擎”,核心理念是“重视基础性,侧重应用性,保持先进性”。
图1 “一体两翼三引擎”体系结构
定期跟踪企业对于嵌入式软硬件工程师的岗位招聘要求,以随时迭代教学内容;同时将实际的科研成果融入教学,把嵌入式系统相关理论和概念渗透到具体案例中,比如介绍嵌入式网络接口和LCD接口技术时,融入本人指导学生的湖北省省级大学生创新训练项目—《嵌入式远程视频监控在平安校园中的应用》,讲解学长参与的具体项目中包含的有关ARM网络接口及LCD接口技术知识,锻炼学生解决实际问题的能力。
(二)创新实践教学体系
塑造“四类型六环节”实践体系结构,四类型包括:基础类型、专业类型、综合类型及创新类型;六环节包括:认知实验环节、验证实验环节、设计实验环节、综合实训环节、毕业设计环节、科研竞赛环节;核心理念是“面向学生能力差异化,满足不同层次需求点,培养多维度人才力”。
图2 “四类型六环节”实践体系结构
(三)“多模态”融合教学模式
课堂教学采取BOPPPS与对分课堂PAD融合模式,保留BOPPPS模型的六个基本步骤,在“参与式学习”阶段融入对分课堂PAD的教学策略,以“讲授—内化—讨论”为核心,保证学生能够完成“独学(个性化学习)—讨论(互助式学习)—对话(互动答疑)”的参与式学习过程。核心理念是“真正以学生为中心,提升学生的参与感,同时满足学生个性化需求”。
图3 BOPPPS与对分课堂PAD融合模式
(四)“探究迁移式”课程思政
图4 “探究迁移式”课程思政
四、教学案例
(一)教学案例一 ARM汇编的条件分支与循环结构
1.教学目标:能知晓ARM汇编程序的基本结构;能将条件分支循环算法思想转换成ARM汇编代码。
2.教学难点:分支与循环思想的ARM汇编代码设计。
3.教学方法:采取BOPPPS与对分课堂PAD融合模式,通过多级提问、案例展示、小组讨论、线上学习通等方式贯穿始终,同时辅以图片、视频、板书、嵌入式硬件实物等展现方式,在保留BOPPPS模型的六个基本模块的基础上,在“参与式学习”阶段融入对分课堂PAD的教学策略,以“讲授—内化—讨论”为核心,保证并强化学生能够完成“独学(个性化学习)—讨论(互助式学习)—对话(互动答疑)”的参与式学习过程。
(1)导入并确立学习目标:通过图片、视频等启发式提问,引导学生讨论思考,阐述ARM汇编程序特点及意义,继而进一步引出本次课主讲内容及目标。
课程思政:通过课前导入(图片思考与分析),引出雷军先生曾经书写的汇编代码项目,通过优秀的汇编编程能力,雷军先生在武汉大学求学期间获得了人生的第一桶金,雷军先生曾说:汇编代码透着“三分严谨,七分浪漫”,教导学生在工作中不仅要严谨行事,还要保有灵活创新的活力。
(2)前测:通过C语言与ARM汇编对照填空方式,根据课前通过学习通发布的预习知识,启发式引导提问,让学生分组讨论并完成分支结构的代码填空。
(3)参与式学习融合对分课堂PAD:
①讲授(重难点):通过具体案例(求高斯和)进一步讲解融合了分支与循环结构的ARM汇编程序设计思想。
②独学(个性化学习):学生先独立思考,翻阅书籍或网络,上机测试验证,完成知识的内化。
③讨论(互助式学习):以小组为单位,交流代码的正确性及多样性,进一步完成知识的内化吸收。
④对话(互动答疑):根据先前的“独学”和“讨论”环节,各小组组长与教师进行答案交流,完成最终代码的整体实现。
(4)后测(进阶训练):利用ARM汇编求两个正整数的最大公约数并利用ADS AXD Debugger调试器仿真求解全过程。教师板书讲解求解思路,根据教师代码提示,采用“分小组PK竞赛”形式完成代码实现并调试全过程,对优秀的小组给予一定的平时分奖励,用以刺激学生的积极性。
(5)总结与作业:
①通过提问互动填空的方式完成本次课重难点知识的梳理(ARM汇编条件分支及循环结构指令),引导学生反思,完成自我总结评估。
②学习通发布课后作业(ARM汇编实现最大公约数的多种解法及最小公倍数的多种解法),引出下一讲的知识点(ARM汇编与C语言的混合编程),督促学生做好课前预习。
(二)教学案例二 ARM汇编与C语言混合编程
1.教学目标:能知晓汇编与C语言混合编程的原理及规则;会使用汇编程序与C语言混合编程的调用方式。
2.教学难点:汇编与C语言混合编程原理及应用。
3.教学方法:采取BOPPPS与对分课堂PAD融合模式,通过多级提问、案例展示、小组讨论、线上学习通等方式贯穿始终,同时辅以图片、视频、板书、嵌入式硬件实物等展现方式,在保留BOPPPS模型的六个基本模块的基础上,在“参与式学习”阶段融入对分课堂PAD的教学策略,以“讲授—内化—讨论”为核心,保证并强化学生能够完成“独学(个性化学习)—讨论(互助式学习)—对话(互动答疑)”的参与式学习过程。
(1)导入并确立学习目标:通过图片(既包含ARM汇编代码同时也包含C语言代码的案例)启发式提问:“根据前面的学习,ARM集成开发环境ADS编译器是支持汇编语言编程的,同样也支持C语言的程序设计,那么图中这种包含两种代码混合设计的方式可以正常编译码?如果可以,那么这二者之间如何实现调用?又如何具体运行呢?”通过以上提问,引出本次课要讲的主要内容及学习目标。
(2)前测:通过展示一段汇编与C语言混合设计的案例代码(汇编调用C函数求三个数中最大的数),通过启发式提问,随机点人回答此段代码实现什么功能呢?它是如何实现的?
(3)参与式学习融合对分课堂PAD:
①讲授(重难点):根据前测互动情况,通过PPT逐步展示汇编与C语言混合编程的三种方式(C代码内嵌汇编指令、汇编与C进行变量互访、汇编与C程序间相互调用)及ATPCS调用规则,再给出三段混合编程的案例代码让学生填空。
课程思政:通过具体的混合调用案例,学习ATPCS调用规范,建立工程思维,了解子程序规定利用寄存器R0~R3来传递外部函数参数,特定的寄存器有特定用法,培养软硬件开发的规则意识和习惯。
②独学(个性化学习):学生先独立思考,翻阅书籍或网络,上机测试验证,完成知识的内化。
③讨论(互助式学习):以小组为单位,交流代码的正确性及多样性,进一步完成知识的内化吸收。
④对话(互动答疑):根据先前的“独学”和“讨论”环节,各小组组长与教师进行答案交流,完成最终代码的整体实现。
(4)后测(进阶训练):利用汇编和C混合编程求一个数所有位中“1”的个数,如果个数为奇数就在R0中写入“1”,若为偶数则在R0中写入“0”,并利用ADS AXD Debugger调试器仿真求解全过程。例如:十进制数7,所有位中1的个数为3,“3”为奇数,则在R0中存放1。教师板书讲解其中一种求解思路,包含两个层面:第一是采用何种混合编程方式,这里可以采用汇编调用C的函数;第二是如何计算一个数中所有位中“1”的个数,可以通过移位和逻辑运算组合方式。学生根据教师提示,采用“分小组PK竞赛”形式完成代码实现并调试全过程,对优秀的小组给予一定的平时分奖励,以此刺激学生的积极性。
(5)总结与作业:
①通过提问互动填空的方式完成本次课重难点知识的梳理(汇编与C语言混合编程方式及ATPCS调用规范),引导学生反思,完成自我总结评估。
②学习通发布课后作业(混合编程多种方式完成后测案例代码实现并调试),并督促学生做好下一讲课前预习。
(三)教学案例三 ARM GPIO接口设计——LED流水灯
1.教学目标:运用ADS实现ARM的GPIO接口汇编设计及C语言程序设计。
2.教学难点:GPIO端口配置寄存器与数据寄存器的设置。
3.教学方法:采取BOPPPS与对分课堂PAD融合模式,通过多级提问、案例展示、小组讨论、线上学习通等方式贯穿始终,同时辅以图片、视频、板书、嵌入式硬件实物等展现方式,在保留BOPPPS模型的六个基本模块的基础上,在“参与式学习”阶段融入对分课堂PAD的教学策略,以“讲授—内化—讨论”为核心,保证并强化学生能够完成“独学(个性化学习)—讨论(互助式学习)—对话(互动答疑)”的参与式学习过程。
(1)导入并确立学习目标:通过展示学长毕设“智能楼宇环境监测”项目中的一个子模块,引出GPIO接口编程技术,通过开发板实物及图片展示ARM常用GPIO模块,引出本次课要讲的主要内容及学习目标。
(2)前测:通过展示一段“直接驱动一路LED”案例代码,通过启发式提问,随机点人回答此段代码实现什么功能呢?它是如何实现的?
(3)参与式学习融合对分课堂PAD:
①讲授(重难点):根据前测互动情况,通过PPT逐步展示GPIO接口配置寄存器、数据寄存器及上拉寄存器的设置原理及设置方法,让学生在书本记笔记并指导学生画图;然后展示一段“驱动四路LED”的核心代码,让学生根据提示补全并运行代码。
②独学(个性化学习):学生先独立思考,翻阅书籍或网络,利用实验箱接线上机测试验证,完成知识的内化。
③讨论(互助式学习):再以小组为单位,交流代码的正确性及多样性,进一步完成知识的内化吸收。
④对话(互动答疑):根据先前的“独学”和“讨论”环节,各小组组长与教师进行答案交流,完成最终代码的整体实现。
(4)后测(进阶训练):利用GPIO拨码开关K1和K2实现如下功能:
①K1开关的上下拨码来控制实验箱左边LED1的点亮和熄灭;
②K2开关的上下拨码来控制实验箱右边LED2的点亮和熄灭;
教师先板书解题思路,学生根据教师提示,采用“分小组PK竞赛”形式完成代码实现并调试全过程,对优秀的小组给予一定的平时分奖励,以此刺激学生的积极性。
(5)总结与作业:
①通过随机点人回答互动的方式完成本次课重难点知识的梳理(GPIO接口寄存器的分类及配置),引导学生反思,完成自我总结评估。
②学习通发布课后作业(如何用最少的代码实现8路LED的花式呈现?比如间隔一个点亮,再交替亮灭?可利用学校下发的STM32开发实现,将实现代码及运行截图上传学习通),并督促学生做好下一讲课前预习。
五、“多模态”融合教学模式总结
“多模态”融合教学模式核心理念的灵感来自于哈佛大学“学习金字塔”理论(如下图),本质是要“换位思考”式地理解学生,抓住学生的注意力,弱化“被动学习”、强化“主动学习”。
图5 哈佛大学“学习金字塔”
特别是对于《嵌入式系统原理》这种专业性高、理论性强的课程,如何将晦涩的知识深入浅出的展示?如何提升学生的学习积极性?如何增强学生的知识吸收消化率?如何更有效地将“被动学习”转换为“主动学习”?作为教师要提前做好“三备”工作:备学生、备教材、备教法。一定要立足学情,分析多种教材,凝练教学内容,结合学习目标,综合考量来设计教学方法。
1.分析学情,广览教材,设计“多层次”的案例库
以学生为主体,研究学生学情,不能只局限于一本教材,要广泛研读专业领域的高质量高标准的多种教材、科研论文及竞赛创新毕设项目实战,筛选、提炼并设计有针对性、有梯度性、有价值性的案例,然后根据教学大纲和课堂学习目标,合理性融合,让学生能学以致用,“用”中求学。
2.研究教育心理学,调动“多花样”的教学手段
教育的过程,其实也是一场研究教育心理学的过程。单一的教学工具和手段是无法在一堂课内能够持续刺激学生注意力的。要全面调动学生的“视听说”感官,设计图片、视频、实物道具等展现方式,吸引学生的注意力;对于细节原理的解析过程,可通过板书推导辅助;对于课堂小测,可通过在线出题、随机点人方式进行,以此来全方位地抓住学生的注意力,提升了学生的抬头率。
3.被动转主动,构思“多类型”的互动方式
根据哈佛大学“学习吸收率金字塔”原则,“小组讨论”可以记住50%的内容,“做中学”或“实际演练”可以达到75%,“教别人”或“马上应用”甚至可以达到90%的效果。据此,在保留传统BOPPPS模型的六个基本模块的基础上,在“参与式互动学习”阶段融入对分课堂PAD的教学策略,强化学生能够完成“独学(个性化学习)—讨论(互助式学习)—实践(做中学)—对话(反馈答疑提炼)”的参与式学习过程,增强“师生互动、生生互动、人机互动”频度。对于《嵌入式系统原理》课程,除了理论性强,专业实操性要求也高,老师通过启发性有效性多级提问方式贯穿课堂(师生互动),理论性的知识通过分组讨论,必要时可组织“小组PK”方式,提升学生的专业理论的思辨性(生生互动);实操性的知识通过上机实践验证,“在做中学”(人机互动),同时以小组为单位派出代表来讲解“授课”,转换“师生身份”,最后教师答疑反馈,并做出总结,以此最大限度地提升了学生课堂知识的吸收率。