分享

从少儿编程看“计算思维”的习得与养成

 深度视讯 2016-09-20

从不列颠岛、欧洲大陆到北美洲,从小学到高中课堂,程序(编写)继文字、数字之后正在成为”第三语言“,变成与读写、数学等并列的学生核心能力之一。

从少儿编程看“计算思维”的习得与养成

编程是指书写一种计算机语言,用计算机能够理解的方式,负责向它发出精确的指令,来完成我们设定的具体问题,属于一种人机交互过程。

学习编程的核心,不在于掌握具体哪一种计算机语言。编程语言在不断革新,几行今天所谓炫酷的代码,在不久的将来一定会成为老掉牙的古董。

学习编程的本质,实则在于思维方式的养成,是一种计算性的思维方式。通过编程获得的计算性思维逻辑,可以有效得以创造性地进行具体的学习和实践活动。

从少儿编程看“计算思维”的习得与养成

这种思维方式看似遥远与抽象,其实从日常生活,到知识的学习和研究,再到公司的决策,人类的工作生活都与计算性思维息息相关、紧密相连。

计算思维(Computational Thinking),卡内基梅隆大学(Carnegie Mellon University,简称CMU)计算机科学系主任周以真(Jeannette M. Wing)教授提出的,是运用计算机科学的思维方式进行问题求解、系统设计、以及人类行为理解等一系列的思维活动。是一种用电脑的逻辑来解决问题的思维。

它吸取了数学思维方法,庞大复杂系统的设计与评估的一般工程思维方法,以及复杂性、智能、心理、人类行为的理解等的一般科学思维方法。

计算机科学在本质上源自数学思维,因为像所有的科学一样,其形式化基础建筑于数学之上。计算机科学又从实质上源自工程思维,因为我们建造的是能够与实际世界互动的系统,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。同时,构建虚拟世界的自由使我们能够设计超越物理世界的各种系统。

计算思维是每个人得以更好学习和发展的基本技能,不仅仅属于计算机科学家,是一种基本技能和普适思维方法。它对所有的领域、职业都是适用的,都是能够从中受益的。我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Reading, Writing and Arithmetic——3R),还要学会计算思维。

从少儿编程看“计算思维”的习得与养成

当我们必须求解一个特定的问题时,首先会问:解决这个问题有多么困难?怎样才是最佳的解决方法?

计算思维能够将一个问题清晰、抽象地描述出来,并将问题的解决方案表示为一个信息处理的流程。它是一种解决问题切入的角度。现实中针对某一问题你会发现有很多解决方案的切入角度,而计算性思维是一种抽象话语模式。

具体而言,计算思维包括,转换问题、分解问题、模式认知、抽象思维、算法设计与评估。

从少儿编程看“计算思维”的习得与养成

转换问题,是指计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道问题怎样解决的方法。

分解问题,是一种采用分解来控制庞杂的任务或进行巨大复杂系统设计的方法,是基于关注分离,选择合适的方式去陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维模式。

通俗地说,是指把一个看似复杂的问题分拆成几个小问题来解决。在每个小问题中设定目标和解决方案。当每个小问题解决完毕,这个整体的问题也就自然得到解决了。也就是说遇到任何庞大而复杂的问题,都可以通过拆分出有逻辑关系的小块问题,然后在每个小模块里面解决。

而转换问题加分解问题,可以理解为计算机里的“递归算法”问题(recursion)。适用于将想解决的一个问题转化为解决他的子问题,而他的子问题又变成子问题的子问题,子问题的解应能组合为整个问题的解。同时我们发现这些问题其实都是一个模型,也就是说存在相同的逻辑归纳处理项。总而言之,递归的思想是把规模大的问题转化为规模小的相似的子问题来解决,描述以自相似方法重复事物的过程,递归本质上也是函数的调用,是一种简化问题的思维方式,可以将计算机中的递归问题理解为数学中的归纳法。

从少儿编程看“计算思维”的习得与养成

模式认知,是指学习者对信息的获取、处理的模式。是利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法,或根据已有的直接经验和学习获得的间接经验,来解决需要解决的问题的过程。

抽象思维,通过抽象分析,把工作分出主次,剥离出核心和本质问题,然后着重去关注和解决这些主要的方面和问题。

算法设计与评估。可以理解为解决方案的设计与评估,属于一种具体的解决方案。运用好计算思维中的算法设计,严谨精确科学地规划好每一步方案,自然会达成目的。与此同时,在设计实验内容时,尝试多种方法来实现同一个计算任务,提倡算法多样化的同时,思考和分析已有算法的优缺点,进行简化和优化。这体现出在时间和空间之间,在计算机处理能力和存储容量之间需要进行折衷的思维方法,进而培养计算思维的多样性和灵活性。

所以计算思维将成为每一个人的解决实际问题所需技能的基本组成之一,而不仅仅限于科学家解决学术问题,或者软件工程师完成具体工作任务时才需要。

从少儿编程看“计算思维”的习得与养成

具体而言,计算机思维最重要的就是可以帮助人们在真实的情况下解决问题。一个真正问题的实现,由于种种的限制,你不可能达到一种完美的抽象,抽象的过程当中,一定会有各种各样的性质。如果当一个人碰到问题时,他会先对这个问题进行抽象,抽象之后去对它进行一种重新的计算性表达,然后发挥自己工程性的思维,会考虑这个问题的解决效率是不是高,表达是不是准确,那么就说明这个人确实是一个有计算性思维的人。其实从计算性思维角度来说,这就是给定有限的资源,我如何去设定几个并行的流程的问题,实际上说白了就是一个任务统筹设计。

普适计算之于今天就如计算思维之于明天。普适计算是已成为今日现实的昨日之梦,而计算思维就是明日现实。

MIT开发的Scratch,是一种可视化编程语言和环境,可通过简单直观的图谱结构实现编程,通过它设计的程序和算法亦可直接转换成为c++、c#、Java等高级程序语言,为程序和算法设计的基础课程提供教学实验环境。让程序设计课程从复杂的语法规则中解放出来,将内容重点转移到问题的抽象,算法的构造,程序的实现和评价等知识上,让学生不仅能掌握一门算法语言,更重要的是可以加深他们对相关软件实现的理解,从而进一步理解计算科学的本质――抽象和自动化,但是究其实质,学习Scratch以及进一步其他高级程序语言的根本目的还是“计算思维”(这种可以解决现实问题的普适性思维范式和能力)的习得和养成。

从少儿编程看“计算思维”的习得与养成

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多