计算机主宰着许多人的生活。谁不每天在他们的“手机”上记录数小时的屏幕时间——是的,这种设备可以发起或接听电话,但主要用作他们的电子邮件、短信以及整个信息和娱乐网络的迷你门户?
对于普通人来说,软件的一个关键特征是它的隐形性。它在背景中嗡嗡作响,很少被察觉(至少在它停止按预期运行之前)。然而,对于科学家来说,背景往往是前景。毕竟,是科学家首先开发了计算软件,以以前只能想象的无差错速度执行日常任务。
今天,在某种程度上,科学家们仍在编写自己的代码,这也许令人惊讶。我们能满足于这只是一个简单的观察,还是应该把它看作是庆祝或沮丧的原因?
对于加州理工学院的施密特学院来说,现在已经进入了第五个年头,这是上述所有方面的一些。由于要求科学家编写、维护和优化他们研究所需的代码越来越低效,科学家需要翻译人员:能够理解科学但最流利的人是编程语言。
施密特学院(Schmidt Academy)为解决这一困境提供了一个巧妙的干预措施:应届计算机科学毕业生被邀请到加州理工学院,在科学实验室工作一两年,并接受指导;同时,他们将软件工程最佳实践带给主办的研究小组,希望能激励所有团队成员在此过程中编写更好的代码。
认识霍华德·德松(Howard Deshong),施密特学者,哈维·穆德学院(Harvey Mudd College)的应届毕业生,并快乐地居住在物理学助理教授卡特琳娜·查齐奥安努(Katerina Chatziioannou)的实验室,该实验室分析激光干涉仪引力波天文台(LIGO)的数据。“施密特学院之所以吸引我,是因为它迎合了我最大的两个兴趣——科学和软件,”Deshong说。“它承诺会抓挠这两个痒处,并且已经兑现了这一承诺。
自 2022 年以来,Deshong 一直在重写 BayesWave 的代码,BayesWave 是一个用于处理来自华盛顿州汉福德和路易斯安那州利文斯顿的 LIGO 探测器的数据的程序。“当引力波通过它们时,这些探测器的长度会发生变化,从而扭曲广义相对论所描述的时空,”Deshong解释说。“这些变化非常小——探测器有数公里长,在引力波的影响下,它们的长度变化不到一个原子的宽度——因此科学家和工程师付出了巨大的努力来清理数据中的噪音。
贝叶斯波在过去10年中几乎完全由LIGO科学家组装而成,他们当然非常熟悉探测器的工作原理,外来噪声的潜在来源,以及引力波的模式指示特定类型的宇宙事件。但引力波天体物理学领域正在迅速扩展,迄今为止已经探测到100多个。随着许多LIGO科学家构思和实施新的用例,该代码的应用范围不断扩大,还有更多的进展尚未到来。用Chatziioannou的话来说,负担已经变得“笨拙”。因此,她向施密特学院提出申请,希望聘请一位能够“清理基线内容”的软件工程师——将BayesWave从1970年代首次开发的编程语言C翻译成其后继者C++——并使LIGO科学家能够满足即将到来的观测需求。
Chatziioannou 指出,Deshong“本可以什么也没学到,只是简单地将现有代码翻译并修复问题。但是,由于Deshong参加实验室研讨会,并且能够掌握推动软件创建和扩展的科学知识,因此他能够与各种研究生、博士后和其他科学家合作,以更好地满足他们的数据分析需求。如果Deshong对所需的软件工程感到不知所措,他可以去找他的导师,施密特学院的讲师Donnie Pinkston(BS ’98)。“他有很多关于软件设计的建议,”Deshong说。“他要么会准备好深思熟虑的答案,要么他会知道在哪里指出我,这样我就可以学到更多。”
兴华期货
施密特学院于 2018 年由 Schmidt Futures 资助,这是一项由 Eric 和 Wendy Schmidt 创立的慈善计划。John E. and Hazel S. Smits地球物理学教授、加州理工学院地震实验室主任兼领导主席Mike Gurnis被聘为主任,施密特学院正在进行中。
2019年夏天,四名“施密特学者”来到加州理工学院,开始与加州理工学院校友平克斯顿(Pinkston)合作,平克斯顿自2005年以来一直在该研究所教授计算机科学。预计 2020 年将有 12 名施密特学者加入最初的四名,Gurnis 聘请了 Dave Rumph (BS ’80),他曾在施乐的帕洛阿尔托研究中心担任软件工程师,在那里他帮助开发了第一台彩色激光打印机原型,以及其他成就。
很快,加州理工学院计算机科学专业毕业生就无法为施密特学院的所有职位提供员工服务。“加州理工学院的许多本科生在毕业时都准备去一个新的地方,”平克斯顿说,“他们正在获得诱人的行业工作机会。
幸运的是,解决这一困境的方法就在克莱蒙特学院联盟的科学与工程学院哈维穆德学院(Harvey Mudd College)以东25英里处。加州理工学院校友凯瑟琳·布里登(Katherine Breeden,BS ’08)是哈维·穆德(Harvey Mudd)的计算机科学助理教授,她很早就加入了施密特学院指导委员会,此后在招募哈维·穆德(Harvey Mudd)最近的毕业生加入加州理工学院的项目方面发挥了重要作用。哈维·穆德(Harvey Mudd)的计算机科学毕业生在工业界拥有丰富的工作机会,但加州理工学院对他们来说是新的,在如此丰富的研究实验室工作的机会也是如此。加州理工学院和哈维·穆德(Harvey Mudd)的毕业生现在都填补了每届施密特学者的行列。
为什么科学家需要软件工程师
毋庸置疑,软件在当今的科学中很重要。正如 Theodore Y. Wu 环境科学与工程教授兼 JPL 高级研究科学家 Tapio Schneider 所指出的那样,“在某些领域,整个科学工作流程可以自动化。材料设计就是这样一个领域。通常,您构思一种材料,合成或组装它,并在实验室中表征和测试其特性。冲洗并重复。过去,所有这些都是手动完成的,但现在你可以通过人工智能(AI)和自动化实验室来自动化很多工作,有时甚至是所有工作。
对于如此复杂的过程,科学家必须编写软件,或者至少对它能做好和不能做好的事情有深刻的理解,然后成功地与实验室中的其他人进行沟通。正如施耐德所说,“人工智能和计算是新的微积分。与微积分和统计学是科学家和工程师教育的基本组成部分类似,学习人工智能原理和应用也应该同样受到重视。或者正如 Gurnis 所说,“我们在科学领域所做的一切都依赖于真正好的软件。
当然,科学家在为自己的项目开发软件工程方面可以发挥作用,而且,Gurnis说,“这些进步通常非常出色。但是,可以预见的是,存在局限性。在科学理论和方法之上学习软件工程是一个很大的提升。“这不是你能在一个月内学会的东西,”Chatziioannou评论道。“这是一项巨大的技能。”
除了技能问题之外,加州理工学院等研究型大学的大多数实验室都有很高的离职率:他们的主要目标之一是培养崭露头角的科学家,他们通常只在家工作三到五年。David Van Valen(PhD ’11)是生物学和生物工程助理教授,也是传统医学研究所的研究员,迄今为止,他的实验室已经接待了三位施密特学者。他说,科学家编写软件的最大障碍之一是“你有一个需要分析的科学问题,所以你只做足够的工作来解决你的一个问题,然后负责这个问题的学生毕业。对于每个人,每一个新问题,都必须重新发明轮子。
Rumph 这样描绘这幅图景:“研究生或博士后获得他们的数据。他们写下它,他们发表它,他们获得学位,然后他们离开。然后一些新的研究生进来,想延长这项工作。PI(首席研究员)说,“哦,弗雷德正在做这样的事情。你应该从他离开的地方继续。我想是第3版,或者是第3A版?没有文档,它甚至不再起作用了。新生花了一两个月的时间试图弄清楚这个软件应该如何工作。他们扯掉头发,最后他们说,’算了,我要重新开始。他们在编写新软件时会再次犯同样的错误,这让他们付出了六个月的代价。
即使实验室人员没有变化,为狭隘目的而制作的软件也往往不会很好地老化。“软件不是一个稳定的东西,”Pinkston 解释道。“它存在于一个不断变化的环境中。操作系统更改,库更新,硬件更改。结果是,完美运行的代码在两年后就毫无用处了。Gurnis说,要么软件停止工作,“要么它非常复杂,但它不能被修改以完成科学需要它做的最新和最伟大的事情。
“如果软件是模块化的,更像是一个工具箱,如果它有很好的文档记录和可扩展性,并且有适当的测试来确保它运行,”Rumph 说,“那么他们就不必浪费时间了。施密特学院教授的正是这些“软件工程最佳实践”,因为它们在业内广为人知。
施密特学院为年轻软件工程师提供什么
在运营的头四年中,施密特学院已经成功招募了填补加州理工学院空缺职位所需的所有学者,但这不是一项微不足道的任务。“软件工程师在商业、大型科技公司和政府部门有很多机会。每个人都想要这些人,“Gurnis说。“我们想做的是通过研究型大学,至少是暂时的,将他们中的一些人汇集起来。
Breeden对此表示赞同。“很多新职位都在安全和人工智能等领域,”她说。“这些人显然对招收我们的学生感到兴奋,但你也可以用计算机做很多其他很酷的事情。在为施密特学院招聘时,布里登告诉学生,“如果你对Kindle软件进行调整,向1000万客户推出,你就会有一个很长的杠杆,影响很多人。这是衡量影响的一种方式。但是使用科学软件,您可能正在从事更定制的工作。也许世界上只有一百名研究人员在宇宙学这个特定领域工作。您可能正在制作一种工具,可以彻底改变他们的工作流程,并对科学发现的步伐或工作的可复制性产生巨大影响。对于一个 20 岁出头的人来说,能够做到这一点真是太棒了。施耐德说,“施密特学者正在创造科学的未来。他们正在开创一种在几十年内将很普遍的科学研究方式。
将学者与项目相匹配
施密特学院的指导委员会由施密特学院的人员、加州理工学院和哈维·穆德学院的教师以及卡内基科学研究所的一名物理学家组成,他们认为学者和项目的匹配是其最重要的任务之一。11 月,教职员工会接到电话,了解谁可能有兴趣接待施密特学者。然后,教师必须在 12 月中旬之前申请施密特学者,这些申请具有竞争力。
布里登解释说,委员会考虑了几个因素。首先,她说,“你必须有那种’金发姑娘’的项目规模。如果它的范围太广,学者可能在一两年内完成这项工作是不可行的。其次,实验室必须包括适当的联络人:“Dave Rumph 将前往该小组,采访 PI,并弄清楚实验室中潜在的专业知识在哪里,无论是研究生、博士后还是本科生,”她说。他正在小组中寻找一两个人,他们可以成为施密特学者和小组之间的桥梁,因为这一切都是为了促进这种沟通。Rumph说,这是关键,因为“其中一个挑战是实验室为软件工程师而不是新的研究生准备的程度。最后,项目的性质是一个考虑因素。Breeden说:“我们一直在寻找像’哇!如果我们在这里应用高质量的软件工程,那将只是火箭助推器,它们在科学上正在做什么。
选择学者对施密特学院的成功同样重要。审查申请人的首要任务是确保他们有足够的数学和科学背景。“我们需要了解物理、数学、生物学、化学的软件工程师,如果这是他们正在做的事情,”Schneider说。“他们很难雇用。”这就是为什么施密特学院到目前为止只包括加州理工学院和哈维·穆德的毕业生,因为这两所学院都要求所有本科生广泛接触全方位的科学学科。(如果施密特学者有必要的背景,他们正计划从其他大学引进施密特学者。
只有这样,匹配才开始。“向学者介绍可用的项目,他们让我们知道他们想加入哪些项目,”平克斯顿解释道。Pinkston 和 Rumph 在学者匹配后各自承担一个项目,作为他们对施密特学院持续贡献的一部分。这样一来,学者和教师都在同一时间经历相同的过程,尽管涉及不同的项目。
实地施密特学院
当新的施密特学者在7月底或8月初抵达校园时,他们已经被分配到实验室,并承诺进行一年的工作,并可选择继续第二年。(大多数学者在加州理工学院呆了两年。他们做的第一件事就是见到他们的施密特学者同事和他们的导师 Pinkston 和 Rumph。这是通过平克斯顿(Pinkston)开设的新兵训练营完成的,该训练营是加州理工学院CS 130的强化版本,CS 130是冬季学期提供的软件工程课程。学者们练习设计和测试小型项目。研究生也可以参加这门课,无论是否获得学分,特别鼓励那些将与施密特学者密切合作的研究生这样做。
刚刚从哈维·穆德(Harvey Mudd)毕业的大卫·皮特(David Pitt)很高兴在去年八月的新兵训练营中开始他的施密特奖学金。“除了上学之外,我在大四的时候全职工作,我尝到了在工业界工作的滋味,所以我决定尝试一年别的东西,”他说。皮特将从事一个人工智能项目,涉及“一种称为物理信息神经网络的新型神经网络”。
新兵训练营结束后,施密特学者继续每周开会,轮流介绍他们项目的进展情况。此外,他们每两周与 Rumph 或 Pinkston 单独会面一次,如果需要,可以更频繁地会面。作为第一步,学者们采访了他们实验室的成员,以了解他们的软件需求。然后,布里登说,“他们建造脚手架。他们确定第一年工作的可交付成果,并制定一个实用的时间表。
由于施密特学者被嵌入到将使用他们开发的软件的实验室中,“信息交换每天都在发生,”Van Valen说。“在六个月内,他们对科学有足够的了解,能够真正推进他们所承担的任务。
施密特学者确实遇到了一些计算机科学毕业生在工业界很少遇到的挑战。“很多学者都在做’软件考古学’,”布里登解释道。“他们正在研究20或30年前用我们不再教授的语言编写的科学软件包。例如,他们必须精通FORTRAN,或者他们需要阅读几十年前发射的卫星的飞行软件。
迄今为止,施耐德的CliMA实验室已经有四位施密特学者,比校园里任何其他研究小组都多。“我们正在建立一个地球系统模型,该模型由大气模型和陆地模型组成,以及一个主要在麻省理工学院开发的海洋模型,”他解释说。这些气候模型是巨大的。“他们有数百万行代码。实际上,除了核代码之外,这些可能是现存最复杂的科学软件。因此,我们所做的部分工作是尝试将这种复杂性降低到我们真正需要的程度。
Julia Sloan 于 2022 年毕业于加州理工学院,获得计算机科学学位,她正在 CliMA 实验室开始她作为施密特学者的第二年。“我正在研究陆地模型和耦合器,这是软件的一个组件,它将模型的各个部分(大气、陆地和海洋)连接在一起。一旦这个气候计算项目完成,它将用于快速准确地预测未来几十年甚至几个世纪的全球气候。
“CliMA是一个了不起的项目,”施密特学院的校友Ben Mackay说。“它融合了软件、数学和物理问题,同时得到解决。这是一个非常充满活力和协作的工作场所,我很荣幸能成为其中的一员。我在施密特学院的时光无疑证实了我攻读气候科学博士学位的愿望。麦凯现在是加州大学圣地亚哥分校斯克里普斯海洋学研究所的气候科学博士生。
施密特学院内的机会多种多样,让学者们有机会追求多种兴趣。“我主修计算机科学,但在哈维·穆德(Harvey Mudd)期间,我也上过物理课,”施密特大学二年级学者亚历克斯·哈德利(Alex Hadley)说。“我对软件工程这个职业很感兴趣,但我不想放弃我对物理学的兴趣。”哈德利正在从事一个名为“量子实验软件平台”的项目,该项目由约翰·布劳恩应用物理学和物理学教授奥斯卡·佩因特(Oskar Painter)监督。
施密特学者斯凯拉·格林(Skylar Gering)在哈维·穆德(Harvey Mudd)学习计算机科学和数学,重点是环境分析。“我真的希望有机会提高我的软件技能,同时从事一个对我有意义的项目,”Gering 说。“我曾在太平洋西北国家实验室和美国国家海洋和大气管理局实习,从事科学软件方面的工作,但由于哈维·穆德(Harvey Mudd)是一所仅限本科生的机构,我想在研究生实验室工作,然后再决定是否要自己去读研究生。
Gering的项目重点是海冰耦合。她解释说:“我们看到全球海冰正在迅速减少。减少幅度最大的是包边缘的边缘冰区。在这些地区,海冰不是一大片,而是大量的浮冰,它们是独特的漂浮海冰块。我们将这些浮冰建模为多边形,以更好地了解这些区域的动态。
施密特学院的贡献
四年来,施密特学院是一个成功的故事,越来越多的加州理工学院教师渴望将施密特学者带入他们的实验室。“我们通常从教师那里收到的提案大约是我们可以支持的两倍,”加州理工学院副教务长兼力学与材料科学教授Howell N. Tyson, Sr.说。
现在世界上有几届校友,施密特学者的好处是显而易见的。有些人继续攻读研究生院,研究领域从资源管理到商业再到计算生物学。其他人已经进入工业界,有些人被聘为加州理工学院或其他研究型大学的永久软件工程师。
Iman Wahle (BS ’20) 在大学毕业后直接申请普林斯顿大学的研究生院学习神经科学。她被录取,但推迟了两年成为施密特学者。“我从学院学到了很多关于软件开发的知识,同时也学到了更多关于分析高维神经数据的计算方法的知识,”她说。
施密特学院的雄心壮志是改变科学与软件之间的关系。一次又一次,它成功了。“当人们问我这个问题时,”Van Valen说,“我说它可以让你做一种非常不同的科学,因为软件工程技能组合非常有帮助。Van Valen实验室已要求其Schmidt Scholars训练AI识别显微镜图像中不同类型的细胞。“人工智能与人类的能力不相上下,”Van Valen说。这些施密特学者开发的软件称为DeepCell,可供公众使用。
哲学教授弗雷德里克·埃伯哈特(Frederick Eberhardt)还监督了软件的开发,这些软件可供加州理工学院以外的其他领域使用。他曾与两位施密特学者合作开展因果特征学习项目。“我与前加州理工学院计算机科学专业学生 Krysztof Chalupka [PhD ’17] 和 Pietro Perona [Allen E. Puckett 电气工程教授] 一起,在 2014-16 年开发了概念验证代码,”Eberhardt 说。“然后,施密特学者将这个代码草稿变成了一个Python包,其中包括适当的文档和教程,并以模块化的方式设计,以便研究人员可以轻松地根据他们的特定设置调整代码。
施密特学院已经成为一个活生生的模型,展示了优秀的软件如何改变和加速科学。Rumph 和 Gurnis 说,这并不是让软件工程师参与大学环境中科学研究的唯一努力,但它是最早的努力之一,它的独特之处在于它使研究人员和新兴软件工程师都受益。“这是加州理工学院和施密特期货公司推出的一个非常独特的实验,”布里登说。“我不知道有哪所大学在开展这样的项目,而加州理工学院已经这样做了四年。
新闻旨在传播有益信息,英文版原文来自https://www.caltech.edu/about/news/software-in-science