分类
哈佛大学新闻

Coding for a causeCoding for a causeBringing back hopeBringing back hope

当他只有4岁的时候,杰拉尼·尼尔森第一次尝到了电脑的功能,他以一个名叫马里奥的动画水管工的形式出现了。

那年是尼尔森的生日,他的父母送给他一个任天堂娱乐系统,他很快就沉浸在了电子游戏的世界里。10岁时,尼尔森开始涉足个人电脑和网络游戏,正是在那里,他几乎是偶然地发现了让网络世界运转的代码。

“我是通过玩游戏进入电脑行业的,我家里有一台可以上网的电脑,”他说。“我记得有一次我在浏览器上右键点击了一个网页,看到上面写着‘查看源代码’。’这就是我如何学习HTML的。”

尼尔森说,这个发现不仅让他走上了自学编程的道路——先是学习HTML,后来又学习其他更复杂的语言——而且在某种程度上也让他走上了通往哈佛的道路。

如今,尼尔森是哈佛大学约翰·a·保尔森工程与应用科学学院约翰·l·勒布工程与应用科学副教授,他的工作重点是开发新的算法,使计算机系统更有效地工作。本学年结束时,他将离开哈佛大学,加入加州大学伯克利分校的教师队伍。

尼尔森说:“我是这里的计算理论小组的一员,从广义上讲,这意味着要对计算进行数学建模,并证明与这些模型相关的定理。”“所以我们可能想证明某个特定的问题无法解决,或者任何解决问题的方法都必须至少使用这么多时间或内存。证明有一些方法是内存或时间有效的,这通常被称为算法。”

流和草图

一般来说,Nelson的工作集中在两种类型的算法上——流媒体和草图,这两种算法都集中在占用很少内存的情况下。

尼尔森说,理解流媒体算法的一个基本方法是,想象有人读了一串数字,然后问他们的和。

他说:“如果我让你在最后告诉我所有数字的和,你可以通过在脑子里不断地记和来做到这一点,但你不需要记住所有的数字。”“但如果我让你告诉我第五个数字,你就不会记得了,因为你只记着这个流水账。您只使用了足够的内存来回答特定类型的查询。

“这是一个简单的例子,但也有其他不那么简单的情况,在这种情况下,有非常高效的内存算法,不需要记住每一项,但可以回答关于过去的重要问题,”他补充说。“例如,如果我是亚马逊(Amazon),我想知道人们昨天晚上7点到8点之间购买的热门商品是什么。我希望能够回答这个问题,而不需要我的数据结构真正记住那段时间的每一笔销售记录。”

尼尔森说,相比之下,草图算法的设计目的是让用户回答有关压缩数据的问题,即使他们无法访问原始数据。

“在文学作品中,素描的同义词是大纲,”他说。“所以,有时候你可能有多个数据来源……你希望能够画出其中一个的草图,以及另一个的草图,然后在不访问原始数据的情况下,用这些草图对它们进行比较。”

Nelson说,对于这种算法的实际应用,考虑您的垃圾邮件过滤器。

“因此,电子邮件就是一个文档,你可以对它应用一个草图算法来创建一个低维的表示,”他说。然后你可以对这些数据运行一个机器学习算法。我们的想法是,现在它的效率更高,因为它处理的是低维数据。”

从加勒比海到剑桥

尼尔森第一次发现HTML后不久就开始自学编程,但他很快就遇到了一个障碍:他家乡位于美属维尔京群岛圣托马斯岛上的唯一一家书店严重缺乏编程手册。

“在我七、八年级的时候,我们去了大陆,我去书店买了一本HTML书,”他说。“为了练习,我想为我的小妹妹做一个网站。我们都喜欢尼克国际儿童频道的节目“Rugrats”,我想在她的网页上放一张汤米的照片,但我担心会侵犯版权,所以我打电话给尼克国际儿童频道,请求他们允许在网站上放“Rugrats”的照片,但他们拒绝了。但他们拿走了我的信息,不久之后,我们收到了一个信箱,里面装着一堆赃物,比如录像带、t恤和玩具。”

