龙空技术网

义教信息科技“算法教学”| 如何正确处理算法、编程和计算思维之间的关系?

中国信息技术教育 218

前言:

目前兄弟们对“算法思维的两个要素”都比较重视,大家都想要学习一些“算法思维的两个要素”的相关资讯。那么小编在网摘上网罗了一些关于“算法思维的两个要素””的相关内容,希望各位老铁们能喜欢,你们一起来学习一下吧!

当教学目标从以信息技术操作为主向以计算思维培养为主转型时,算法成为义务教育信息科技课程的灵魂。

如何正确认识算法在义务教育信息科技内容体系中的地位?

算法与编程教育之间的关系是怎么样的?

在义务教育信息科技课程实施中,应如何正确处理算法和编程之间的关系?

如何看待算法与计算思维之间的关系?

下面看看专家提出了哪些相关实施策略。↓↓↓

如何正确认识算法在义务教育信息科技内容体系中的地位?

王荣良:算法在计算机科学学科中占据着重要的地位。20世纪初,奥地利数学家哥德尔发表了不完备性定理的论文,其主要观点是,在任何一个包括传统意义的算术系统的数学理论内,总有一些命题的真伪无法通过算法的手段来确定。该论文证伪了希尔伯特关于“数学是可判定的”猜想,同时开启了有关算法能力的研究。截至目前,计算机科学研究的大部分都是可计算问题,包括运用算法实现有效的计算。在大学计算机学科教育领域,算法也是主干课程。义务教育信息科技课程标准虽然没有明确界定信息科技与计算机科学学科之间的关系,但从算法成为信息科技课程重要学习内容这一事实,可以佐证计算机学科在课程中的重要地位。课程标准规定了有关算法的学习要求,但我们仍然需要思考,学习算法到底是在学习什么?是知道算法有三种结构,还是学习用流程图表示算法,或者可以判断一个算法必须有输入或者输出?即使是学习用流程图表示算法,也涉及是学会流程图的使用,还是以流程图为工具学习算法。因此,为什么要学习算法,为什么要在信息科技课程中学习算法,仍是一个值得深入思考的问题。

魏雄鹰:我们要认识到,算法的学习并不是很简单的,学生要理解算法、掌握算法,形成算法学习所特有的思维模式,需要有一个长期的过程。因此,尽管在义务教育信息科技课程体系中,已安排了“身边的算法”这一独立模块,但仅仅一个模块的学习时间,是很难学好算法的。而作为逻辑主线,算法的学习将贯穿整个义务教育阶段,成为核心内容之一。

鲍通:既然是“体系”,就要从整体来看。过去的信息技术,主要就是识别信息、获取信息、处理信息、输出信息,可视为一个简单的信息系统。如今的信息科技,已不再是单纯的信息加工,而是赋予了“智慧”能量的智能系统。从简单的物联网搭建,到复杂的人工智能,这之间离不开庞大的数据处理,信息的来源、信息分类以及信息的获取方式等都发生了很大变化。面对错综复杂的底层逻辑,如何整合数据提高系统的运行效率、提高安全系数,将是整个智能系统的重中之重。而此时,“算法”的价值得以体现,它将把复杂的问题简单化,集各路信息为一体,做出更有价值的综合判断。义务教育阶段的学习,则是引导学生走进今天的科技圈,从实际案例中了解算法的含义以及原理,最终将算法在智能系统中所起到的作用、将这种“精髓”辐射(迁移)到更广泛的学习乃至实际生活中去,让自己变得更加优秀。

算法与编程教育之间的关系是怎么样的?

在义务教育信息科技课程实施中,应如何正确处理算法和编程之间的关系?

