融入真实场景的“数据与编码”项目设计
2024-06-28王玮
王玮
摘要:本文以《义务教育信息科技课程标准(2022年版)》为依据,围绕“数据与编码”模块,结合小学新生信息采集这一真实问题,设计并实施了一系列微项目教学活动。文章从体验手动信息录入开始,逐步向学生介绍并应用编码技术,引导学生认识到编码在信息处理中的关键作用,并通过动手实践与优化设计,构建了一个优化后的信息采集系统。
关键词:真实情境;数据编码;信息采集系统
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)11-0030-04
在教学实践中,教师设计的项目情境往往与学生的日常生活相去甚远,原因是项目大都构建于虚构的情境之上。虽然这样的设计能满足教学任务需要,但却让学生感到枯燥无味。《义务教育信息科技课程标准(2022年版)》(以下简称“新课标”)倡导以真实问题或项目驱动学习过程。为达成这一目标,教师需要从现实生活出发,挖掘与学科内容紧密相关的实际案例与应用场景,设计既符合实际又贴近学生生活的教学项目。本文结合义教新课标中的“数据与编码”模块,设计了一个贴近真实生活应用的项目——小学新生信息采集。该项目面向真实应用场景,不仅使学习变得更加有意义和有趣,还帮助学生建立起学科知识与现实世界的链接。
项目设计背景
每年暑假,一年级招生现场总是异常繁忙。在这期间,学校需要登记大量的新生报名信息。传统的录入方式为手动录入,不仅速度慢,还容易出错。因此,笔者提出结合“数据与编码”的知识设计一个新生信息采集系统,利用编码技术快速采集新生个人信息,以提高效率和准确度。在本项目中学生不仅能深入探索数据编码和解码的全过程,还能清晰地认识到编码在数据处理、传输、管理中的重要性。同时,学生还将借助生成式人工智能工具辅助学习,一步步实现和完善自己的方案。
流程体验与项目设计
四年级的学生对入学报名的具体流程并不熟悉。因此,在项目伊始,笔者首先进行流程体验与项目设计,确保学生对入学报名的流程有基本的了解,并对项目进行概要设计。这个任务在微项目一和微项目二中完成。
微项目一:信息采集流程体验
为了让学生对入学信息采集流程有真实的体验,笔者采用真实表格和模拟数据供学生体验。
(1)填写实践。学生使用模拟数据在教师提供的表格内填写入学报名信息(包括姓名、性别、民族、出生日期、身份证号、住址、联系电话等)。
(2)发现与反思。在信息录入的过程中学生会发现,仅仅依靠姓名来识别个体是不够的,因为存在姓名重复的可能性。当面对多个相同姓名的学生时,无法准确区分。
(3)身份证号码探秘。学生通过查询资料及与其他信息项目对比,可了解该号码是如何编码个人信息的。此外,引导学生思考,在已提供身份证号码的情况下,为何还需要单独提供出生日期和性别信息。这将帮学生认识到,尽管身份证号码包含丰富的个人信息,但在实际应用中,直接提供某些关键信息能够更加方便快捷地进行信息处理,避免每次都需要对身份证号码进行解码。
微项目二:优化信息采集流程
经过项目一的上手体验,学生对信息采集流程有了切身感受,并亲身体会到原有流程的诸多不便。接下来收集学生的反馈,师生共同探讨如何运用编码技术优化提效。
(1)梳理流程,找出关键点。学生梳理反馈,总结旧流程:家长提供学生信息,由学校工作人员现场录入,同时进行信息校对。汇总学生反馈发现,手动录入信息的方式烦琐且耗时,尤其是在录入常规信息时效率低下。原因在于现场录入耗费时间过长,这是提高学生信息数据采集工作效率的关键点。
(2)针对问题,改进流程。针对发现的问题,学生通过小组讨论提出改进建议。有两个优化方向:①更换数据录入方式,用更快捷的数字化方式减少耗时。②减轻单次录入的压力并提升整体的工作效率,采取信息预录入策略分散录入工作量。那么,可能的改进方式就只有两种:①使用在线文档,但是安全性低。②根据生活中扫码的经验,使用条形码或二维码对数据预编码。两种方法都是把录入的工作量分散给家长,对身份证号码的合法性校验可以在家长录入信息时完成。使用在线文档的安全性不高,所以选择使用扫码方案。
微项目三:编码解码体验
优化后的业务流程编码和解码是提质增效的关键。图形化的编码有条形码和二维码两种,至于选择哪一种,要由学生动手体验评估确定。
(1)技术实验。学生通过网络搜索在线编码工具,并尝试用自定义数据生成条形码和二维码,然后使用在线解码器或扫码枪进行解码。通过编码解码的实验体验,总结两种编码系统的特性和限制。
(2)实验结论。条形码有多种条码类型(Code128、EAN13等),其中Code128条形码的编码能力覆盖了大写字母、小写字母、数字及一些特殊字符,而二维码的编码能力则更强,包括中文字符在内的各类字符。Code128条形码在数据量增加时会伸长其身躯,而二维码则将数据更加密集地封装在规定尺寸的方格内。当Code128条形码因数据量的增大而变得过长时,可能会超出扫码枪的解码能力,所以二维码是当前场景最合适的选择。此外,扫码枪在输出扫描结果后会自动换行,这一点在进行连续扫描时尤其重要,能够保证数据录入的连贯性和整洁性。
(3)实践学习。①使用Windows或统信UOS的设备管理器程序观察扫码枪连接到计算机后增加了什么设备。②思考设备管理器里增加的键盘设备是如何将解码结果输入到计算机的。
微项目四:解密中文编码
在新生个人信息的数字化录入过程中,不可避免地会遇到中文字符。然而在微项目三的实践中学生会发现,非Windows系统上并不能正常解码中文。既然已知扫码枪被操作系统识别为键盘,那就通过实验揭开它输入中文的秘密。
(1)技术实验。由教师提供一个使用Python编写的键盘事件记录器,以捕获并展示键盘按键的按下和释放事件,监视扫码后扫码枪的键盘动作。程序通过定义on_key_press和on_key_release函数来捕获键盘事件。当按键被按下或释放时,这两个函数分别被调动,并将事件详情(按键名称)作为参数接收,进一步调用其他函数将按键动作信息展示在界面上。
(2)实验结论。扫码枪在解码后会模拟键盘敲击,逐个字符将解码后的信息输入到光标所在位置。对于中文字符则是按下Alt键后,通过输入一串数字编码的方式输入。
(3)实践学习。①使用“汉字字符集编码查询”工具查询“周”的编码,看是哪种编码。②查询其他汉字的编码,尝试在Windows系统上使用编码录入汉字。
微项目五:确定传输编码
扫码枪的中文输入方法并不适用于所有操作系统,特别是使用Linux内核的国产操作系统(如统信UOS、优麒麟等)。既然扫码枪是模拟键盘来输入信息的,如果能找到一种方式将中文字符编码为ASCII字符集的编码串,那么,不仅可以实现其在二维码中的存储,还能在需要时将其还原为中文信息,这无疑对信息的存储与传递至关重要。学生通过向大语言模型提问题(有没有一种用于信息传输的编码方式能把中文字符编码为ASCII字符,还可以解码回中文?),可以获得使用base64编码的建议。
微项目六:信息组织优化与二维码生成
(1)确定信息拼接策略。在拼接姓名、民族、住址等个人信息的过程中,学生会面临一个非常棘手的问题:各信息项的长度差异会导致编码后字符串长度不一致。以姓名为例,不论是简约至两个汉字的“张强”,还是包含更多字的“杨文博”和“欧阳辰星”,其长度明显不同。民族信息也是如此,如“汉族”“维吾尔族”“柯尔克孜族”。相对于这些变长的信息项,出生日期、身份证号和手机号等信息项长度是固定的。为了在解码后能够清晰、准确地区分每项个人信息,必须引入特定的分隔符来标记各个编码字符串的边界。这里,学生需要意识到,选取理想的分隔符必须考虑两个主要条件:①分隔符应该来源于ASCII字符集,以保证在不同操作系统上的扫码兼容性;②分隔符不应与base64编码使用的字符集重叠,以避免在解码过程中产生混淆。这两点条件共同引导学生选择一个既明确又可靠的分隔符。“|”在本文中将被采用作为信息分割的标记。
(2)精简编码信息。在前面的项目中,学生观察到随着加入二维码的数据量增加,其复杂性也在提高。为了保持二维码清晰的可读性及高效的解码率,优化掉数据中的冗余是必要的。以身份证号码为例,由于它涵盖了如出生日期和性别等信息,可以避免在二维码中重复这些数据,从而使二维码设计更加简洁,提升其编码的效率。
(3)规则实践检验。在教师的指导下,学生使用“|”作为分隔符来拼接各项信息。对于包含中文字符的姓名、民族、家庭住址等,使用在线工具对其进行base64编码后再进行拼接。以张翰林(本文所涉及个人信息皆为虚构,下同)学生为例,他是满族,身份证号为37132120210817321x,家住阳光小区3号楼1单元502室,联系电话是13900139001。经过中文信息项base64编码预处理和使用“|”进行分隔拼接后的个人信息字符串如下:
5byg57+w5p6X|5ruh5peP|37132120210817321x|6Ziz5YWJ5bCP5Yy6M+WPt+alvDHljZXlhYM1MDLlrqQ=|13900139001
随后,学生利用在线转换工具将编码后的字符串生成为二维码。通过扫码枪测试解码效果,再对base64编码部分进行解码,以匹配和验证原始数据,确保在现实应用中可以准确还原数据。
在此活动中,学生通过模拟新生信息采集的数据处理业务流程,体验了从编码到传输再到解码的每个关键步骤,不仅加深了对“数据与编码”模块知识的理解,而且为后续的系统构建奠定了坚实的理论和实践基础。
微项目七:借助AI大模型构建信息采集系统
教师整合前六个项目的成果,描述需求并由师生协力利用大语言模型编码构建系统,同时进行测试、调整、与模型交互反馈,最终形成一个可以解决实际问题的全流程解决方案。
(1)回顾整合,梳理设计。教师带领学生回顾先前的学习活动,基于已有成果梳理需求画出设计图。各小组根据设计图明确设计需求和细节(如二维码生成页身份证号码带校验功能、计算机端界面增加导出功能等),完成设计文档,并尝试撰写与大模型交互的提示词。
(2)模型编码,反馈迭代。将设计好的提示词提交给大语言模型,利用大模型形成初步的编码方案。师生共同参与到方案的使用测试中,在实践测试过程中,查找问题反馈给大模型,经过多轮迭代完善作品。
①家长端编写。向AI大模型提问:“制作一个网页,标题是‘××小学新生个人信息,下面一个表格用来填写个人信息(姓名、民族、身份证号、住址、联系电话),最下面是一个提交按钮。点击提交按钮会先检查身份证号码的合法性,如果身份证号码输入错误会提示重新填写。如果没有错误,把姓名、民族、家庭住址使用base64编码,然后把编码的结果按姓名、民族、身份证号、住址、联系电话的顺序用‘|作为分隔符拼接在一起。然后转成二维码放到最下面。”大模型会根据学生的提示词给出完整的网页源码,并将源码复制到网页编辑器,在浏览器中可以对该网页的所有预期功能进行测试。若AI大模型生成的网页存在问题或者功能不符合预期,学生可以将具体的问题进行反馈。如果点击提交按钮后既没有检查身份证的合法性也没有生成二维码,则可以告诉AI大模型:“点击提交后没有反应,你查找一下问题。”AI大模型将根据反馈信息和对话,对源码进行相应的调整和优化,以确保最终结果符合需求。
②学校端编写。学校端程序的编写过程与家长端类似。提示词示例如下:“编写一个Python程序,窗口的上端是一个文本输入框,下方是一个表格,底部是一个导出到Excel的按钮。文本框和导出按钮的高度固定,中间表格的高度随窗口的变化而变化。表格共有7列,从左到右表头依次是姓名、性别、民族、出生日期、身份证号、住址、联系电话。”文本框接收到输入数据,在按下回车键后使用“|”符号把输入数据分割成五段,依次是姓名、民族、身份证号、住址、联系电话。将姓名、民族、住址使用base64解码,从身份证中提取出生日期、性别,并将其添加到表格中。点击底部的导出按钮可以把表格中的数据导出到Excel。调试大模型编写的Python程序相对复杂一些。除了软件功能BUG,学生还会遇到缺少库的问题,这个问题无需向大模型询问,在教师的指导下安装相应的库即可。现阶段大模型编写的程序往往在细节上考虑得不够全面,如果在导出Excel时发现身份证号码的后四位数字变成了0,需要在导出数据时确保身份证号码被当作文本处理。可以这样向大模型说明:“在导出Excel的时候身份证号码请使用文本格式。”至于程序运行中的错误,可以直接将报错信息反馈给大模型,由其根据报错信息修正程序。经过多轮迭代,配合网页端使用模拟数据进行测试运行。
项目教学反思
在本项目中,学生经历了一系列富有挑战的活动,从设计信息登记表的初始步骤到编码技术的深入探索,再到信息优化的实际操作,最终在教师的引导下利用AI大模型实现零代码的系统构建。项目不仅让学生深入理解了数据处理和编码的基本原理,而且让他们亲身体验了将技术应用于解决现实问题的全过程。更重要的是,通过与AI大模型的互动,学生学会了如何提出明确的指示和反馈,这对于他们未来在信息科技领域的学习大有裨益。