对话 | 樊磊-魏宁 中小学编程教学与Python编程语言教学: 理念、原则与策略 来源: 中国信息技术教育
近年来,在信息技术课程变革和国家一系列政策的助推下,中小学编程教学受到了各方的普遍关注,成为了新的教育热点。本次对话,首都师范大学樊磊教授与北京市东城区教育研修学院研修员魏宁,将围绕中小学编程教学以及Python编程语言展开深入探讨,以期为从事编程教学的一线教师提供参考。
对话嘉宾 简介
樊磊: 首都师范大学教授。中国教育学会中小学信息技术教育分委会理事,教育部高中、义教信息技术课程标准专家组成员。人民教育出版社-中国地图出版社高中信息技术教材联合总主编。
魏宁:北京市东城区教育研修学院研修员,教育硕士,高级教师。北京市教育学会教育评价专业委员会理事。主持北京市教育学会“十三五”教育科研课题1项。特约撰稿人/专栏作者,发表文章300余篇。
编程教学篇
魏宁:首先,非常感谢樊磊教授参与此次对话,樊教授是教育部高中及义务教育课程标准信息技术学科核心专家组成员,多个版本的信息技术、人工智能教材主编,也是教育部刚公布的技术(信息技术、通用技术)教学指导专委会委员,多年来一直倡导编程教学并做了大量工作,今天的话题我们就从编程教学开始吧。
关于编程教学,我想,如果从计算机科学的角度看,算法以及基于算法的问题求解,既是计算机科学中最重要的组成部分,也可以说是编程教学中最基本、最核心的内容。我们看到,在高校的计算机以及相关专业中,算法已经形成了一个完备的知识体系,成为计算机科学里非常重要的一个分支学科,但在中小学的编程教学里,算法教学显然还没有形成一个体系。
既然中小学编程教学里的算法教学如此重要,我们该如何借鉴高校的成熟经验呢?中小学编程教学里的算法教学又该遵循怎样的指导原则呢?
樊磊:我认为,首先,不应把中小学编程教学里的算法教学简单地看作高校相关课程的预备或简化版本,中小学阶段的算法教学是为编程教学服务的,所以必须服从于编程教学的总目标。而且,限于中小学生的认知水平和知识深度,算法教学在内容、案例选择上无论广度还是深度都是有限的,当然,这种选择对算法教学也是十分关键的。至于中小学编程教学里的算法教学应遵循的指导原则,我认为有以下几点:
第一,算法应该源自学生熟悉的应用情境,教师要为学生搭建起从最简单的情境到算法的一般性描述之间的抽象台阶,也就是我们通常说的教学的支架、脚手架。
第二,在算法的选择上,要把握好高阶算法和低阶算法之间的平衡。所谓高阶算法就是能直接解决某类问题的算法,低阶算法是指能高效完成特定任务的底层算法。例如,我们可以考虑在小学、初中阶段以高阶算法的案例为主,到了高中阶段,适当加入少量的低阶算法。
第三,算法的目标、直观思想以及逐步导致形式化描述的演化过程是高中(包括小学、初中)算法教学的重要部分,教学中应避免直接提出一般化、形式化的算法描述。
第四,算法中所涉及的核心思想、形式化或半形式化表示、算法推导的数学及背景知识应在学生的知识范围内,或略微超过学生的知识范围。
魏宁:对于算法而言,算法策略是一种更高站位上的视角。因为算法策略是在算法设计中所使用的问题求解的策略,也是计算思维最直接、最具体的体现形式。相对具体的案例,教师该如何在自己的教学中选择算法策略呢?
樊磊:在中小学编程教育中的算法教学里,常见的算法策略和它们用于处理的任务主要有:迭代(也称为循环)——用于处理重复性的任务;递归——用于完成迭代的一种高效方法;蛮力法——在没有更好的办法,而且计算资源(时间和空间)允许的前提下,可以尝试采用的求解问题的方法;回溯——用于测试不可行的选择,目的在于尽可能排除这类选择。
此外,启发式方法使用所有可用的背景信息,以期合理地缩短求解时间;分治法是求解困难问题时“化难为简、化大为小”的基本策略;动态规划策略用于尝试识别并记忆求解过程中的重复性步骤,从而避免无用的重复计算或浪费资源;定界的目的则是尽量确定解的边界,以缩小求解范围。
魏宁:刚才我们谈到了计算思维,自从2007年美国卡内基梅隆大学计算机系主任周以真教授提出计算思维的概念以来,计算思维受到了各国教育界的普遍重视,在我国新修订的《普通高中信息技术课程标准》中,计算思维也被列为学科核心素养之一。
在计算思维的培养中,编程普遍被认为是一种有效的途径。但目前计算思维的研究仍处在起步阶段,特别是对中小学编程教学如何促进学生计算思维的形成,我们似乎还缺乏有说服力的指导理论。
樊磊:是的,我们
登录后可查看完整内容,参与讨论!
立即登录