吴 江
(上海师范大学附属中学 上海 200124)
随着计算机的问世,信息技术核心由计算机转化为互联网,再由互联网转化为数据。信息技术核心发生变化,具体表现为知识更新与技术革新速度剧增,社会现代化、智能化水平大幅提升。数据计算每时每刻都在发生。“得数据者得天下”,谁能在这个数据暴增的时代掌握数据处理与分析的能力,谁就能在未来占据一席之地。2006年,“计算思维”的概念首次被提出,这一概念对人们解决问题的过程进行了描述。概念一经提出,迅速引起了各界专家学者的关注。《普通高中信息技术课程标准(2017年版)》将计算思维作为高中学生信息课程教育的核心,需要各学校结合该校的基本条件与特色开展信息技术教学。在高中阶段,将编程类课程(如Python编程课程)作为高中学生的必修课程,成为计算思维培养的主要阵地和媒介。因此,高中编程类课程如何与计算思维能力的培养相结合,以及如何对学生的计算思维进行有效评估等问题值得深入探究。
(一)计算思维的内涵
周以真在美国计算机权威期刊〈Communications of the ACM〉杂志上率先明确提出了计算思维的定义,将计算思维的培养与研究引入到中小学阶段。我国的《普通高中信息技术课程标准(2017年版)》中正式指出,计算思维是指能够运用计算机科学领域的思想方法,在形成问题解决方案过程中产生的一系列思维活动。该标准的培养目标中指出,具备计算思维的学生,能够采用计算界定问题、抽象特征、建立结构模型合理组织数据;
通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案;
总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。具体表现为解决问题过程中的形式化、模型化、系统化、自动化。
从上述的定义中可以看出,计算思维是一系列思维过程,在这个过程中围绕具体的问题展开,人们在解决问题的过程中去思考和认知,这个过程不仅包含编程技能、算法概念等技能层面的内容,还应体现分解能力、抽象能力、设计能力、概括能力、社交能力以及评估能力,是一种综合素质的培养。因此,在培养计算思维时应注意如下特征:
特征一,计算思维的主体是人,而不是计算机本身。人们利用计算思维可以解决日常生活中遇到的问题,可以用来处理面对的各类关系,甚至可以用来处理人际关系。人是计算思维的主体,赋予计算机思想,帮助人解决问题。在编程课程中,要让学生通过自身的思维过程,寻找计算机可执行的步骤与方法,从而解决实际问题。
特征二,计算思维是抽象的,而不是具体的。在我们解决问题时,它给我们提供了思维方式,而不是具体的某个工具。在编程课程中要突出解决问题的思维过程,降低工具对教学的限制。
特征三,计算思维更多的是体现出高层次的认知水平,它与数学思维、工程思维相互补充。
特征四,狭义的计算思维是指运用一些思想方法去得到问题的解决方案,这些思想方法来自计算机科学领域。在利用计算机解决问题的过程中,学习者总结过程中的方法步骤,在生活中举一反三,活学活用,迁移到其他相关问题的解决中。
(二)培养计算思维的重要性
学生在高中阶段计算思维培养的重要性主要体现在两个方面。
一是培养计算思维顺应高中生思维发展。在高中阶段,学生的思维意识通过小学和初中阶段的培养已经逐渐成熟起来,他们的主观判断能力较强。高中阶段各类课程的难度提升,知识储备逐渐丰富,能够逐步进行分解、抽象、归纳以及评价等操作,对算法、逻辑、推理也有了个人的理解,学生在完成复杂性与灵活性更高的任务时,学习能力和知识水平的提升都需要计算思维的进一步提升,计算思维能帮助学生更好地应用所学知识,做到问题意识的建立与独立思考能力的提升。
二是计算思维是信息时代重要的核心素养。信息化时代下计算机应用技能已经成为每个人的基础能力,仅掌握工具的使用已经无法适应当今时代对人才的需求,现在更看重信息素养与计算思维等核心素养的培养。《普通高中信息技术课程标准(2017年版)》将计算思维列为信息技术学科的四个核心素养之一,使得计算思维的培养成为高中信息技术教育的重要内容。计算思维的核心体现在提取问题、分析问题、设计过程、解决问题的过程上,在日常生活任何情境中都需要解决问题,因此,都可以应用计算思维能力来实现。高中教育做为基础教育的最后阶段,计算思维这一核心素养的培养就是高中阶段的重要任务。
(一)Python编程课程有助于培养学生计算思维
在高中阶段,高中信息技术课程一方面加强学生对数字化软件工具的熟练程度,另一方面,必须格外重视培养学生的计算思维能力,关注其提出问题、分析问题与解决问题的能力。目前,通过高中编程课程来提升学生的计算思维成为主要的教学方法。
编程语言有很多种,如常见的C语言、C++语言、JAVA语言、Python语言等,不同的语言拥有各自的特点,在不同的领域发挥重要作用。在以往的编程课堂中,由于程序语言复杂、学习难度较高,教师不得不将教学重点放在了程序语言的语法与使用技巧上,没有引导学生利用编程语言解决实际问题,也没有突出解决问题的思路。
Python语言是由吉多·范罗苏姆(Guido van Rossum)在1989年开发的一种面向对象、解释型的计算机高级程序语言,使用者可以免费使用Python进行程序编写。Python具备代码开源、语法简单、类库丰富、功能强大、支持中文等特点,对于编程语言的初学者而言容易入门。Python语言的设计更接近自然语言,弱化了对程序语法的规则,因此,Python语言相较于其他编程语言的学习难度更低、适用性更广,在高中编程语言教学课堂中可以有效减少学生修正语法错误的时间,降低工具使用难度,从而关注利用编程语言解决实际问题的过程。
(二)Python编程课程培养学生计算思维的要求
1.以解决具体问题为导向
计算思维最突出的表现之一就是问题解决的能力。学生可以在教师引导的问题解决过程中不断地吸收知识,培养自身的问题解决能力。教师通过对教学内容的把握,结合具体的情境,以任务驱动的方式,并辅助一些教学手段来启发学生解析问题,同时鼓励他们采取自主探究和合作探究的方式来获取问题的解决方案。在整个问题解决的过程中,学生需要经历问题内容提起、问题分析、算法的设计、代码的实现、结果的生成等环节,让学生在该过程中不断提升自身解决问题的能力。与此同时,在过程中会涉及教学知识的应用、Python代码编写、小组合作交流以及表达陈述能力等,这些能力的提升,最终表现为学生计算思维的整体提升。
2.尊重学生的水平差异
学生在进行Python语言学习时,会受到一些自身因素的影响。一方面是之前不同地区、不同学校的信息技术教育使得学生的计算机操作水平存在差异,学生对计算机基础知识的了解存在一定的差异;
另一方面是学生的学习兴趣不同,当然,学习能力也不尽相同。因此,教师在进行教学活动时,由于这些外界因素的影响,很难做到考虑到每位学生的内在需要。教师在进行授课时要充分考虑这些因素,尊重学生的水平差异,加强对学生知识基础的培养,并且在授课时进行案例拓展,鼓励学生积极思考,建立课堂案例基础任务与案例拓展任务之间的联系,以这种方式培养学生的计算思维。
3.以教师主导学生主体为准则
在实际教学过程中,教师需要发挥主导作用;
要保证学生在实际的学习过程中的主体角色,优化教学效果。保证教师的主导作用,一方面是为了保证教学进度的推进与教学目标的达成,另一方面,Python作为一门编程语言,虽然它具有“重算法、轻语法”的特点,相较于其他编程语言来说,简单方便易上手,但在代码实现与程序算法的设计上仍具备一定的难度,需要教师发挥主导作用,在有限的教学时间内依据教学进度安排进行教学,保证教学效果的优化。
为保证学生的主体角色,要通过教师引导学生进行问题分解,“从大变小”,“大”指的是难度大的问题,“小”指的是难度小的问题。将“大”变“小”之后,学生可以逐步求解难度小的问题,从而进行整合,最终解决难度大的问题。在这一过程中,要培养学生主动掌握知识的热情,逐步让他们将问题处理方式不断内化,从而促进思维的转变。
4.以掌握Python语言为基础
Python程序作为培养计算思维的工具载体,虽然Python语言的语法相对简单,接近人类语言,但作为一个计算机编程语言,仍需要学习其语法规则和常用的程序逻辑。在Python语言过程教学过程中也要充分体现以解决问题为导向的思路,围绕问题的解决来组织知识内容,不再以知识为导向设计课程。一方面可以实现学以致用,提升学生的学习兴趣;
另一方面,也能发挥学生主体教师指导的准则,让学生掌握更多的自主权,专注解决问题所需的知识,降低学生学习语言的难度。
结合计算思维培养的需要,Python编程课程教学设计从前期教学分析、教学活动设计、教学实施过程设计、教育评价设计四个阶段来进行。
(一)前期教学分析
1.教学目标分析
Python编程课程的目标之一就是要提升学生的计算思维。新课标中对学生的计算思维水平提出预备级、水平1、水平2、水平3的等级划分,每个等级都提出了计算思维的培养目标。
预备级要求学生能够认识到数字化表示信息的优势,结合教师给定的任务,能分析任务要求,识别任务本质,能用流程图表示解决任务的关键过程,选择Python工具解决问题,了解到Python工具可以更有效率并且对问题的最终解决更有帮助。
水平1要求学生结合教师的给定任务,进行需求分析,明确要解决的关键问题,能提取问题的基本特征,并进行抽象处理,选择合适的形式化工具对问题进行表述,能设计基本算法,借助Python语言来实现算法,并且能够根据问题解决方案,进一步获取、组织、分析数据,能在应用中解决其他相关问题。
水平2要求学生能够对较复杂的任务进行分析,采用模块化和系统化的方法设计解决方案,在利用Python完成任务时,能使用适当的数据类型对任务中所涉及的数据进行表示,在算法选择上,更细致地进行考量,选择合适的算法,用Python语言来分块实现模块功能,最后进行模块整合,得出整体解决方案。
水平3要求学生针对整体解决方案进行全面的评估,对解决方案进行迭代优化,并且要求学生在处理学习和生活中的实际问题时联系上述问题解决过程,综合表现为学生计算思维的提升。
2.学习者分析
首先,了解学生的特征信息,能在进行Python编程课程教学活动的设计时,结合学生的学习风格,有针对性地设置知识案例内容。然后,需要了解学生的编程基础,若学生在小学和初中接触过Python语言之外的编程语言,在教学设计时教师可以适当对比,突出工具的通用性。最后,需要了解学生的思维水平,高中阶段的学生具备了一定的数学思维,也有了抽象推理能力,利用学生已经具备的思维能力解决问题有助于发展学生的计算思维,也能为计算思维的发展水平和教学目标提供参考。
3.学科知识分析
基层思想政治工作是激活力、促发展的软实力。基层发展离不开规模、技术、装备、资金等方面的硬实力,同样离不开思想政治工作的软实力。在企业做强、做优的过程中,理想、信念、意志、责任、境界、作风等精神方面加强了,硬实力就有了核心、灵魂。
本研究教学内容为高中Python编程基础课程,知识内容较为丰富,但内容相对抽象,给发展学生计算思维创造了有利条件。利用Python课程知识内容的这一特点,可以将教学知识内容具体化,就是把教学内容设计成一个或者多个教学活动环节,让每一个环节任务都足够明确。
4.教学策略分析与设计
结合学生的日常学习生活,从中挑选出适合教学内容的情境进行设计,激发学生的认知热情,对相关问题进行分析分解,使学生在学习基本知识之后,掌握案例的基本操作。
(二)教学活动设计
教学活动设计是该教学设计模型的关键内容。为了完成教学目标,教师与学生需要共同参与一系列的教学活动。在该教学过程中,需要分别从教师活动与学生活动两个方面进行设计。在设计教师活动时,思考教师需要做哪些准备来加强学生计算思维的培养;
在设计学生活动时,也需要考虑什么样的方式能够更好地促进他们计算思维的培养。
1.教师活动设计
前期阶段,教师首先需要确定教学任务、分析教学目标、准备任务知识点、设定教学流程,然后细化教学环节的设计。同时,需要根据实际情况,选择问题或者项目来开展教学活动设计。在设计教学活动时,要注意将计算思维的培养方法加入进来。高中Python编程课上,教师需要根据实际任务案例讲解任务知识点,提醒学生易错点与难点,在学生自主完成课堂任务时,对学生进行一定的引导,避免因某个知识性问题而导致最终的任务无法完成。课后,教师需要引导学生进行反思,采用的方式一般为教师针对课程实施开展情况进行总结评价。引导学生思考的重点是学生自身在完成案例任务时究竟学到了什么。
2.学生活动设计
高中Python编程课程教学前期阶段,学生需要对课程新知识进行熟悉,了解案例任务内容、学习任务知识点,并且制订初步计划,以便学习后续教学活动中所涉及的知识。课中,学生需要掌握任务知识点,尝试自我分析课堂任务案例,自主编程解决任务难题。学生可以根据自己的实际情况,先完成课堂基本任务,在这个过程中,注重自主思考或者交流协作,在遇到问题时及时寻求教师的帮助或者与同伴交流协作。在掌握好课程基本任务的解决方法之后,尝试完成拓展任务,利用已有的知识结构与所掌握的新知识内容,将拓展任务与基础任务建立联系,用问题分解的方式将复杂问题化难为简。高中Python编程的课后,学生应积极展示自己的任务成果,查看他人的任务成果,对自己与他人的任务成果都能进行中肯的评价,并从中获取经验,吸收他人好的地方,意识到自己的不足所在。教师除了是教学的引导者之外,还是学生行为与态度的观察者,要及时发现教学活动开展过程中出现的问题,对所设计的教学活动进行修订。
(三)实施过程设计
为了保证教学活动的顺利进行,需要考虑活动实施过程中所需的教学环境,比如Python编程环境、Python自学教程等。另外,还需要教师根据教学内容设计或整理相关资料辅助课程教学,使得学生在知识的获得上更加方便快捷,而不仅仅依靠教师个人,这样做也方便学生查漏补缺,及时调整学习进度。
(四)教学评价设计
在高中Python编程课程教学设计中,教学评价是不可或缺的因素。一个教学设计模型若没有教学评价就是不完整的。教学评价的存在,一方面,可以让学生了解自己的真实情况,通过个人反思与他人评价使他们快速了解自己对知识内容的掌握程度;
另一方面,教学评价数据也能帮助教师真实了解学生的实际情况与教学效果,可以根据这些参数及时调整教学活动,更好地开展教学。
首先,可以使用学生的任务完成情况来评测学生的计算思维能力水平,在提出问题、分解问题以及解决问题的环节中设计测评问题或者测评任务,记录学生的完成情况。其次,可以使用设计计算思维评测量表的形式来量化学生的计算思维能力,计算思维的评测量表需要结合实际任务来进行设计,突出学生解决问题的过程。最后,设计学生自评、小组互评、组间评价,对学生的表现进行主客观评价。
(五)教学反思
纵观整个教学设计流程,四个阶段环环相扣,指导教师以Python语言为载体,培养高中生的计算思维。在教学过程中为了符合高中生的思维水平,采用“项目制”教学形式,将学习任务设置在不同学习情境中,注重学生参与问题解决的过程而非仅限于Python编程的结果。如教师在问题情境中引导学生探究数据之间的关系,可以利用Python语言、使用不同的图形进行可视化表征。
同时,在教学过程中也需要重视学习者的个人发展特点,但在普通高中信息技术课堂很难实现个性化教学,因此,课后拓展课、兴趣课也可以成为计算思维培养的重要方式。在这类课堂上可以充分发展学生的主观能动性,在已有课程的基础上进行进一步深入探究,为学生提供更多学习与发展机会。
在Python编程学习过程中,学生计算思维能力水平的提升,综合表现为学生运用分解、抽象、算法、概括等方法提高问题解决能力。在使用Python程序解决问题的过程中,学生操作Python软件的能力与计算思维能力相辅相成。本研究基于计算思维培养的高中编程课程,提出自己的思考,验证了Python编程课程用于提升学生计算思维的可行性,试图解决以往高中编程语言教学中存在的“重语法、轻算法”、机械式语法记忆等普遍问题,为这些问题的解决提供一些方案与经验,具有一定的实践价值。另外,在教学过程中应加强对学生问题分析、问题解决等能力的培养,结合具体的教学设计方案,激发学生编程学习的热情,以促进他们计算思维水平的提升。
猜你喜欢编程思维过程思维跳跳糖小哥白尼(野生动物)(2022年6期)2022-08-17思维跳跳糖小哥白尼(野生动物)(2022年4期)2022-07-16思维跳跳糖小哥白尼(野生动物)(2022年2期)2022-06-01思维跳跳糖小哥白尼(野生动物)(2022年1期)2022-04-26编程,是一种态度少先队活动(2021年2期)2021-03-29元征X-431实测:奔驰发动机编程汽车维修与保养(2021年8期)2021-02-16编程小能手学生天地(2020年17期)2020-08-25纺织机上诞生的编程数学大王·低年级(2020年3期)2020-03-12描写具体 再现过程作文评点报·低幼版(2019年46期)2019-12-30临终是个怎样的过程意林·全彩Color(2019年11期)2019-12-30