王荣良:依据一般的理解,编程教育主要目标是学习编写程序,所以,编程教育肯定会涉及算法。通过编程教育,是否一定能有效地达成算法学习的一般性目标,则需要依据编程教育的具体学习内容和教学方法来定。了解算法与编程的关系,可以清晰地知道具体的编程教育课程对算法学习的贡献。通俗地理解,算法是规定某一任务怎样完成的一组步骤。数学中的解题步骤是算法,如求解一元二次方程的解题流程;生活中很多做事的步骤也是算法,称之为生活算法。依据计算机学科对算法的理解,在一台计算机装置完成一项任务之前,就要找到完成该任务的算法,并且以该计算机装置能够识别的方式编码、表示、存储并最终运行。这样一个算法的表示,就称为一个程序。开发一个程序,并以该计算机可以识别的形式进行编码并输入到计算机之中的过程,就称为程序设计,也称为编程。

学习算法,重要的是算法发现,也就是找到完成一个任务的算法,这样完成该任务的工作就可转变为遵循算法的指示办事的过程了。从某种意义上说,解决该问题的智能被编码到这个算法之中了。当然,算法不一定都需要通过编程表示,当预设的目标是由计算机自动地完成这项任务,才需要编程。算法可以独立于编程而存在,而编程则是算法的某一种形式的表达。

因此,站在计算机学科的角度来看,一个算法发现的全过程如下:①理解问题;②得到一个解决该问题的算法过程的想法;③形式化地描述这个算法,将它表示为程序;④评估这个程序的正确性和精确度,同时评估它作为解决其他问题的工具的潜力。在此算法发现四步骤中,将算法用程序的形式表达并运行,是特别有意义的环节。

从算法与编程的关系分析来看,在算法学习中融入编程技术,学会用程序表达算法,可以真实地实现用程序验证算法,有利于学生学习算法,也有利于学生通过算法的学习很好地达成课程目标。

魏雄鹰:编程教育的起起落落,使人们对算法的认识也在不断发生变化。在中小学计算机课程时代,算法与编程实际上是没有严格区分的,在大众眼里,学编程等于学算法。中小学的计算机课时非常有限,学生也只能以语言为基础来初步了解算法的三种基本结构。近几年,随着图形化编程语言的兴起,编程教育更偏向于编程作品创作,而算法学习更注重思维上的提升,注重问题解决过程中的抽象、建模与算法的设计、优化等,算法学习与编程教育密切相关,但不完全等同,学算法不等于写“代码”。

义务教育信息科技课程标准在“身边的算法”模块明确给出了教学提示:本模块要求学生体验计算机程序,鼓励学生从多个方面熟悉程序,不要求每个算法问题都由学生编程实现,阅读理解、修改运行等也都是有意义的体验。在开展算法教学时,要注重培养学生利用算法求解简单问题的能力,形成初步的算法思维。编程主要用于验证算法,通过编程实现算法,进而能够对算法的正确性与执行效率进行初步分析。

梁祥:第一,算法与编程是同一件事情(抽象)的两种属性。算法是在有限步骤内解决问题所使用的方法,是用作人类表达思想的语言。编程是程序语言将这种思想转换为计算机可以理解的方式。第二,算法与编程的对比。算法是求解信息处理问题时的一种思维方式。编程是应用编程语言实现算法的过程。其中编程语言是描述信息处理过程的形式语言,而编程则是基于信息的推理活动(计算也是一种推理)。

我认为,义务教育阶段应避免将编程及编程语言本身(如语言要素、特征、程序构造、编程技巧等)作为教学目标或重点。教学目标应根据新课程标准,突出算法逻辑主线循序渐进和螺旋式发展的作用。例如,在小学阶段通过指挥计算机“做某种动作”“完成某种任务”等多种形式体验编程;初中阶段以能读懂、运行并欣赏用编程语言书写的算法及过程,通过实现算法(包括计算、查找与搜索、数据处理、模拟过程、反馈控制等)来学习实践和掌握编程。

