计算思维视域下初中Python程序设计教学策略

    陈澜

    开展和普及中学生程序设计教育,是教育信息化2.0的重要组成部分,是培养学生信息素养和计算思维的重要载体。2017年国务院印发的《新一代人工智能发展规划》中指出要在中小学阶段逐步推广编程教育,随后在教育部发布的高中信息技术课程标准修订版中至少有六个模块涉及编程内容。为了响应国家号召,为国家未来人工智能的发展建立后备人才基础,需要一线信息技术教师积极主动地对被广泛应用于人工智能研发的Python语言进行教学研究,通过开展Python程序设计的教学实践培养学生的计算思维。

    ● 对培养学生计算思维的理解

    第一,计算思维是中学信息技术课程标准中规定的学生所需要形成的核心素养之一,与信息意识、信息社会责任以及数字化学习与创新这三项核心素养相比较,它最能体现信息技术课程的学科本质。同时,计算思维作为一种思维方法,可以在运用计算思维解决问题的过程中与其他三种核心素养紧密结合,对它的培养可以促进信息技术核心素养的全面发展。

    第二,在初中階段对学生计算思维的培养应该包含两个层面,即计算思维的形成与计算思维能力的发展。和其他类型的思维一样,计算思维不是某种具体的知识或操作技能,无法由教师“教给”学生,它的形成需要学生个体在解决问题的过程中通过不断的训练、内化、运用进而逐步形成、生发、发展。

    第三,计算思维包含于学生核心素养中的“关键能力”,其对学生终身发展的价值与意义不言而喻。“从信息技术教学的总体进程来看,计算思维主导的教学不失为一种可行的实施思路。”思维的培养需要借助一定的知识作为媒介,对计算思维运用最直观的表现之一就是程序设计,选择Python程序设计作为培养学生计算思维的载体,既是响应国家相关政策,也符合信息技术学科课程建设的需求。

    ● 计算思维视域下程序设计的教学策略

    学生的学是课堂教学的出发点和归宿,课堂教学应围绕学生如何学展开,这是以人为本教学观的基本要求,是学科核心素养形成的必要前提,也是计算思维视域下的教学策略选择与使用的根本导向。Python程序设计与初中信息技术课程其他板块的内容区别很大,在教学的起始阶段会涉及大量的陈述性知识,并逐步由以陈述性知识为主过渡到以程序性知识为主。因此,Python程序设计课堂教学策略的选择要从学情分析、教材分析、教学目标以及教学内容等多方面因素进行思考。

    1.先学后教策略

    与其他学科相比较,初中信息技术学科课时少并且一般情况下是不允许布置课后作业的,以至于在Python程序设计课程的实施阶段,学生课前没有预习,课后没有复习,这就意味着学生在上课时没有疑问、没有目标也没有方向。然而,学生是解决课堂教学中矛盾的主体力量,教师则应处于辅助学生解决这种主要矛盾的主导性地位。因此,教师需要在课堂教学的过程中让学生充分与“物”进行对话(本文指的是阅读、学习教材),激发其中的矛盾,协助学生解决矛盾,这样才能真正体现学生在学习中的主体性地位,培养学生的核心素养,进而落实学科核心素养的培养这一教学目标。笔者认为,在程序设计的课堂教学中,学生的学习也应该是从阅读教材开始,回归“读书学习”这一质朴的语境,给予学生足够的时间对教材进行自学,在学生完成自学的基础上开展程序设计教学。

    2.情境化策略

    为了有效开展Python程序设计课堂教学,教师需要给学生创设贴切学生生活实际并能够激发学生学习兴趣与热情的教学情境。在创设情境时,需要注意所创设的情境要与学生当下的学习经历、家庭生活、社会环境产生紧密直接的联系。情境的创设有哪些具体的要求?笔者以Python程序设计中的条件语句为例进行说明。

    首先,情境的创设要能贴合学生的日常生活实际并且生动形象,在架设形象思维与抽象思维的桥梁的同时,使学生知道所学习的内容是什么,有什么实际用处,如在上课伊始,请同学们观看学生每日进校时刷脸通过闸机的视频,提问在此过程中人脸识别程序是如何工作的,如何用流程图进行描述。

    其次,情境的创设要能体现Python程序设计的特质,要能体现本节课学生所学习的内容在生活中的使用条件以及存在价值与意义,要能内含课堂教学中要解决的问题并能有效地促使学生积极思考,如在授课中,为增加学生对条件语句的理解,教师提前设置好在体验的过程中出现的与条件语句相关的异常情况,请学生上讲台体验可进行人脸识别的简化版闸机系统,感受条件语句执行的特点。

    最后,情境的创设要能使学生的情感有效地融入到学习过程中,学生积极情感的介入能够极大地激发学生学习的动力,变“要我学”为“我要学”。如在学生完成程序编写之后,用他们自己编写的程序在简化版闸机系统中运行,检验其程序是否编写正确,正确的程序能够实现人脸识别并打开闸机。

    3.整体化策略

    计算思维视域下Python语言教学设计的整体化策略要求我们在课堂教学中需要从教学内容的整体化和学生学习的整体化两个方面进行考量。

    ①教学内容的整体化策略。Python语言教学内容的整体化需要通盘考虑Python语言各个知识点与整体之间的联系,既要预防部分与整体之间的割裂,又要防止部分与整体的含混不清,不能突出课堂教学的重点;既要明确部分内容的教学可以对计算思维的培养起到作用,也要明确部分教学内容所能起到的对计算思维培养的作用在整个计算思维能力形成过程中所处的地位、价值、意义以及局限性。以Python程序设计的循环结构教学为例,首先,教师既要帮助学生明确循环结构是程序设计中三大基本结构之一,循环结构的应用可以使程序的编写化繁为简,可以有效控制程序的结构并可以与其他两种程序设计结构相结合处理复杂的问题,也要确保通过学习后学生能够掌握Python循环语句for循环、while循环各自的语法规则和适用范围;其次,循环结构教学对计算思维中的“分解”(分解、有序、递归)、“抽象”(删除、过滤、提取、符号化)、算法描述等方面具有重要的培养作用,但是对计算思维中的“概括”与“评估”所能产生的培养作用就非常有限。

    ②学生学习的整体化策略。学生学习的整体化策略是指在全面考虑初二学生智能特征、信息技术课时安排计划以及Python程序设计的特性后,在课程实施时采取先分后总的教学策略。先分——教师采用教学内容的整体化策略,选择探究式教学法、任务驱动教学法,按照章节知识点的逻辑顺序帮助学生完成Python程序设计的学习,学生在此过程中了解了Python程序设计的基本概念,掌握了Python程序设计的基本方法,锻炼了计算思维各组成部分的应用能力并可以独立地编写简单的Python程序。后总——教师采用活动化策略和自主化策略,选择小组合作教学法以及项目式教学法,学生在教师的指导下,在与教材的对话、与学习伙伴的探讨中,利用已有的Python的学习经验,充分锻炼、内化、运用计算思维,借助Python语言逐步、系统、科学地编写代码,实现目标项目。

    ● 计算思维视域下程序设计的教学评价策略

    1.教学前的评价

    此环节教学评价的目的是:了解在进行Python程序设计教学之前,学生对预备知识和技能掌握的程度;评估学生已具备的分解、抽象、算法、概括以及评估等五方面能力;发现学生的兴趣、爱好、思维特点等。通常可采用访谈、网络问卷以及思维测试等形式进行此环节的教学评价。

    2.教学中的评价

    在教学过程中及时地开展评价活动,既可以帮助教师了解学生对教学目标的达成情况,也可以使学生及时了解自己对学习目标的完成情况。现在,网络上有很多开源的在线测评系统(Online Judge),教师可以在校内搭建一个内含Python在线评测系统的主题学习网站,充分利用主题学习网站开展多维度的教学评价。

    ①即时反馈策略。教师将课堂教学中的程序设计练习题发布在主题学习网站上,学生完成代码编写后直接提交到在线测评系统中,在线测评系统自动对代码进行测试、反馈。這种即时反馈既提高了学生学习程序设计的效率,也可以方便教师及时了解学生对课堂教学目标的掌握情况,为课堂教学进度的动态调整和教学方法的选择提供参考。

    ②“消题”积分升级策略。目前,积分升级策略在社会生活中的多个领域得到了广泛的使用,它对激发用户参与热情有着强劲的推动作用,如游戏中的积分升级、QQ号的积分升级等。将积分升级策略引入到教学评价中,有利于营造积极竞争的学习氛围,激发学生的学习动机。在实施“消题”积分升级策略时,要注意明确级别的梯度、积分的规则、升级规则以及奖励规则等。

    ③学习共同体策略。主题学习网站不应只是一个Python在线测评系统和积分升级平台,它应该承载更多的应用,发挥更大的价值。在教师的引导下,学生可利用主题学习网站建立线上学习共同体。在网站上,教师可以提供给学生参考资料、学法指导、教学视频、疑难解答等;学生可以记录自己的Python程序设计学习经历、发布学习感悟、讨论学习方法、召集项目成员、发布悬赏任务等。通过主题学习网站开展的教与学,学生对Python程序设计的学习突破了课堂教学的时空限制,可线上与教师、同学展开充分的协作学习,使得学习可以随时随地发生,这样既有利于学习积极性,也有利于知识的建构。

    3.总结性评价

    总结性评价的主要目的是对学生完成自选程序设计项目的过程以及项目成果进行评价,其中包含了学生的自我评价、同学评价以及教师评价。在实施总结性评价时,需注意评价量表设计的易用性、客观性以及贴合性。评价量表要体现出对学生计算思维技能(分解、抽象、算法、概况、评估等五方面的发展水平)的评价、对学生项目成果(主题、功能、程序、界面、创造性)的评价以及对学生在项目实施过程中的学习意志品质(好奇心、承受力、自信心、毅力)的评价。

    ● 结束语

    在日常教学中,教师必须认识到计算思维有“广义”与“狭义”之分,利用Python程序设计教学以及初中阶段信息技术学科所培养的计算思维较易偏向于“狭义计算思维”的范畴,所以在日常的教学工作中教师应该有意识地拓展学生对计算思维认识、理解与应用的广度,避免管中窥豹、一叶障目。