查看原文
其他

CCCF专栏 | 编程实践是培养计算思维的必由之路

尹宝林 中国计算机学会 2022-05-15


计算思维在信息时代的人才培养中起着重要作用。只有通过针对青少年的编程实践,才能培养出精巧的计算思维。因此,编程实践对于信息技术课程至关重要。



关键词:计算思维  编程实践


2017年,国务院印发了《新一代人工智能发展规划》,提出“实施全民智能教育项目”。这表明国家在战略层面对基础教育阶段的教育提出了面向新时代的新要求。随着信息技术的迅猛发展,未来的社会将发生巨大的变化。大量现有的劳动技能、工作方法、知识、思维方式都将过时,一些已存在多年的职业将被人工智能所取代。国家人才战略的关键就是要培养高素质的面向未来的人才和合格公民。为此教育部制定了信息技术的新课标,从过去以软件工具的操作使用为主转向了以信息素质的培养教育为主,把信息素养提高到与人文素养、科学素养同等重要的地位。其中思想方法和思维模式是信息素养中的重要内容。


计算思维(Computational Thinking)这一概念自从2006年被明确提出以来,在计算机教育领域引起了广泛的关注和讨论。但时至今日,对于什么是计算思维,仍然是众说纷纭。例如,有人将计算思维与理论思维、实验思维并列为三大科学思维;有人认为计算思维是计算机科学解决问题最本质的方法,涉及制定问题解决方案的思维过程,包括逻辑思维、算法思维、网络思维、系统思维以及数据思维;有人认为计算思维的本质是抽象和自动化;有人认为计算思维是一种递归思维,是一种并行处理;有人认为计算思维是一种多维分析推广的类型检查方法;还有人认为计算思维是一个循环的问题解决过程,认为计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看起来困难的问题重新阐释成已知如何求解的问题,是运用合理算法进行问题求解的过程,是利用计算机科学的思想和方法进行的问题分析、抽象、建模、求解等一系列思维活动。为统一对计算思维的认识,美国国家研究委员会(NRC) 2010年组织了一次“计算思维的范围和性质研讨会”,但与会者对计算思维的范围和性质观点各异,未能对计算思维的基本定义达成共识。尽管对计算思维这一概念在思想方法、思维模式和思维过程方面没有统一和明确的界定,但是有两种认识被普遍接受:(1)计算思维在专业能力和信息素质培养上的重要性是不言而喻的;(2)计算思维是把现实问题变成计算机可计算模型并产生结果的思维过程,是与计算实践密切相关的。至于如何培养计算思维,则更是莫衷一是。其中一个重要的分歧就是培养计算思维,需不需要学习程序设计。


从认识论的角度来说,实践是人类对客观世界的认识和理论的来源。计算思维也不例外,计算思维不是抽象的概念,是关于如何在现代计算技术和计算环境下分析问题和解决问题的思维方法。它既不是什么人脑子里灵光一闪凭空出现的,也不是天才人物头脑里固有的,而是在现代计算技术条件下大量实践经验的积累、总结和升华。因此这一概念不可能在现代计算技术刚出现时就形成,更不可能在1945年第一台现代计算机出现之前就出现。在现代计算机出现60多年之后,经过全世界计算机专业人员广泛而大量的计算实践,各种相关技术和理论日益成熟,人们认识到计算技术和计算理论中所具有的共同特点和思维方式,在此基础上,逐渐形成了计算思维这一概念。


讨论培养计算思维的途径,离不开培养青少年计算思维的目的。青少年学习计算思维的目的不是为了掌握一些抽象的概念,而是为了培养一种全新的、适用于未来社会发展所面临的计算环境的思维方式,以便具备完整的现代信息意识和信息素养,理解现代计算技术和计算环境与相关科学、技术、医学、人文等其他学科之间的关系,在意识层面、思维层面、创新层面具有利用现代计算技术应对各种社会问题和技术问题,发现问题和解决问题的综合能力。也就是说,是为了培养青少年具有更强的理论联系实际的能力,更强的运用知识解决实际问题的实践能力,更强的面向未来的能力,而不是让他们只知道一些抽象的名词概念,只会夸夸其谈的纸上谈兵。而使青少年建立这样一个与计算实践密切相关的思想方法,必然离不开计算实践。


毛主席在《实践论》中指出:“认识开始于经验”,“理性认识依赖于感性认识,感性认识有待于发展到理性认识,这就是辩证唯物论的认识论。”没有实践的基础,没有感性经验的积累,很难真正理解相关对象在实际层面相互作用的过程,也很难准确理解在此基础上进行的理论抽象,更不用说灵活地运用这些理论去指导实践、解决实际问题了。对于青少年的学习来说,他们的知识积累和实践经验较少,对于抽象概念和理论的接受能力较弱,针对他们的教育,不应该是抽象理论的教学,而应该是通过大量的实践练习,以养成教育的方式使他们通过自己的实践经验,逐步接受更为抽象的概念、理论和知识。计算思维不是各种概念、规则和知识点的堆砌,而是一种思想方法和思维模式。对于思想方法和思维模式的培养,更不能只通过理论的说教来实现,而是要通过反复的实践,使学生通过感性知识的积累,不断地体会和领悟而逐渐养成。我们可以把计算实践与计算思维的关系与中学几何课程与逻辑思维的培养做一个类比。


