




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中小学编程教学与Python编程语言教学:理念、原则与策略北京市东城区教育研修学院研修员,教育硕士,高级教师。北京市教育学会教育评价专业委员会理事。主持北京市教育学会“十三五”教育科研课题1项。特约撰稿人/专栏作者,发表文章300余篇。首都师范大学教授。中国教育学会中小学信息技术教育分委会理事,教育部高中、义教信息技术课程标准专家组成员。人民教育出版社-中国地图出版社高中信息技术教材联合总主编。关于编程教学,我想,如果从计算机科学的角度看,算法以及基于算法的问题求解,既是计算机科学中最重要的组成部分,也可以说是编程教学中最基本、最核心的内容。我们看到,在高校的计算机以及相关专业中,算法已经形成了一个完备的知识体系,成为计算机科学里非常重要的一个分支学科,但在中小学的编程教学里,算法教学显然还没有形成一个体系。既然中小学编程教学里的算法教学如此重要,我们该如何借鉴高校的成熟经验呢?中小学编程教学里的算法教学又该遵循怎样的指导原则呢?樊磊:我认为,首先,不应把中小学编程教学里的算法教学简单地看作高校相关课程的预备或简化版本,中小学阶段的算法教学是为编程教学服务的,所以必须服从于编程教学的总目标。而且,限于中小学生的认知水平和知识深度,算法教学在内容、案例选择上无论广度还是深度都是有限的,当然,这种选择对算法教学也是十分关键的。至于中小学编程教学里的算法教学应遵循的指导原则,我认为有以下几点:第一,算法应该源自学生熟悉的應用情境,教师要为学生搭建起从最简单的情境到算法的一般性描述之间的抽象台阶,也就是我们通常说的教学的支架、脚手架。第二,在算法的选择上,要把握好高阶算法和低阶算法之间的平衡。所谓高阶算法就是能直接解决某类问题的算法,低阶算法是指能高效完成特定任务的底层算法。例如,我们可以考虑在小学、初中阶段以高阶算法的案例为主,到了高中阶段,适当加入少量的低阶算法。第三,算法的目标、直观思想以及逐步导致形式化描述的演化过程是高中(包括小学、初中)算法教学的重要部分,教学中应避免直接提出一般化、形式化的算法描述。第四,算法中所涉及的核心思想、形式化或半形式化表示、算法推导的数学及背景知识应在学生的知识范围内,或略微超过学生的知识范围。魏宁:对于算法而言,算法策略是一种更高站位上的视角。因为算法策略是在算法设计中所使用的问题求解的策略,也是计算思维最直接、最具体的体现形式。相对具体的案例,教师该如何在自己的教学中选择算法策略呢?樊磊:在中小学编程教育中的算法教学里,常见的算法策略和它们用于处理的任务主要有:迭代(也称为循环)——用于处理重复性的任务;递归——用于完成迭代的一种高效方法;蛮力法——在没有更好的办法,而且计算资源(时间和空间)允许的前提下,可以尝试采用的求解问题的方法;回溯——用于测试不可行的选择,目的在于尽可能排除这类选择。在计算思维的培养中,编程普遍被认为是一种有效的途径。但目前计算思维的研究仍处在起步阶段,特别是对中小学编程教学如何促进学生计算思维的形成,我们似乎还缺乏有说服力的指导理论。樊磊:是的,我们可以这样理解编程教学与算法思维的关系,就是把计算思维理解为求解信息处理问题时的一种思维方式,把编程语言理解为描述信息处理过程的形式语言,而编程则是基于信息的推理活动(计算也是一种推理)。编程语言/编程在表示/求解信息处理问题中的作用类似于抽象/逻辑在求解数学问题时的表示和推理。著名数学家G.Polya在他的专著《怎样解题》中提出过一个数学问题求解的模型,就是著名的Polya模型。它把解题的过程分为四个步骤:理解问题、设计求解方案、实施求解方案和核查评估。在Polya模型的基础上,我们可以设计一个基于计算思维的问题求解模型。具体地说,在基于计算思维的问题求解模型中,理解问题包括了要能正确地提出问题、表示问题,设计求解方案的重点在于要能设计出可以编程实现的算法,在实施求解方案中包括了用语言工具实施算法以及调试验证算法,核查评估环节重在评估求解方案的效率、代价和精度等。这些重要的特点,显然有着方法论的特征,既体现了与一般的问题求解过程的不同,也说明了计算思维的培养是一个逐渐积累和不断优化的迭代过程。只有将问题理解(叙述、表示)和求解(算法设计、实现、评估、优化)看成一个整体,才能体现出计算思维的真正价值,较好地解决编程教学中的碎片化问题。樊磊:编程语言的迭代是技术发展的正常趋势,在教育领域,同样也要遵从这种趋势,我理解这是一种正常的现象。相对于编程语言多样化的现实,更需要我们思考的是,编程语言的选择应从哪些原则出发考虑。我想,我们既要站在国家层面上看计算机发展和人才培养的需要,又要站在教师角度充分考虑一线教师的实际状况,同时也要符合学生的长远发展。在编程教学语言的选择上,要广泛征求各方面的意见和建议,采取科学合理的方案,多级联动。面对汹涌而来的科技大潮和技术快速迭代的现实,我们更需要理性审视,不盲从、不武断,这才是自信和定力的体现。樊磊:是的,我认为,从国家和社会层面看,需要对计算机技术、信息技术感兴趣且有潜力的学生,也希望发现这样一批苗子。但我们的校内的编程教学还不能完全满足家长的需求,这就造成了一个明显的缺口,编程培训市场就迎合了这样一个需求。如果我们过于拔高编程对学生的作用,甚至从未来升学的功利性去考虑,那么,我确实建议“并非每个小孩都需要学编程,在学有余力且感兴趣的情况下可以学”。对大多数学生来说,从个人发展来看,编程就像语言一样,是一个主要用来沟通、表达创意和思想、解决问题的工具。不同的是,编程主要是和计算机或互联网的“沟通”。所以,学习编程语言,就是让我们可以解决新问题、使用新技术,更好地表达自己。从长远看,市场化的编程培训还是应该纳入信息素养教育的大框架下,让其成为信息素养教育落地的一个载体,这样才会更有持续性。总之,在“编程热”这个问题上,学校、家长不要“走偏”,要牢记编程是一个工具,是要为学生学习、发展和思维培养服务的。Python篇魏宁:在中小学信息技术课程中,对于编程教学,目前的新教材普遍采用了Python作为核心编程语言。我知道,前一段时间,您也专门编写了《面向中小学教师的Python编程入门》一书。作为国内Python编程语言方面的专家,您是怎样看待Python语言的呢?对于中小学的编程教学,Python语言的优势体现在哪里呢?樊磊:Python是现代编程思想的产物,它具有语法简单、开源、跨平台、扩展性强等诸多特点,且拥有众多功能强大的应用扩展库,是众多领域的主流应用(如可视化、生物信息学、大数据分析等)开发的首选语言。对于基础教育而言,它的优势主要体现在以下几个方面:第二,从运行机制方面看,Python同时具备解释型、编译型和脚本型语言的共同特点。第三,从开发环境看,Python的开发环境支持包括Windows、OSX、Linux在内的所有主流操作系统和平台。第四,从扩展硬件方面看,Python的开源硬件接口库种类繁多、功能完善,基本覆盖了当前基础教育领域中用到的扩展硬件。第五,从语言支持服务方面看,Python是典型的开源平台,与C/C++、JavaScript等重要编程语言有很好的应用库共享机制。第六,从应用层面看,Python有大量各种各样的库/框架,使得开发者仅需要编写相对较少的代码就可以完成令人印象深刻的准专业级应用。第七,从教学实施情况看,Python特别适合做数据处理(数据管理、数据可视化、大数据分析等)相关的应用,与新课标的理念非常吻合。魏宁:对于Python,我也听到了一些不同的声音,如有些一线教师反对Python进入中学课堂。他们的理由是C语言或Java语言相对于Python更加成熟、稳定,并且在大学教育中都有很好的教学基础,这也就意味着学生在中学阶段学习C或者Java后,在后续的大学阶段会有比较好的衔接。事实真是这样的吗?樊磊:我认为对编程基础几乎为零的中学生而言,首先应该让他们在编程的学习中体会到编程的乐趣,尽快获得成就感,并爱上编程,而不是把编程看作高深莫测、枯燥乏味的事情,甚至对学习编程“自带恐惧”。从当下的中学编程教学来看,不喜欢编程教学的学生不在少數,这是应该引起我们反思的现象。从这个角度考虑,选择Python作为编程语言还是有优势的,因为它的语法简洁易懂,对语法格式的要求非常低,可以说是最接近自然语言的程序语言,非常适合没有编程基础的学生。对教师而言,Python代码在设计上强制要求缩进,方便了学习和维护,教师不需要花费大量的时间去处理代码的格式错误。至于说和大学的衔接,我首先要严肃地说明,Python绝不是一种“玩具(Toy)语言”,而是货真价实的“工作(Working)语言”,是主流编程语言,更是数据分析领域的首选语言。假如学生能在中学阶段接触并且系统地学习Python语言,完全能够打下良好的基础,并在进入大学后直接深入研究,更快地参与到实际项目的开发中,乃至为今后的就业增加有分量的筹码。因此,通过中学阶段对Python的学习,无论对今后的大学专业学习,还是自主创业,都是有益处的。魏宁:刚才我们说到了Python语言的很多优点,但对中小学编程教学而言,Python语言毕竟是个新事物。而且,在现阶段,它在编程教学中似乎也存在着一些问题。魏宁:前面您曾提到了算法教学应遵循的几个基本原则,那么,对具体的Python语言,它的算法教学是不是也應该遵循这些原则?樊磊:关于Python语言算法教学的指导原则,我想应该有以下三点:第一,在算法的编程实现上,原则上不涉及较复杂或有较高技巧的编程,较复杂的编程实现只作为Python-like伪代码实现,但算法作为教学案例,必须首先讲清楚其背后的关键思想;第二,高阶算法所解决的问题应具有典型性、时代性、选择性、普适性和适用性,并且对学生的后续学习或其他学科的学习有启示作用;第三,在时间和条件都允许的情况下,应针对解决同一类问题的、基于不同策略所实现的算法之间做性能对比,并挑选出较优算法。魏宁:您能否用一个具体的案例来说明,在编程教学中,如何贯彻这些原则?樊磊:好,我就用一个具体的案例来说明Python编程及算法教学中的一些特点,这个案例的场景来自高中新课标教材,就是著名的斐波那契数列的求解。首先,斐波那契数列是最简单的递归定义的函数,也就是函数体的内部包含了对函数自身的调用,而Python是支持函数的递归定义的,这也是函数式编程语言的特征之一。我们要注意到计算最后一个值的时候是需要一点时间的,因为在递归调用中,很多中间值要重复计算。而为了优化斐波那契数列的递归实现,一个最简单的方法就是在每次计算中,将前面已经计算过的值“记”下来,不再重复计算。这种在计算过程中使用记忆的机制可以有效避免重复及浪费资源,是所谓“动态规划”方法的一个最简单的例子,也就是资源的动态再分配。在此,我们就可以使用Python的迭代器、装饰器等功能,从而让斐波那契数列的函数更加简化。教师们不妨尝试一下斐波那契数列的Python编程。魏宁:其实,对大多数教师,包括相当一部分信息技术教师而言,Python语言都是一种比较“奇怪”的语言,当他们在教学中面对Python语言的时候,多少都会有一种“心里没底”的感觉。对于现阶段在中小学采用Python作为编程语言的教师来说,在教学中,他们应该注意什么呢?您会给他们提出哪些建议呢?樊磊:对采用Python作为编程语言的教师,在教学中,我有以下几条具体建议:第一,要始终贯彻“需求导向,在做中学”的定位,千万不要陷入“程序员模式”的编程教学中;第二,牢记在Python中,学会使用函数比掌握编程技巧更重要;第三,要掌握输入/输出函数,能够灵活运用非数值数据类型,包括字符串、列表和字典;第四,要了解Python语言异常灵活的循环及控制结构;第五,鼓励教师将Python当作现实版的“伪代码”来使用,即使确实需要用伪代码,也建议使用Python-like风格;第六,如果要使用Python的高级特性,编程案例应尽量依托Python语言特点,并以算法实现的需求适当渐次地引入,但建议教师们,除非绝对必要,尽量不使用Python的高级特性。魏宁:我们知道,由于Python具有语法简单、开源、跨平台、扩展性强等鲜明特点,所以被认为是典型的“胶水语言”。因此,在支持创客教育、STEAM教育方面Python语言有着天然的优势。樊磊:是这样的,眼下,创客教育、STEAM教育可以说开展得如火如荼。创客的本质是“造物”,因此,有很多与硬件编程相关,如Arduino、树莓派等。但是,如果每使用一种硬件产品就要学习该产品的编程语言,这会让创客的学习增加大量的成本,在一定程度上是阻碍创客教育发展的。这时,Python语言作为胶水语言的优势就显现出来了,正因为Python具有很强的扩展性,有很多与硬件相配套的库,如Python能方便地与Ardui
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急危重症患者评估与护理试题
- 防震减灾宣传-知识竞赛
- 二手房交易居间合同示例
- 2025授权物业管理服务合同样本
- 品牌代理合同
- 电子产品维修服务合同协议书范本
- 2025租房合同协议范本3
- 2025服装加工定制合同范本
- 2025监理工程师《合同管理》知识点抵押
- 《天泽项目营销总纲》课件
- 中央2024年国家药品监督管理局中国食品药品检定研究院招聘笔试历年参考题库真题考点解题思路附带答案详解
- 交通性脑积水的健康宣教
- 辽宋夏金元时期经济的繁荣课件七年级历史下册
- 第37届(2020年)全国中学生物理竞赛预赛试题及参考解答
- 糖尿病足预防及护理课件
- DG-TG08-12-2024 普通中小学建设标准
- 《中国古代寓言故事》教学设计4篇
- 基于“教-学-评”一致性的学习评价设计
- 妊娠期母体变化讲解
- 2025年平顶山职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年度全国初中应用物理竞赛试题及答案
评论
0/150
提交评论