傅均 邢建国
摘要:本文提出,基于大语言模型的生成式AI技术可作为资深的领域专家和教师,用来解决PBL教学中存在的师资不足、资源缺乏以及学生得不到及时反馈等问题。同时,作者以“嵌入式系统开发技术”课程为例,结合CC2020胜任力模型,介绍如何在PBL项目中利用ChatGPT来实现高质量PBL,并讨论了ChatGPT的局限性。
关键词:ChatGPT;建构主义学习;PBL
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)10-0084-06
引言
项目式学习(Project-Based Learning,PBL)基于建构主义学习理论,强调学习的系统性、复杂任务以及解决真实世界中的问题,学生通过参与实际项目的设计、调查、探究和解决问题,来促进自身的学习和发展。2020年,笔者所在的课程组参照ACM和IEEE-CS计算机课程体系规范(CC2020)[1]胜任力模型(知识+技能+品行),将“嵌入式系统开发技术”课程从传统的按知识点组织的教学形式改为项目式学习形式。该课程为专业选修课,面向大三(下)计算机科学专业本科生,学生在学习该课程前已系统学习过“高级语言程序设计”“数据结构”“数字逻辑”“计算机组成”及“操作系统”等课程。教学安排由原先30课时理论+15课时实验(共5次实验)改为15课时理论+30课时PBL项目。实验平台由单一的S3C44B0(ARM9)实验平台改为模块化、多平台方式,支持ARDUINO、ESP8266/ESP32、STM32、树莓派及FPGA等平台,开发语言由原先的C/C++扩展为支持microPython、LUA等解释型语言。另外,笔者还使用了在线仿真平台Wokwi[2]搭建和测试原型系统,弥补了硬件资源的不足。经过教学实践,总体来看,学生积极性较高,产生了一批不错的学生项目,取得了一定成效。
但在教学实践中还存在以下一些问题:①学生自主性不足。②学生缺乏足够的背景知识,需要广泛收集信息、参与调查和研究,限制了学习深度和质量。③评价体系复杂,教师工作量大,需要根据学生的参与程度、合作能力、解决问题的能力等进行打分。④缺乏及时反馈。
ChatGPT作为一个问答模型,相当于一个资深的领域专家和教师,可以用于解决PBL教学中存在的师资不足、资源缺乏以及学生得不到及时反馈等问题。下面,笔者以“嵌入式系统开发技术”课程为例,探讨ChatGPT在PBL教学中的应用实践以及存在的问题。
相关研究
1.ChatGPT在高等教育领域的应用场景
尽管ChatGPT推出才一年有余,但已经有大量的学术文章研究ChatGPT对现代教育的影响及应用。[3-8]笔者根据相关研究,从教师和学习者两个维度、学习生命周期的五个阶段对ChatGPT在高等教育中的应用场景做了总结[9],具体如表1所示。
2.ChatGPT在教育應用中存在的不足和风险
ChatGPT具有改变学术界和研究范式的潜力,并已经开始对教育领域产生重大影响。然而使用ChatGPT也存在潜在的缺点,如很多学者担心学生过于依赖该工具生成的内容,从而导致创造力和批判性思维技能的丧失。此外,对ChatGPT输出的准确性和可靠性我们也必须时刻保持警惕,尤其是它可能虚构不存在的事实、似是而非的内容,或语料库本身存在偏见。研究表明,ChatGPT可能生成伪造的参考文献和索引,生成的计算机代码引用不存在的API,代码存在安全风险。这些都对在高等教育中广泛推广和使用带来了问题。
华东师范大学智能教育研究院[10]组织对ChatGPT在教学能力方面的实证研究,经过对6名教师和9名学生、通过118个问题的800轮询问,他们认为ChatGPT目前尚不具备独立辅导学生的能力,但已可作为教师日常工作能力提升的好助手。类似研究表明,ChatGPT输出质量还取决于提问的质量,好的提示词可以得到ChatGPT高质量的回答。而提问质量的高低依赖于使用者的知识背景和经验。
同时,ChatGPT与人类发明的所有新技术一样,在大规模使用之前都存在道德伦理风险。ChatGPT 通过基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)的方式进行训练,生成的模型不可避免带来了提供训练数据的人以及数据样本的倾向性和偏见。这些风险[10]包括:数据和隐私的泄露与滥用、风险认知固化造成机器算法的歧视和偏见、风险重心偏移造成师生关系的弱化与破坏、风险鉴别偏误造成学术公平的失信与失衡。
ChatGPT在PBL教学中的应用
1.胜任力模型和PBL
CC2020[11]将原有的基于知识的计算教育模式改变为基于胜任力(Competency)的计算教育,把原先分散的计算学科(如计算机科学、计算机工程、软件工程、信息技术、网络安全、数据科学),纳入统一的视角——计算。同时,定义了构成胜任力的三个组成部分:知识、技能和品行。
CC2020报告认为计算领域的每一条职业道路都是建立在胜任力的基础上,而知识只是胜任力概念的一个组成部分。这与PBL教学目标是一致的,PBL不是简单向学生传授知识点,而是学生在具体情境下解决真实问题,知识是完成这一学习过程的背景和产物。下页表2比较了PBL教学与传统知识点驱动的教学模式的不同。在这里,笔者主要参照CC2020中关于嵌入式系统部分的标准,借助ChatGPT,使用PBL教学方法重构“嵌入式系统开发技术”课程教学内容和教学方式。
2.PBL项目生成
在CC2020中关于嵌入式系统属于“系统架构和基础设施”知识领域,在计算机工程胜任力草案中有两个版本(如表3)。
针对内嵌版本,笔者开发了如下提示词,用于指导ChatGPT生成一个PBL项目:
生成一个时间为10周的PBL项目,每周3小时。该计划基于下面的 CC2020中关于嵌入式系统的课程标准,开发一个[可穿戴设备],用于解决[居家老人的身体健康实时监测]。
①向一组同行展示基本和高级I/O技术的设计和实现,包括同步、异步和串行/并行,包括中断和时间考虑。(并行/串行I/O;同步/异步I/O;中断和计时)
②为专业研讨会设计和实现一个非电子设备中的嵌入式系统示例,包括传感器反馈、低功耗和移动性。(数据采集和传感器;嵌入式系统特性;低功耗操作)
要求包括以下内容:
①项目摘要,包括项目启动、里程碑、预期的学生需要知道的问题;
②与里程碑和相关活动相一致的活动,介绍学生对该主题的知识和经验,允许学生分享他们的工作草稿、接受同行反馈和修改、对他们的工作进行反思;
③列出脚手架,以帮助各种学生取得成功;
④向班级以外的真实观众公开展示学习成果的计划,并有机会反思他们的最终产品。
替换“[ ]”中内容,ChatGPT可以自动生成相应的PBL项目。下面是ChatGPT返回的一个PBL计划(有修改):
PBL计划——可穿戴设备用于解决居家老人的身体健康实时监测
项目摘要:
本项目旨在设计和开发一个可穿戴设备,用于实时监测居家老人的身体健康。通过该设备,可以收集并分析老人的生理数据,如心率、血压、体温、血氧浓度等,并将数据传输到监护人或医疗机构,以实现对老人健康状况的远程监控。学生将通过项目的里程碑和相关活动,逐步建立对嵌入式系统和相关技术的知识和经验,并有机会分享工作草稿、接受同行反馈和修改,同时对他们的工作进行反思。
项目启动:宣布项目目标和预期结果;介绍可穿戴设备的概念和应用场景;确定团队成员和角色分工;解答学生可能存在的问题。
里程碑1:基本和高级I/O技术设计与实现(2周)。
学习并理解串行和并行I/O、同步和异步I/O的概念和原理;探索中断和时间考虑在嵌入式系统中的应用;设计和实现一个简单的I/O系统,包括感知设备和数据传输模块。
里程碑2:嵌入式系统示例设计与实现(3周)。
学习数据采集和传感器的原理和技术;研究嵌入式系统的特性,如低功耗和移动性;设计和实现一个示例嵌入式系统,包括传感器反馈和低功耗操作。
活动1:学生工作草稿分享和同行反馈(每周)。
学生将分享他们的项目进展和工作草稿;同学们可以相互提供反馈和建议,促进共同成长和改进。
活动2:项目反思和修改(每周)。
学生对自己的工作进行反思和评估;针对反馈和发现的问题,进行必要的修改和改进。
学生需要知道的问题:
I/O技术的概念和分类;同步和异步I/O的区别及其应用场景;串行和并行I/O的原理和应用;中断和计时的作用和实现方式;数据采集和传感器的原理和应用;嵌入式系统的特性和设计考虑;低功耗操作的技术和策略。
相关活动:
①学生将在小组中讨论和研究基本和高级I/O技术,并分享他们的工作草稿。
②学生将参与同行评审,提供反馈并修改彼此的设计和实现方案。
③学生将撰写反思报告,总结他们在项目中学到的知识和经验。
脚手架:提供教材和文档,介绍基本和高级I/O技术、嵌入式系统特性和低功耗操作的概念和实践。组织实验室或工作坊,让学生亲自动手构建和测试嵌入式系统原型。设计小组项目,鼓励学生通过合作解决问题,并分享他们的成果和经验。分组合作,让学生在团队中互相学习和支持。定期组织讨论会和答疑活动,解答学生的疑问和困惑。
成果展示计划:
①组织一个公开展示活动,邀请班级以外的观众参与。
②学生将准备演示文稿和演示视频,介绍他们的项目目标、设计和实现过程。展示他们设计和开发的可穿戴设备原型,并介绍其功能和应用。
③组织问答环节,让观众提问并与学生进行互动,促进深入讨论和学习。听取观众的反馈和意见,对项目进行反思和提出改进。
ChatGPT生成的文本基本上具备了PBL项目计划所要求的内容,通常可以在此基础上根据实际情况进行增删,基本上能满足要求。这大大地提高了教师工作效率,教师工作中心转移到发现和提供项目背景和实际待解决问题。
下面是在没有人工干预的情况下用ChatGPT自动生成的几个基于嵌入式系统课程标准的PBL项目实例:
智能家居控制器:团队设计和开发一个智能家居控制器,可以通过手机应用或语音助手远程控制各种家居设备。项目要求包括硬件选型、嵌入式软件开发、通信协议实现以及用户界面设计等方面。
温室自动化系统:团队构建一个温室自动化系统,通过传感器监测温度、湿度和光照等参数,并利用嵌入式系统控制灯光、通风和灌溉等设备。项目涉及传感器集成、数据采集与处理、控制算法实现等技术。
自主驾驶小车:团隊设计并制作一辆具有自主导航和避障功能的小型无人驾驶车辆。项目要求包括传感器选择和集成、路径规划算法实现、实时操作系统开发以及通信和远程控制等方面。
这些项目与高质量PBL项目相比,还存在较大的落差,无法提供真实应用背景,研究内容也较单薄。因此,借助ChatGPT生成PBL项目和计划还需要细粒度的人工引导和干预。
3.ChatGPT在PBL项目实施过程中的应用
本课程的目标是让学生在PBL项目中掌握以下知识和能力,传统教学方式中这些是通过教师讲授和实验来实现的。
①基础知识。嵌入式课程通常会涵盖计算机体系结构、操作系统、编程语言(如C/C++)、数据结构、数字电路等基础知识。学生需要了解计算机硬件和软件之间的交互以及嵌入式系统的工作原理。
②嵌入式系统开发。学生应该学习嵌入式系统的开发流程,包括需求分析、系统设计、编程和调试等。他们应该能够使用嵌入式开发工具和平台,如Arduino、Raspberry Pi等进行开发,并掌握相关的开发技术和方法。
③实时系统。嵌入式系统通常需要满足实时性要求,因此学生需要学习实时系统的概念和原则。他们应该了解实时任务调度、优先级处理、中断处理和资源管理等内容,并能够设计和实现实时系统。
④接口和通信。学生需要了解嵌入式系统与外部设备之间的接口和通信方式,其中包括串口通信、SPI、I2C、CAN等总线协议,以及无线通信技术如蓝牙、Wi-Fi和LoRa等。学生应该能够设计并实现嵌入式系统的数据交换和通信功能。
⑤测试与调试。嵌入式系统的测试和调试是非常重要的,学生需要学习各种测试技术和工具,如单元测试、集成测试和调试器。他们应该能够识别和解决嵌入式系统中的常见问题,并进行性能优化和故障排除。
在课程的前5周教学中,教师仅向学生介绍了课程大纲里面涉及的一些嵌入式系统基本概念,如嵌入式系统构成、基本的输入输出设备及传感器、驱动器/执行器,并围绕一个物联网的简单应用介绍了其开发流程。这些知识无法满足完成PBL项目所需要的各种知识。同时,教师也没有为学生提供项目输出文档要求或内容,而是让学生根据项目特点自行选择所输出的所有文档和展示方式。过去,学生主要依赖教师指导或网络搜索,但得到的答案操作性很差,反馈也不及时。因此在ChatGPT出现后,笔者鼓励学生通过与ChatGPT交互来获得这些知识。当然,ChatGPT提供的答案需要学生甄别使用,学生在消化吸收ChatGPT提供的信息基础上,重新组织应用到项目中。
例如,学生通过ChatGPT能够了解在Arduino平台上如何实现血氧浓度等测量,并通过ChatGPT获知相关传感器基本原理、常用的器件及使用范围。学生还可以继续提问,得知在Arduino平台上如何使用血氧传感器MAX30102。通过这些主动探索学习,学生可以渐进地掌握完成项目所需要的各种知识。
另外,学生可以通过ChatGPT了解基于Arduino使用MAX30102的完整步骤,而这些内容无法在ARDUINO网站或MAX30102手册中直接得到,教师也不会这么详尽地指导。当然,ChatGPT给出的答案是否正确还需要学生手工验证。
由于没有MAX30102实物,学生首先在Wokwi网站[2]上进行模拟。Wokwi平台可以提供ESP32、STM32、Arduino、树莓派等开发板的模拟。Wokwi网站的仿真库中也没有MAX30102,所以学生必须了解Wokwi是否支持自定义芯片以及如何定义。这时求助于ChatGPT,则给出了错误的答案,即“目前Wokwi不支持用户自定义芯片”,而且给出的替代方案也不正确。这一例子表明,要谨慎对待ChatGPT给出的事实性答案,它们往往只是在统计意义上像个答案,但在真实世界中是错误的。
又如,借助ChatGPT来探索如何将检测的血氧浓度、心跳数据以及加速度计等数据(一个可穿戴设备上的传感器)发送到Android手机或者一个网站上进行展示。学生了解的基本知识是ESP32平台具有Wi-Fi联网功能,而物联网协议MQTT可以用于数据发送,但如何实现以及传输机制都不是很清楚,因此,可以借助ChatGPT获取相关答案。ChatGPT给出的答案如下:
要实现血氧等测量信息在手机端进行查看,您可以将ESP32与Wi-Fi网络连接,并使用MQTT协议将测量数据发布到MQTT代理服务器,然后在手机应用程序中订阅该主题以接收数据。以下是一个基于ESP32和MQTT的示例代码:
首先,您需要安装PubSubClient库,该库使得在ESP32上使用MQTT容易。您可以通过Arduino库管理器安装PubSubClient库。
然后,使用以下代码作为基础,进行修改以连接到您的Wi-Fi网络和MQTT代理服务器,并发布血氧测量数据:
//以下为ChatGPT给出的参考代码,此处略去
……
请注意,上述代码中的Wi-Fi网络设置、MQTT代理服务器设置以及相关的认证信息需要根据您自己的网络和服务器配置进行修改,确保您已经将这些信息替换为正确的值。
此外,您需要在手机端创建一个MQTT客户端应用程序,以便订阅相同的MQTT主题以接收数据并在手机端显示测量信息。您可以使用诸如MQTT Dash、OwnTracks或MQTT.fx等应用程序来监视和显示通过ESP32发布的数据。
学生继续询问。
ChatGPT给出以下类似问题的参考答案:
如何实现低功耗?
Web Dashboard图形化展示,如基于Node-RED。
手机端APP开发,如基于原生Android应用或H5技术。
……
4.PBL项目中防止利用ChatGPT作弊
高质量的PBL项目通常是解决真实环境下的问题,且是一个复杂、持续的过程,涉及多个环节。因此,筆者在项目中不要求学生将论文或书面报告作为最终成果,这些是ChatGPT容易生成的,而是要求学生结合项目特点,使用流程图、口头演示、多媒体或构建的其他表现形式,展示其个性化的解决方案。ChatGPT在这些环节里可以用来帮助学生整理思路、提供提纲和评价或比较方案,或者帮他们把自己的想法用更严谨的文字进行表述。
总结
本文介绍了ChatGPT在PBL中的应用实践。笔者认为,可在PBL教学中加大对ChatGPT类工具的使用,但教师要审慎对待其给出的答案。在面对复杂或领域特定的问题时,ChatGPT的回答可能过于简化或不完整,它可能无法提供详尽的解释或深入的讨论。总体而言,ChatGPT在PBL教学中应用具有潜在的优势和良好的发展前景,对于改善教学效果和满足学生个性化需求具有重要意义。
参考文献:
[1]ACM & IEEE-CS.计算课程体系规范2020 CC2020(Computer Science Curriculum 2020)[M].北京:高等教育出版社,2021.
[2]Wokwi.Online ESP32,STM32,Arduino Simulator[DB/OL].https://wokwi.com.
[3]Brown T, Mann B, Ryder N, et al. Language models are few-shot learners[J]. Advances in neural information processing systems,2020(33):1877-1901.
[4]Chen E, Huang R, Chen H S, et al. GPTutor: a ChatGPT-powered programming tool for code explanation[J].arXiv preprint arXiv:2305.
[5][9]崔宇红,白帆,张蕊芯. ChatGPT在高等教育领域的应用、风险及应对[J].重庆理工大学学报,2023,37(09):16-25.
[6]钱力,刘熠,张智雄,等.ChatGPT的技术基础分析[J].数据分析与知识发现,2023,7(03):6-15.
[7]陈静远,胡丽雅,吴飞.ChatGPT/生成式人工智能促进以知识点为核心的教学模式变革研究[J].华东师范大学学报:教育科学版,2023,41(07):177-186.
[8]王佑鎂,王旦,梁炜怡,等.ChatGPT教育应用的伦理风险与规避进路[J].开放教育研究,2023,29(02):26-35.
[10]贺樑,应振宇,王英英,等.教育中的ChatGPT:教学能力诊断研究[J].华东师范大学学报:教育科学版,2023,41(07):162-176.
[11]美国巴克教育研究所.项目学习教师指南(第二版)[M].北京:教育科学出版社,2008.
本文由浙江工商大学“十四五”教学改革项目“计算机类专业基于开源模式的软硬件综合课程研究与教学实践”和2021年本科教学改革项目“基于开源软硬件的物联网课程综合实践与项目案例管理平台建设”资助。