在中学学习几何课程,不仅仅是为了学习具体的几何知识,更重要的是为了培养和训练学生的逻辑思维能力和想象能力。几何课程将逻辑的实质与图形的直观紧密结合,一方面是基于图形的直观想象,另一方面是基于推理规则的严谨逻辑。在几何中,从几条基本的公理出发,借助于逻辑推理规则,就可以构建出一个庞大复杂的数学体系。学生们在学习几何的过程中逐渐建立起了逻辑思维能力和想象能力。这种想象力和逻辑思维能力的培养,不是通过理论的说教和概念的灌输,而是通过大量几何习题的练习完成的。学生在进行定理证明和演算的过程中,逐步体会到逻辑推理方法的精髓,以及运用想象力领悟各种题目条件和几何图形所隐含的意义,在大量反复的练习中,想象力和逻辑思维逐渐形成了一种思维定式。若干年后,学生可能会忘记曾经证明过的几何定理和习题,但是通过几何课程培养出来的想象力和逻辑思维能力却会长久保留下来,相伴终生。我们可以反过来想一想,如果在中学单独开设一门专门培养逻辑思维的课程,给学生抽象地讲述各种逻辑系统和推理规则,会是一种怎样的情景,会取得什么样的效果。


现代计算机系统可以分为硬件和软件,硬件提供了具有广泛通用性的计算平台,软件描述计算任务的处理对象和处理规则。硬件决定计算机系统的性能,软件决定了计算机系统的功能。计算机的各种软件,包括各种手机APP在内的移动应用,以及最近广受关注的人工智能,其核心的支撑技术都是程序设计技术。如果说硬件是计算机的躯体,那么程序就是计算机的灵魂,程序设计就是塑造计算机灵魂的工作,编程实践就是现代计算技术中规模最大、最为普及的计算实践,也是青少年可以最先、最容易接触到的计算实践。


计算思维并不等同于编程实践,计算思维是一种来源于计算实践,又高于具体计算实践的思维方式,是可以适用于运用现代计算技术和计算环境分析问题和解决问题的思维工具。但是要掌握计算思维必须通过学习编程,只有通过实际编程的感性经验,才能真正理解与此相关的抽象概念和理论,特别是对于缺乏知识积累和实践经验的青少年。同时,编程实践也是检验学习计算思维、培养信息素养效果的最重要和最有效的手段。一个人是否真正具有计算思维和信息素养,不在于他是否能够背诵一些概念和理论,而在于他是否能够运用这些知识去创造性地解决实际面对的问题。而青少年在学习阶段,难以直接面对实际的社会问题和实际的技术问题,这时,最直接最有效的手段就是通过编程实践的检验。这与通过几何习题的证明检验学生对逻辑推理能力的掌握异曲同工。


邓小平同志当年在谈到部队战斗力的时候曾经说过这样的话:“一个听过枪响的士兵和没有听过枪响的士兵是完全不一样的。”今天,我们也可以说,信息素质的培养上,一个写过程序的学生和没有写过程序的学生是完全不一样的。中国在青少年中开展编程活动已有三十多年的历史了。很多早期参加过编程活动和全国青少年信息学奥林匹克竞赛(NOI)的青少年,已经走入了大学和社会。实践证明,这些写过程序的学生,特别是写过较多程序的学生,不仅在大学的专业学习中,而且在接受新概念和抽象理论时,在灵活运用所学知识时,比没有写过程序的同学有着明显的优势,在非信息类课程的学习中也同样表现出色,充分体现出编程实践对思想方法和思维定式的培养作用。在走入社会后,这些同学也更能够适应当前飞速发展的技术环境,表现出更强的创新能力和创业能力。实际上,很多人已经站在了新技术发展的潮头,成为了引领人工智能产业发展的先锋。


信息素质的培养并非只是学习编程,编程实践不是信息素养的全部。编程实践也不仅仅是学写代码那么简单,而是计算思维养成教育的基本手段,是为学生的理论学习提供最基本感性知识的基础,是培养计算思维的必由之路,舍此别无他途。因此在国务院的《新一代人工智能发展规划》中,明确提出要“在中小学阶段设置人工智能相关课程,逐步推广编程教育”。这说明,在信息技术教学中,编程实践具有非常重要的位置,是课程中必不可少的内容。


作者介绍

尹宝林  

CCF杰出会员。北京航空航天大学教授。1999年参加NOI科学委员会工作至今,历任委员、副主席、顾问、中国信息学奥林匹克国家队副领队等职。yin@buaa.edu.cn



点击“阅读原文”,加入CCF。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存