赵胜楠 朱立才 张辉
摘 要: 为弥补当前Python程序设计课程教学中的不足,根据融合CDIO工程教育理念,以人脸检测—控制灯光项目为例,借助Jupyter Notebook平台,通过“构思—设计—实施—运行”四个环节,探索一种线上线下混合式课程改革方案。先从课堂的知识点入手,以创新实训项目为切入点,学生分组合作,最终完成一个仿真实践。该方案培养了学生实际开发项目的能力,从而提升了课程教学的质量。
关键词: Python; 程序设计; CDIO; Jupyter Notebook
中图分类号:G434 文献标识码:A 文章编号:1006-8228(2022)03-83-03
Abstract: In order to make up for the deficiencies in the current Python programming course teaching, according to the CDIO engineering education concept, taking the project of face detection & lighting control as an example, with the help of the Jupyter Notebook platform, a online-offline blended course reform scheme is explored through the four links of “conception-design- implementation-operation”. Starting with the knowledge points of the classroom, taking the innovative training project as the starting point, students cooperate in groups to complete a simulation practice finally. The scheme cultivates students' ability to actually develop projects, so as to improve the quality of the course teaching.
Key words: Python; programming; CDIO; Jupyter Notebook
0 引言
Python是一种面向对象、直译式的计算机程序设计语言[1]。近几年,Python语言发展迅速,已在机器学习、深度学习、大数据等领域广泛应用。Jupyter Notebook是当前非常流行的一种基于Web、支持Python语言的交互式开发工具[2]。随着Jupyter Notebook插件的不断开发与应用,其在教学方面的功能逐渐被发掘。运用Jupyter Notebook,并结合 Python丰富的库资源,教师可共享教学PPT、实时代码、开展线上答题等多样化的混合式教学。学生也可利用 Jupyter平台进行主动学习和翻转学习。
CDIO是构思(Conceive)、设计(Design)、实现(Implement)与运作(Operate)缩写[3]。CDIO 模式的核心理念是以实际项目工程为载体,让学生以主动的、实践的方式学习工程项目,重视实践教学,倡导学生“做中学”。因此,本文基于CDIO思想,并结合Jupyter平台,针对Python程序设计中项目实践环节,探索一种线上线下混合式课程改革方案。
1 Python语言现状
目前,市场对Python的人才需求陡增,许多高校已开设了Python相关课程,但我国Python教学还处于起步和发展阶段,存在教学案例陈旧、实践创新不足等问题。在Python 理论学习的基础上,将算法运用到实际实验项目,这并非易事。很多学生对理论知识并没有深刻的理解,对算法的学习只停留在表面,只能知其然却不知其所以然。尽管目前网络上有许多精品课程,但这些课程多以理论知识的教学为主,注重介绍算法本身,较少涉及实际应用。而且很多Python语言教材中的教学实例落后于时代发展,比如,仍以绘制五角星、打印乘法口诀等为主的数学计算案例。教师应与时俱进,实时地更新教学案例,如智能垃圾分类、新冠肺炎X光检测、机器人视觉检测智能送风、人臉检测智能开灯等与日常生活息息相关的案例,从而激发学生的学习兴趣。
2 CDIO理念教学实施
按照CDIO理念,首先从课堂的知识点入手,运用信息化教学方式掌握基本知识点,以创新实训项目为切入点, 学生分组合作,最终完成一个仿真实践[4]。本文将通过人脸检测_控制灯光这一项目案例组织开展教学,在教学过程中为学生建立真实软件项目开发的工作框架,从而提高学生的学习能力和工程实践能力,使学生能够从中得到实战经验[5]。在CDIO理念下,每个阶段制定相应的实训任务,如表1所示。
2.1 构思阶段
本阶段主要通过线上完成。课前,教师通过Jupyter平台发布关于人脸识别算法的研究现状以及基本知识点的微课视频。微课视频旨在帮助学生课前通过线上自主学习,获取人脸检测相关知识点并且了解该项目本节课的学习任务,引导学生对人脸检测_控制灯光这一项目进行构思,便于教师以此为基础开展翻转课堂。学生分组合作,开展需求分析,共同完成线上学习任务。
2.2 设计阶段
本阶段采用线上线下混合式教学模式。学生根据需求分析,进行模块划分、功能及算法分析。首先,教师通过线上学习平台发布各小组的实验构思方案,让学生先了解其他各组的初步想法。其次,线下开展知识点讲解,组织学生展开讨论,每组派出代表陈述本组的算法思想。若方案存在的重大问题,教师提出修正,学生对实验方案进行修改和完善,再重新提交。
2.3 实施阶段
本阶段是通过线下实操完成。首先学生需准备训练数据集,包括数据采集、数据预处理、数据筛选、数据标注、数据增强、公共数据集等;然后进行模型训练,搭建Jupyter开发环境、预训练模型、超参数设置、模型过程可视化、模型精度评估;再将模型部署。学生编写简单代码调用摄像头,平台将数据传到传感器,最终实现当摄像头检测到人脸时,开灯,否则,关灯。各小组按照实施方案进行编程操作,教师巡视各小组的操作过程,针对操作中的重难点进行讲解和现场演示,并给予适当的指导。
2.4 运行阶段
本阶段是线下展示。学生分组进行项目答辩,汇报项目设计方案、实施过程中存在的问题和解决办法,在Jupyter平台上展示运行结果。教师对各小组的整个实验项目实施过程进行分析和点评,引导学生多角度思考问题和自我反思。最后,教师开展项目考核,在评价中将学生引入评价主体,引导学生开展自评和互评等多元化评价方式[3]。从而改变传统教学中存在的重理论轻实践、重知识轻创新、忽视团队协作等问题。
3 案例设计与实施
运用Jupyter平台的优势之一就是算法的底层代码已封装好,学生无需再进行复杂的底层设计开发,极大简小了编程工作量。以人脸检测_控制开灯实战项目为例,部分代码如下:
fan_state = 0
while True:
time.sleep(1)
body_state = body.get_body_di_data()
if body_state == 0 and fan_state == 0:
fan.fan_power_on()
time.sleep(1)
fan.open_fan()
fan_state = 1
elif body_state == 1 and fan_state == 1:
fan.fan_power_off()
fan_state = 0
break
time.sleep(1)
学生可通过简单Python语句调用摄像头,实时采集图像数据,实现人脸检测功能,运行fan.fan_power_on()、fan.fan_power_off()便可實现开、关灯。学生能够实时看到运行结果,摆脱了以往编程软件“黑底白字”的运行界面,从而能够激发起学习兴趣,进而探索复杂的人脸识别算法[6]。
4 结束语
本文融合CDIO工程教育理念,借助Jupyter平台,以学生为主体,以基础理论为指导,改进教学模式。该教学模式,能够让学生更好地融入课堂教学活动,调动学生探究学习的积极性,加强师生间的互动交流,对培养学生项目开发的能力起到一定的促进作用。未来,可进一步将线上课堂练习融入课堂,并丰富线上学习内容。
参考文献(References):
[1] 左卫刚.基于CDIO模式的Python程序设计课程教学应用研究[J].计算机时代,2019,(8):78-80,96
[2] 陆钊,韦舒惠.大数据专业混合式教学的ICT应用方案分析与设计[J].信息技术与信息化,2021(5):226-2294
[3] 卢文娟,曾达幸,张立杰等.基于CDIO-OBE工程教育改革思想的教学实践[J].教育现代化,2017(26):29-30,41
[4] 魏冬梅,王影,钟世芬等.基于CDIO模式的Python程序设计课程教学实践[J].计算机教育,2018(2):129-131
[5] 孟稳.基于OBE和CDIO的“工业机器人编程与操作”课程教学探究[J].黑龙江教育:理论与实践,2021(7):91-92
[6] 谢春丽,高宇翔,吴昊聪等.程序设计类课程项目驱动化教学改革与实践[J].计算机教育,2019(7):133-137
3327501908268