鲍通:算法的概念不局限于编程,生活中也处处离不开算法。算法可以让编程教育不再是为了编程而学习编程。对于编程教育本身而言,具体还要看编程教育的目标是什么。如果侧重培养学生的思维,那么对算法的理解是关键(明白算法的含义,简化复杂问题,寻找最优解决方案,让事务变得更加清晰有条理,学生可以通过开发小型案例逐步观察算法的优势,充分体验“省时省力”的做法);如果侧重培养学生的技能,那么对算法的应用是关键(在学习掌握“操作系统原理”的基础上,结合实际项目,思考如何提高功能模块的运行效率,如何让模块之间尽量保持“低耦合、高内聚”,学会从软件工程过程的角度思考问题,做整体的软件设计,以将项目逐步打造成为一个产品为目标)。无论是对思维还是技能的培养,算法学习总归是编程教育中一个不可缺少的环节,虽然前后侧重点不同,但二者相辅相成。

如何看待算法与计算思维之间的关系?

王荣良:第一,计算思维是计算机科学的学科思维,算法是计算机学科的核心内容,计算思维与算法,从学理上有着天然的联系。虽然算法不是计算思维的全部,但是算法学习是很好的计算思维培养的渠道。第二,义务教育信息科技课程标准把计算思维界定为“个体运用计算机科学领域的思想方法,在形成问题解决方案过程中产生的一系列思维活动”。根据课程标准的描述,具备计算思维的学生应有以下两个特质:其一,能对问题进行抽象、分解、建模,并通过设计算法形成解决方案;其二,能尝试模拟、仿真、验证解决问题的过程,反思解决问题的方案,并将其迁移运用到解决其他问题中。前一条特质,“通过算法形成解决方案”说明了算法的核心作用;后一条特质,“解决问题的过程”“解决问题的方案”,都是算法的具体表现。由此可知,在信息科技课程中已将算法作为计算思维培养不可或缺的内容。第三,进一步分析算法发现四步骤,可以发现,对步骤1理解问题,需要待解决问题的学科知识,也需要对该问题进行建模的数学思维,如果学生还具备计算机学科的基础知识和思想方法,就可思考问题解决的方案是可以在计算机工具的支持下自动完成的。而这正是计算思维的价值所在,可以将具体问题所涉及的学科知识与生活经验、数学建模以及计算机学科思想方法结合在一起,将思维从步骤1理解问题有效地推向步骤2、步骤3以及步骤4。

魏雄鹰:中小学生学习算法,开展编程教育,不是为了培养“码农”,而是为了发展学生计算思维,提升全体学生的数字素养。计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案过程中产生的一系列思维活动。算法是最能体现用计算机解决问题所特有的思想方法,因此,培养学生的计算思维,学习算法是一条很好的路径。信息科技课程标准也明确提出,算法是计算思维的核心要素之一。通过学习算法,学生能够用明确的、可执行的操作步骤描述问题求解方案,能够用顺序、分支和循环三种基本控制结构设计程序解决问题,这些都是计算思维的重要表现。

梁祥:第一,“算法”只是“计算思维”系列有序步骤的一部分。计算思维是一种问题解决的过程,这个过程包括问题表征、数据分析、数据抽象、形成自动化的解决方案、分析试用各种解决方案、扩大解决方案应用范围等一系列有序步骤。其中通过“算法”的思想(一系列有序的步骤)生成自动化的解决方案只是其中之一。第二,计算思维的培养是一个逐渐积累和不断优化的迭代过程。在基于计算思维的问题求解模型中,理解问题包括要能正确地提出问题、表示问题。设计求解方案的重点在于要能设计出可以编程实现的算法,在实施求解方案中包括用语言工具实施算法以及调试验证算法,核查评估环节重在评估求解方案的效率、代价和精度等。只有将问题理解(叙述、表示)和求解(算法设计、实现、评估、优化)看成一个整体,才能体现出计算思维的真正价值,较好地解决编程教育中的碎片化问题。

文章刊登于《中国信息技术教育》2023年第5期

标签: #算法思维的两个要素