西平县

首页 » 常识 » 预防 » 从谷歌创业的故事看编程思维和数学思维
TUhjnbcbe - 2020/12/29 12:48:00
小孩会得白癫疯吗         http://baidianfeng.39.net/bdfby/yqyy/

在如今这个互联网时代,有一家公司家喻户晓——它自年问世以来,在极短的时间内就声誉鹊起,不仅超越了所有竞争对手,而且彻底改观了整个互联网的生态。这家公司就是当今互联网上的第一搜索引擎:谷歌(Google)。

在这样一家显赫的公司背后,自然有许许多多商战故事,也有许许多多成功因素。但与普通商战故事不同的是,今天我们讲的是在谷歌的成功背后的一个和数学有关的故事。

谷歌算法的故事

谷歌作为一个搜索引擎,它的核心功能顾名思义,就是网页搜索。但事实上,即便在谷歌问世之前,互联网上的网页总数就已超过了诸如图书馆藏书数量之类传统搜索对象的数目。而且这还只是冰山一角,因为与搜索图书时单纯的书名搜索不同,互联网上的搜索往往是对网页内容的直接搜索,这相当于将图书里的每一个字都变成了搜索对象,由此导致的数量才是真正惊人的。

还有一个问题在当时是要了命了,因为无论搜索引擎的硬件如何强大,速度如何快捷,要是搜索结果有几百万条,那么任何用户想从其中“海选”出自己真正想要的东西都是几乎不可能的。这一点对早期搜索引擎来说可谓是致命伤。

这致命伤该如何治疗呢?药方其实很简单,那就是对搜索结果进行排序,把用户最有可能需要的网页排在最前面,以确保用户能很方便地找到它们。但问题是:网页的水平千差万别,用户的喜好更是万别千差,搜索引擎又怎能知道哪些搜索结果是用户最有可能需要的,并对它们进行排序呢?

正是在这种情况下,年初,谷歌公司的创始人,当时还是美国斯坦福大学(StanfordUniversity)研究生的佩奇(LarryPage)和布林(SergeyBrin)开始了对网页排序问题的研究。

在佩奇和布林看来,网页的排序是不能靠每个网页自己来标榜的,无论把关键词重复多少次,垃圾网页依然是垃圾网页。那么,究竟什么才是网页排序的可靠依据呢?出生于书香门第的佩奇和布林(两人的父亲都是大学教授)想到了学术界评判学术论文重要性的通用方法,那就是看论文的引用次数。在互联网上,与论文的引用相类似的是显然是网页的链接。因此,佩奇和布林萌生了一个网页排序的思路,那就是通过研究网页间的相互链接来确定排序。具体地说,一个网页被其它网页链接得越多,它的排序就应该越靠前。不仅如此,佩奇和布林还进一步提出,一个网页越是被排序靠前的网页所链接,它的排序就也应该越靠前。这一条的意义也是不言而喻的,就好比一篇论文被诺贝尔奖得主所引用,显然要比被普通研究者所引用更说明其价值。依照这个思路,网页排序问题就跟整个互联网的链接结构产生了关系,正是这一关系使它成为了一个不折不扣的数学问题。

经过大量的研究,佩奇和布林找到了一个不仅含义合理,而且数学上严谨的网页排序算法,他们把这个算法称为PageRank,不过要注意的是,虽然这个名称的直译恰好是“网页排序”,但它实际上指的是“佩奇排序”,因为其中的“Page”不是指网页,而是佩奇的名字。这个算法就是谷歌排序的数学基础,而其中的矩阵G则被称为谷歌矩阵(Googlematrix)。

佩奇和布林对谷歌算法的研究由于需要收集和分析大量网页间的相互链接,从而离不开硬件支持。为此,早在研究阶段,他们就四处奔走,为自己的研究筹集资金和硬件。直至年9月,他们才为自己的试验系统注册了公司——即如今大名鼎鼎的谷歌公司。

之后谷歌在短短数年间就横扫整个互联网,成为搜索引擎业的新一代霸主,佩奇和布林的那个排序算法无疑居功至伟。

大家可以通过谷歌的故事感受到数学对于计算机科学来说有多么重要了吧?那数学思维和编程思维之间又是一种什么样的关系呢?

数学是编程基础

编程思维的核心,不是编程语言,也不是语法,甚至不是算法或数据结构本身,而是如何分解问题,从中发现规律,建立解决问题的模型,并映射到合适的数据结构和算法上,然后才能根据算法写程序实现。

在此过程中,前两步分解和模式识别,其实完全隶属数学思维范畴,也是编程思维的基础。而抽象和算法才是编程思维所强调的。

所以,数学思维是基础的、重要的思维模式,为编程构想提供了发散的原点,可以说数学思维和编程思维两者是关系紧密的一对,同时他们都是归属于STEAM教育中强调的思维能力。

在STEAM教育中两者互相支撑

在STEAM教育中还有教师和家长们发现一个现象:编程能够帮助孩子理解数学抽象概念。

对于许多孩子来说,数学概念太抽象、离生活太远,不好理解。但是在编程的过程中,抽象的数学概念可以被转化为看得见的、具体的图像。

比如,在编程的过程中,孩子对于小数和分数会有更直观的理解。将代码中的小数点移动位置,屏幕上的物体的大小就会发生巨大的变化。孩子可以因此可以将抽象的小数和分数的概念变成鲜活的图形,印到脑子里。

编程还能够强化数学能力。如果孩子想用代码建造一个事务,那就要用到各种各样数学知识,并且还要调用抽象思维的能力。编程对孩子数学能力的强化是毋庸置疑的。

让孩子在学习数学的同时接触编程,可以让两个学科的知识在练习和应用的过程中互相映证和强化,是一个不错的选择。配合机器人和其他学习工具,能在“有趣”和“有用”两个维度激发孩子主动的学习的动机。因为有趣,才能激发其好奇心,去探索思考。因为有用,才能从中获得成就感,成为进一步学习的动力。

拓展阅读:

原来学编程有这么多收获,不让孩子学真的天理难容

上海师大教授写给孩子的信:向着人工智能时代“教育四大支柱”努力

学会编程,玩游戏就成了帮孩子变得更好的事

全国运营校区

广东校区

1、深圳南山BABYCITY旗舰校区

1
查看完整版本: 从谷歌创业的故事看编程思维和数学思维