尼尔森说,与此同时,他对数学也产生了浓厚的兴趣,并开始参加弗吉尼亚州亚历山大市(Alexandria)非盈利组织Mathcounts为中学生举办的竞赛。七年级时,他是代表美属维尔京群岛参加在华盛顿特区举行的全国比赛的少数学生之一

在高中四年级时,尼尔森开始对编程进行更深入的研究。他买了几本关于计算机语言C和c++的书,在看到麻省理工学院被评为全国计算机科学和数学最好的学校后,他申请了麻省理工学院。

尼尔森说:“当我来到麻省理工学院时,我想我对所有我不知道的事情都感到惊讶。”“在我的高中,我们没有AP课程。你能学到的最高水平的数学是单变量微积分,所以我不知道微积分之外还有什么数学。我以前从未真正见过创造性的数学解题,所以这是一个巨大的警钟。”

正是在麻省理工学院,从本科到研究生,尼尔森开始展示他的一项不寻常的技能——他惊人的打字速度。2010年,他以惊人的每分钟170个单词的速度,在TyperA(一家提供在线打字测试的网站)上拔得头筹。

“我把它当作一种拖延机制,”他说。“我会去参加一些打字速度的比赛,在某个时候,我已经在排行榜上名列前茅了。最近有人超过了我,但我想我仍然是前五名。”

有原因的编码

尼尔森的教育努力并不局限于哈佛校园。2011年,他在麻省理工学院(MIT)完成博士学位后不久,就在他母亲的家乡埃塞俄比亚创办了一个名为AddisCoder的教育项目,致力于向亚的斯亚贝巴的高中生教授编码和算法。

“我6月初就毕业了,但是我在伯克利的博士后直到8月才开始工作,所以我决定去埃塞俄比亚拜访一些亲戚,”他说。“我想,‘如果我要在这里呆很长时间,除了出去玩,我还能做什么?我想,“我为什么不教一门课呢?”最终,我有82名学生,我是唯一的讲师,还有一名志愿助教。”

该项目与梅莱斯泽纳维基金会(Meles Zenawi Foundation)合作,于2018年夏天为来自全国各地公立学校的175名学生提供教育。梅莱斯泽纳维基金会是为了纪念这位埃塞俄比亚前总理而成立的。其中近一半是女性。

尼尔森说:“课程为期四周,每天大约有90分钟的课程,其余时间他们都在计算机实验室里解决问题,所以这是非常实际的。”“2016年,当我与梅莱斯泽纳维基金会(Meles Zenawi Foundation)合作时,我们与教育部举行了一次会议,我们说,‘我们认为没有理由不平衡;我们确信你能找到非常有能力的女性加入这个课程。他们听着。最近的两个项目都包括了超过40%的女孩。而且,几乎所有上过这门课的学生都从未写过代码,也不知道计算机科学是什么,所以这个项目真的帮助向那些可能从未接触过计算机科学的孩子们传播了计算机科学。”

除了上课时间,这个项目在去年夏天还举办了一个职业日,吸引了十几个从事需要计算机科学知识领域工作的人参加,其中包括两名肯尼亚人和几名埃塞俄比亚人。

尼尔森说:“我们希望他们看到,不仅有facebook和谷歌,而且当地也有他们的工作机会。”

相关的

Suriya Kandaswamy '20, who intends to concentrate in computer science, explains a coding problem to Gardner Pilot Academy seventh-grader Diamonique Marmoucha during a Digital Literacy Project lesson.

种植茎的种子

哈佛学生在当地中学教授计算机科学

Researchers at the Wyss Institute for Biologically Inspired Engineering have developed a robot, known as "Root," aimed at teaching children to code.

根,代码教学机器人

Wyss Institute的创建旨在指导从5岁到中级程序员的所有人