网站大量收购独家精品文档,联系QQ:2885784924

Python编程与算法教学的策略及指导原则.docx

Python编程与算法教学的策略及指导原则.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Python编程与算法教学的策略及指导原则

于晓雅北京教育学院人工智能和创客教育研究中心

樊磊首都师范大学教育学院

自信息技术新课标以Python语言作为核心编程语言推荐以来,Python编程与算法教学成为落实新课标课程目标的基础。如何在中小学Python编程与算法教学中,落实课标精神,围绕“算法以及基于算法的问题求解”这一核心问题,依据基础教育阶段学生特点把握适当深度和广度,通过算法学习和实践,为深入体会并应用计算思维(信息技术的思想、方法和手段)解决问题提供坚实基础,实现“运用计算思维解决问题”能力培养的课程目标,是广大信息技术学科教师共同关注的话题和主要研究点。

作为普通高中信息技术新课标的重要内容,中小学Python编程与算法在教学中目前存在如下问题和困难:

第二,教学实践层次的困难。首先,作为计算机科学的重要分支,算法与数学、数据结构、编程语言特性密切关联,已经成为一个的完备的知识体系,单纯讲算法本身很难实施。其次,Python语言封装了很多基础算法的实现,而且涉及交错复杂的概念(如数据类型、抽象数据类型),究竟是讲算法的底层方面还是讲高阶应用难以取舍。再次,如何处理算法的直觉描述(非形式化描述)、流程图、伪代码(半形式化描述)和编程实现(形式化描述)之间的关系,也是教学实践的难点。

第三,案例选择的困难。中小学阶段的算法教学是为编程教学服务的,所以必须服从编程教学的总目标:运用计算思维解决问题。但限于中小学生的认知水平和知识深度,教学案例的求解流程和问题深度很难把握,所以选择适当的案例成为实施Python编程与算法教学的关键。

第一,算法应该源自学生熟悉的应用情境。

第二,在算法的选择上,要把握好高阶算法和低阶算法之间的平衡。

第三,算法的目标、直观思想以及逐步导致形式化描述的演化过程是高中(包括小学、初中)算法教学的重要部分,教学中应避免直接提出一般化、形式化的算法描述。

第四,算法中所涉及的核心思想、形式化或半形式化表示、算法推导的数学及背景知识应在学生的知识范围内,或略微超过学生的知识范围。

第五,算法的编程实现上,原则上不涉及较复杂或较具技巧性编程,较复杂算法可不做实际的编程实现或只做Python-like伪代码实现,但算法作为教学案例,必须先讲清楚其背后的关键思想。

第六,高阶算法所解决的问题应具有典型性、时代性、选择性、普适性和适用性,并且对学生的后续学习或其他学科的学习有启示作用。

第七,在时间和条件都允许的情况下,应对解决同一类问题的、基于不同策略所实现的算法做性能比对,并挑选出较优算法。

在Python编程与算法教学中,要始终贯彻“需求导向、问题解决、做中学”的定位,明确学会使用函数比掌握编程技巧更重要。在设计编程案例时,要掌握输入/输出函数,能够灵活运用非数值数据类型,包括字符串、列表和字典;要了解Python语言异常灵活的循环及控制结构;鼓励教师将Python当作实现版的“伪代码”来使用,即使确实需要用伪代码,也建议使用Python-like风格;如果要使用Python的高级特性,编程案例应尽量依托Python语言特点,并以算法实现的需求适当渐次地引入。但笔者建议,非必要尽量不使用Python的高级特性。

算法策略是指在算法设计中所使用的问题求解的策略,是计算思维最直接、最具体的体现形式。算法策略的视角比实现算法时的具体编程实现方法在站位上要更高。

在中小学编程教育中,在算法教学里,常见的算法策略和它们用于处理的任务主要有:迭代(也称为循环)——用于处理重复性的任务;递归——用于完成迭代的一种高效方法;蛮力法——在没有更好的办法而且计算资源(时间和空间)允许的前提下,可以尝试采用的求解问题的方法;回溯——用于测试不可行的选择,目的在于尽可能排除这类选择。

算法以及基于算法的问题求解是计算机科学的最重要的组成部分,也是信息技术新课程最基本、最核心的内容,算法教学中教学案例的选择是最重要的关键点。下面,笔者以斐波那契数列的问题解决路径为例,解析在上述原则和策略的指导下,如何实施Python编程和算法教学。

斐波那契数列从0和1开始,之后的斐波那契数列系数就由之前的两数相加。高中数学必修五在讲解数列前n项和的课后资料中提到了斐波那契数列,作为数学知识生活化、发展学生抽象思维能力的拓展。

在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,斐波那契数列的通项公式表示如图1所示的公式(1)。

在算法教学中,斐波那契数列是最简单的递归定义函数,因此非常适合用来说明实现基本递归算法的方法。

斐波那契数列的Python实现所需基本知识包括:使用if语句实现简单迭代/循环、自定义函数、函数的递归定义。

斐波那契数列本身就是用递归形式定义的,Python是函数式编程语言,支持函数的递归定义,即函数

文档评论(0)

ZC强 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档