面向人工智能时代的编程启蒙教育
2023-06-02卢宇许雄宋广晨
卢宇 许雄 宋广晨
人工智能(Artificial Intelligence,AI)是模拟、延伸和拓展人类智能的技术方法与手段。随着生成式人工智能(Generative AI)技术的快速演进,社会的专业分工与我们的日常生活将发生重要变化,人类社会也将逐步进入人与智能机器协作的人工智能时代。
面向人工智能时代,我国积极推进中小学阶段编程教育及相关人才培养。2017 年7 月,国务院印发《新一代人工智能发展规划》,明确指出要“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。”2019 年3 月,教育部公布的《2019 年教育信息化和网络安全工作要点》提出,将“推动在中小学阶段设置人工智能相关课程,逐步推广编程教育。”2022 年5 月,教育部发布《义务教育信息科技课程标准(2022 年版)》,信息科技课程正式纳入义务教育,且明确需要培养学生的“信息意识、计算思维、数字化学习与创新、信息社会责任”,这些核心素养与编程教育都密不可分。
传统的编程教育
2011 年, 美国计算机科学教师协会(CSTA)和计算机协会(ACM)基于全美中小学计算机教育调研,研制了《K—12 计算机科学教育标准》。该标准将编程教育分为两个层次:培养计算思维;计算实践与编程。目的是通过学习编程语言培养学习者的计算思维,提高批判性思维和解决问题的能力,最终培养学习者的创新与创造能力。编程教育涵盖儿童编程教育与成人编程教育。儿童编程教育主要通过编程游戏、可视化图形编程等方式开展,并迅速在全球范围内普及,已有超过20 个国家(地区)将编程教育纳入中小学课程大纲与教学内容。
儿童编程教育的重要性不仅在于满足未来就业和社会需求,更关注于其所带来的“思维启蒙”价值。特别是面向零基础编程学习的学生,编程教育可以培养其计算思维能力并启发其思考问题,通过“简化问题—找出路径—解决问题”的思维过程最终解决实际问题。从20世纪60 年代LOGO 语言诞生以来,儿童编程教育的实施方式经历了较为漫长的发展时期,并取得了两次跨越性的进步。第一次跨越是编程语法的简化,为儿童打开了编程学习的大门;第二次跨越是将文本编程语言转变为图形化编程语言,让尚不具备良好抽象思维能力的儿童也能通过编程完成具体任务。
面向人工智能时代的儿童编程的转变
随着人工智能时代的到来,儿童编程教育,特别是在启蒙阶段,也需要从课程理念、课程设计、课程内容及课程形式上有所转变。
课程理念上的转变
随着以生成式人工智能为代表的通用人工智能技术的逐步成熟,社会专业分工将更加强调人机协作模式,对人的高阶思维能力的培养也更加重要。儿童编程教育理念也需要随之变革,并更加强调对计算思维等能力的培养。人工智能时代的编程方式将从传统的手动编写代码方式,逐渐演变成基于人工智能技术辅助的新型人机协作方式,学习者习得和使用编程技能的方式也將完全不同。在此基础上,编程教育不需要过多关注编程技能的培养,而应更多强调学生计算思维等高阶思维能力的培养。在可以设想的未来,开发者不再需要过多关心底层的技术细节和各种程序接口,撰写长篇幅的代码,而是通过一系列简洁且精确的指令,将自己的需求告诉人工智能模型,由模型自主产生高可用性的代码。人工智能不再是枯燥的技术,而可以成为学生学习编程的协作伙伴,帮助学生完成编程启蒙与较为复杂的编程任务。最终,编程教育可以帮助学生树立对人机共存与人机协作的正确认知。同时,学生只有具备了必要的人工智能素养,才能正确合理使用智能时代的各种工具,满足智能时代对人才的基本需求。
课程设计上的转变
在课程设计上,儿童编程教育可以与人工智能教育更多实现结合,以培养学生的计算思维和人工智能素养为目标,以学生已有的知识、技能和经验为起点,系统地设计学习活动,充分利用编程和人工智能技术解决身边生活中的实际问题。课程形式上鼓励采用项目式、探究式学习,以学生为中心,围绕一个主题进行驱动问题的设计。可以通过剧本式、游戏化等方式,基于真实问题情景设计项目式教学活动,支持学生在数字化学习环境下开展自主性学习。课程需要为学生构建沉浸式、体验式、交互式的虚拟学习环境,增强其学习的目标感、反馈频率和角色代入感,从而提高学生学习编程与人工智能的兴趣和动机,最终达成编程与人工智能启蒙的目标。为此,教学目标应围绕核心素养确定,同时关联学生数字经验,传递编程与人工智能的价值。课程设计需要重视数字化学习特点,积极运用智能设备、工具和资源,引导学生在学校与家庭等不同场景下开展自主学习。在教学实践中,应尊重学生的认知发展规律,从直觉感知到抽象逻辑思维的过程中注重体验,并提供可感知、可触摸的环境,让学生更深刻地感受编程与人工智能的运行过程和基本思想。
课程内容上的转变
课程内容上聚焦计算思维的培养与智能化编程的应用。
计算思维作为计算机解决问题的方式,强调问题的拆分与处理。例如课程内容中可以创设特定场景,提出具体问题并引导学生选择合适的工具和信息解决问题。在解决问题的过程中,引导学生准确描述所需完成的任务,并将该任务拆分成多个具体步骤。在此基础上,要求学生基于这些步骤之间的先后顺序,使用自然语言或流程图等形式描述多步骤任务的执行过程,最后,可以使用顺序、分支、循环等基本控制流程,完成各步骤的子目标和子任务。这类课程内容的设置,不但可以培养学生的计算思维能力,还可以增强其实际问题的解决能力。
智能化编程的应用需要帮助学生认识到编程的基本过程与未来智能化编程的方式,以及编程在社会生活中的作用。这部分课程内容需要引导学生理解编程如何为人类社会各个领域解决实际问题。通过该内容的学习,学生能够对智能化编程方式有所认识,具备使用编程解决实际问题的意识和兴趣。例如,可以创设特定场景,让学生了解通过准确的自然语言或流程图描述具体需求后,人工智能可以帮助我们自动完成程序的编写、调试和运行。同时,学生也需要了解程序可能会有错误或不足,需要通过人工或智能化方式进一步修改、优化程序,使程序可以更好地满足需求。最后,通过运行生成的程序并得到理想的输出结果,可以帮助学生了解如何建立有趣且具备智能的丰富应用。
展望
面向人工智能时代的编程教育,可能成为未来信息科技教育领域的重点和热点之一。随着技术的发展与普及,智能化编程教育将越来越受到重视。我们可以期待更多基于人工智能的编程启蒙课程与工具的开发,以更好地帮助学生了解和掌握新形态的编程。同时,对儿童编程和启蒙的过程,需要重视和开展过程性评价,需要对学生在完成编程任务过程中表现出的多维度认知状态进行合理测量与估计,构建科学合理的指标体系和计算方法。在此基础上,针对编程任务的完成情况,构建结果性评价指标,重点关注学生各项学习目标的达成度与问题解决能力的提升。
以生成式人工智能为代表的新技术正在加速演进过程,可以预见更加智能化、人性化的编程方式与工具将在短期内出现,也将能够更加准确地对多种编程语言进行结构与算法分析,并根据用户任务需求生成代码或进行自动调试。因此,教育领域需要积极应对,并探索符合中国国情的下一代青少年编程启蒙教育模式。同时,应该鼓励高校、头部人工智能企业与一线教育工作者协作完成编程启蒙与相关课程设计,积极倡导适应时代要求的编程教育理念与新型课程形式。另外,需要充分认识到这类新技术可能改变未来社会对于软件开发等从业者的职业要求,对相关社会需求也具有深刻的变革性意义。当通用人工智能已经逐步变为可能,编程教育作为信息科技教育的基础之一,应该积极紧跟时代的步伐并作出改变。