计算机科学

什么是计算机科学?问一百个计算机科学家,你可能会得到一百个不同的答案。一个可能的、相当简洁的答案是,计算机科学是对算法的研究:一步一步地完成任务,形成非常精确的、原子的(不可分割的)指令。算法应该允许一个甚至不理解任务的人或事物完成一项任务。换句话说,它是一个问题自动化解决方案的配方。计算机是执行算法的工具。(不久以前,“计算机”指的是做计算的人!)

算法的基本构建块是什么?我们如何寻找解决问题的算法解决方案?是什么在它需要的资源(时间,内存,能量)方面进行了有效的算法?算法的效率如何了解计算机科学的主要应用,如密码学,数据库和人工智能?Sarah Lawrence学院的计算机 - 科学课程旨在回答这些问题。Sarah Lawrence计算机 - 科学学生还调查了学科如何与其他研究领域相交,包括数学,哲学,生物学和物理学。

计算机科学2021-2022课程

计算机科学导论:程序的方式

Open, Small Lecture-Fall | 5学分

这个讲座课程是对计算机科学和计算机编程艺术的严格介绍,使用优雅,非常实用,但易于学习的编程语言Python。我们将学习与计算机解决问题的原则,同时获得进一步研究学科所需的编程技能。我们将强调抽象的力量和明确书面,结构良好的程序的好处,从必要的编程开始,并使我们的方式达到面向对象的概念,例如类,方法和继承。一路上,我们将探讨算法的基本思想;计算机如何在二进制文件中代表和操作数字,文本和其他数据(如图像和声音);布尔逻辑;条件,迭代和递归编程;功能抽象;文件处理;和基本数据结构,如列表和词典。 We will also learn introductory computer graphics, how to process simple user interactions via mouse and keyboard, and some principles of game design and implementation. All students will complete a final programming project of their own design. Weekly hands-on laboratory sessions will reinforce the concepts covered in class through extensive practice at the computer.

学院

Web编程:简介

Open, Small Lecture-Spring | 5学分

本次研讨会介绍了计算机科学的基本原则,通过使用HTML和JavaScript,创建交互式网页。该种网络应用程序,我们将建立的例子包括:虚拟艺术画廊;密码生成器和验证器;和一个老派的,街机风格的游戏。我们将学习从地上爬起来JavaScript编程并演示如何可以用作通用,解决问题的工具。在整个过程中,我们将强调抽象的力量和写清楚,结构良好的代码的好处。我们将涵盖变量,条件,循环,函数,数组,对象和事件处理。我们还将讨论如何的JavaScript通过文档对象模型(DOM)和HTML,JavaScript和层叠样式表(CSS)之间的关系,超文本标记语言(HTML)进行通信。一路上,我们将讨论在网络中,建立标准的挑战,以及工具和驱动网络的成功技术的进化史。我们将了解客户端 - 服务器架构和客户端和服务器端Web编程之间的差异。 We will consider when it makes sense to design from the ground up and when it might be more prudent to make use of existing libraries and frameworks rather than reinventing the wheel. We will also discuss the aesthetics of web design: Why are some pages elegant (even art) when others are loud, awkward to use, or—worse yet—boring. Weekly hands-on laboratory sessions will reinforce the programming concepts covered in class. No prior experience with programming or Web design is necessary (nor expected nor even desirable).

学院

软件设计与开发

中级,研讨会年| 10学分

唐纳德·E·Knuth的,是世界上最杰出的计算机科学家之一,曾表示双方认为“计算机程序是有趣的写”和“软件是困难的。”本课程的目的是给学生的是什么样的设计和开发真正的软件味道。通过克努特引号说明这门课程的两个主题是不一定在赔率:编写好的软件不应该抵消写它带来的愉悦的挑战。一些主要的主题,我们将覆盖包括抽象的力量,设计从实现分离,版本控制,开发环境的选择,创造性地使用现有的软件库和工具,灵活的方式的好处,以及保持良好的文档的作用。Nowere是一句谚语,“有什么可以代替经验,”比在软件工程中更相关。考虑到这一点,这当然是为了要动手。设计和开发技术将主要通过使每一个学生设计学习和贯彻在整个学年单个软件项目。具体的主题:设计模式,包括模型 - 视图 - 控制器;分离核心算法的用户界面详情; wireframe techniques; alpha vs. beta testing; using distributed software versioning tools, such as GitHub; the role of abstract data types and precise API specification; code reviews; workshopping; and the less heralded—but crucially important—skills of documentation writing, software testing, and project management.

学院

数字中断

开放,研讨会 - 秋天|5学分

从TikTok到Zoom,从比特币到优步,从Instagram到Snapchat,到大规模多人在线游戏,到物联网,以及不可替代的代币,数字技术在社会中扮演着越来越“颠覆性”的角色。在这个FYS研讨会上,我们思考这个现象在近期和非近期可能会把我们带到哪里,以及我们是否(或将)能够(或应该)对此做些什么。电子计算机的小型化以及由此带来的计算能力的提高,利用这种能力的短期成本的降低,以及计算机网络的无处不在,把人和地方联系在了一起,使以前认为不可逾越的距离变得越来越微不足道。随着千兆光纤网络、智能手机和可穿戴电脑的出现,各种各样的信息可以在世界各地、人与物之间流动,也可以在瞬间返回。在许多方面,大量更小、更便宜、更快的网络设备改善了我们的生活质量。但是,高度互联的社会也有黑暗的一面:智能手机越多,工作狂就越多;短信交流越多,使用无人机越容易,隐私就越少;互联网覆盖的范围越广,错误信息传播的速度就越快,盗版、垃圾邮件和色情也就越多;遥控恒温器越多,网络恐怖主义的风险就越大。本次研讨会将聚焦于数字网络(网络、社交网络以及其他)与当前事件(包括经济、政治和法律)之间的关系。 The second half of the course will focus on the cultural impact of digital technology ranging from video games and science fiction to the rise of artificial intelligence. This is not a technical course, though at times we will discuss some details that lie behind certain crucial technologies—in particular, the internet and the World Wide Web. While this course is open to all students, first-year students may take the course as a regular seminar or as their FYS seminar. In the latter case, students will have weekly conferences and be expected to enroll in Introduction to Web Programming in the spring as a continuation of their FYS experience.

学院

编程语言原则

中级,研讨会 - 秋天|5学分

本课程通过研究和实现被称为解释器的计算机程序来探讨程序语言设计的原则,解释器是一种将其他程序作为输入处理的程序。一位著名的计算机科学家曾经说过,如果你不懂解释器,你仍然可以写程序——你甚至可以成为一个称职的程序员——但你不能成为一个大师。我们将从学习函数式编程开始,使用异常漂亮的递归编程语言Scheme。在熟悉Scheme和递归之后,我们将为自己设计的类似Scheme的语言开发一个解释器,逐步扩展它的功能。在此过程中,我们将熟悉lambda演算(现代编程语言理论的基础)、作用域机制、延续、惰性计算、不确定性编程以及其他主题(如果时间允许的话)。我们将使用Scheme作为我们的“元语言”,以一种精确的、分析的方式探索这些问题——类似于在自然科学中使用数学来描述现象的方式。然而,与数学相比,我们最大的优势在于,我们可以通过口译员的形式,直接在计算机上执行,来测试我们对语言的想法。

学院

人工智能与社会

Open, Seminar-Spring | 5学分

近年来,人工智能(AI)领域取得了惊人的技术进步,并开始在社会中扮演越来越广泛和重要的角色。人工智能系统现在(至少在某种程度上)可以开车了;识别人脸、语言和手势;诊断疾病;控制自主机器人;立即将文本从一种语言翻译成另一种语言;在国际象棋、围棋和其他游戏中击败世界冠军人类棋手;并实现了许多其他惊人的壮举,而这些在几十年前还只能在科幻小说中实现。这种进步导致人们对人工智能技术的未来及其对社会的潜在影响抱有过高的期望、主张、希望和恐惧。在本课程中,我们将尝试超越炒作,直面人工智能的承诺和危险。 We will consider AI from many angles, including historical, philosophical, ethical, and public-policy perspectives. We will also examine many of the technical concepts and achievements of the field in detail, as well as its many failures and setbacks. Throughout the course, students will be asked to read texts, write responses, do follow-up research, and participate in classroom discussions. This is not a programming course, and no background in computer programming is expected or required.

学院

数据结构与算法

中级,春季研讨会| 5学分

在本课程中,我们将学习对复杂计算机程序的设计很重要的各种数据结构和算法,以及管理程序复杂性的技术。在整个课程中,我们将使用Java,一种强类型的、面向对象的编程语言。涵盖的主题将包括类型和多态性、数组、链表、堆栈、队列、优先级队列、堆、字典、平衡树和图,以及用于操作这些结构的几个重要算法。我们还将学习分析算法效率的技术。将所有这些主题联系在一起的中心主题是抽象的概念以及信息隐藏和封装的相关概念,我们将在整个课程中强调这一点。每周的实验课将通过广泛的计算机实践来加强课堂上涵盖的概念。

学院

第一年研究:气候变化

开放、FYS-Year

气候变化将是未来几十年的决定性问题。气候变化威胁着人类社会所依赖的生态系统和基础设施,并将影响全球经济、政策制定和日常生活的大多数方面。本课程将借助物理学、化学和生物学的基本概念,提供理解地球为何变暖所需的地球系统科学的基础知识。在春季学期,我们将在此基础上研究全球气候、自然生态系统和人类社会之间的联系。我们将探讨生物多样性、土地利用、适应气候变化影响以及防止灾难性全球变暖所需的能源系统转型等议题。这门课将交替举行两周的个人会议和两周的关于气候数据分析、技术写作和科学交流的小组研讨会。

学院

地理空间数据

开放、Seminar-Spring

地理空间数据是与地球表面位置相关的信息。这可以包括环境科学中使用的各种不同类型的数据,如实地研究地点的样本收集地点、森林生物群落的面积范围或全球气候模型产生的输出。对地理空间数据的分析还使社会科学家能够确定在获得自然资源或接触污染物和危害方面的差异,这对环境正义的研究至关重要。本课程介绍大地测量学、地图学和地质统计学的基本概念,以及使用开源地理信息系统(GIS)软件进行地理空间数据分析的实际经验。虽然我们将主要关注环境应用,但在本课程中所学的技能可以应用于许多自然和社会科学学科,也可以帮助你避免迷路!

学院

微积分I:运动和变化的研究

秋季和春季研讨会开放

我们的存在在于永久变化状态。苹果从树上落下;云在膨胀的农田上移动,挡住了太阳的日子;同时,卫星在地球周围拉链,向我们的手机发送和接收信号。发明的微积分制定一种语言,以准确描述和研究我们所看到的变化。古希腊人开始了对变革的详细研究,但害怕与无限的搏斗;因此,直到17世纪,伊萨克·牛顿和格塔弗里德·莱布尼斯(Gottfried Leibniz)均驯服的无限,并生下这个极端成功的数学分支。虽然只有几百岁,但积极在自然和社会科学中成为一个不可或缺的研究工具。我们的研究始于中央概念,并继续探讨分化和集成的双重主题。将检查该理论的许多应用。 For conference work, students may choose to undertake a deeper investigation of a single topic or application of the calculus or conduct a study in some other branch of mathematics. This seminar is intended for students interested in advanced study in mathematics or science, students preparing for careers in the health sciences or engineering, and any student wishing to broaden and enrich the life of the mind.

学院

多元数学:线性代数,向量微积分和微分方程

中级,研讨会

利率的数量——明天的气温、欧洲各地的失业率、去劳德代尔堡的春假航班的费用——仅仅是一个主要变量的简单函数,这是很少见的。现实,无论好坏,在数学上是多变量的。本课程介绍多变量函数的数学分析的一系列主题和工具。向量、矩阵和微分方程的相互交织的理论及其应用将是这一年课程探索的中心主题。所涵盖的特定主题包括二维、三维和高维向量的代数和几何;点与叉积及其应用;高维的线和面方程;线性方程组的解,使用高斯消去法,行列式,逆向量和特征向量的理论和应用,通过积分的三维实体的体积,球和柱坐标系,以及可视化和构造各种类型微分方程的解的方法。会议工作将涉及学生选择的一些数学主题的调查。

学院

数学理论与实践:实分析与拓扑

中级,研讨会

牛顿和莱布尼茨的微积分是如此成功,以至于科学原谅了它的“流动”和“消逝量”的逻辑缺陷。然而,在19世纪,微积分发展成为对实变量函数的研究——实分析——这是一种基础严谨的模型,正是这种模型将数学定义为一门学科。在20世纪,对实数公理的探索揭示了关于实线空间属性的微妙假设。这些性质——例如连续性、可分性和维数——不依赖于大小,而依赖于更一般的位置概念。位置几何学,或今天称为拓扑学,就是对这些性质的研究。这个为期一年的研讨会将从离散数学的基础开始,包括符号逻辑、证明技术和集合理论。我们将在网络和曲面的背景下研究这些主题,这是一些最直观的拓扑对象。接下来将深入研究实数、序列和级数、极限、连续性、导数和积分。为了激励我们复习这些熟悉的微积分术语,本课程将阅读并讨论重要的反例,例如无微连续函数、无穷级数的重排和康托集。在今年年底,我们将回到拓扑学。 This will give us the opportunity to see how many of the geometric properties of curves, surfaces, and maps between them find a unified expression in terms of relations among point sets. Conference work will clarify seminar ideas and possibly their application to mathematical models in the natural sciences, computer science, or economics.

学院

经典力学(基于微积分的普通物理)

开放,研讨会

以微积分为基础的普通物理是大多数机构的标准课程;因此,本课程将为你在物理科学、工程或健康领域的更高级工作做准备。本课程将涵盖古典力学的入门,包括运动学、动力学、动量、能量和重力。重点将放在科学技能上,包括:解决问题、发展物理直觉、科学交流、技术的使用、实验的发展和执行。培养科学技能的最好方法就是实践科学过程。我们将在互动课堂和每周的实验室会议中,通过发现、测试、分析和应用基础物理概念来学习物理。

学院

科学研究中的能动理论与行动理论

开放、Lecture-Fall

本课程考察了科学、技术和社会研究中关于行为本质(或行为背后的动机和责任)的丰富的历史辩论。讲座课程从探索科学事实的本质开始,包括发现是如何做出的,以及它们是如何被社会接受的。我们将特别注意的概念合拍片人类和技术一起工作的理念位于行动,研究行动根植于社会背景的现实,研究技术如何成为社会互动的核心。这个基础理论将为学生们考虑正在进行的关于人类和非人类行为区别的辩论奠定基础。本课程的最后探索了三个当代讨论,涉及自动武器系统、残疾人辅助技术和使用算法来安排社会生活的代理性质。对于每个主题,我们将考虑技术如何影响社会互动,以及当事情出错时谁或什么应该负责。在小组会议中,学生将通过一系列的“物件阅读”,即对单一科技物件的简短分析,练习分析科技如何塑造社会互动。这些作业的目的是让学生为他们所选择的技术的最终小组分析做好准备。

学院

测量差异:构建种族、性别和能力

开放、Seminar-Spring

在本次研讨会中,我们将探讨分类社会学,这是一个对社会衡量差异的方式进行批判的分支领域,如种族、性别、能力和其他传达社会价值的社会类别。三个问题引导着我们的探究:社会如何构建和理解差异的范畴?人们如何体验和抵制自身的社会差异类别?社会差异如何塑造家庭、教育、就业和政府等机构?每周,学生将参与一组精选文本,这些文本将理论、社会类别的实质性研究,以及对这些文本的批判性回应,通过相互对话进行讨论。在期末专题中,学生将通过个人和小组的写作作业探索社会差异的一个方面。这些作业将提供文献分析方面的训练,这是一种在历史和人种学研究中经常使用的定性方法。学生在课程结束后,将有能力识别社会差异的领域、产生这些差异的实践,并对测量在社会世界中造成不平等的方式进行系统的批判。

学院

数码影像工作室

开放,研讨会

本课程侧重于数字图像操纵的当代技术,重点是Photoshop技能,包括成像,修饰和合成工作流程。我们将涵盖适当使用调整层,层面罩,修饰,甚至设计和基本动画。所涵盖的技能将为摄影,插图和更自然的数字实验领域的进一步探索和干预构建坚实的基础。虽然强调了适当的技术流程,我们将同样探索对软件的表现力,通过独立项目创建原创的个人工作。更广泛的课堂讨论将强调电脑生成的和管理的图像,超出Photoshop基础知识,作为艺术和媒体的驱动力,现在通知所有Implaking并反映我们的文化。鼓励学生探讨这种更大的背景中的数字工具的潜力,以及他们的个人工作和兴趣 - 视觉艺术相关或以其他方式强调开放的视觉可能性,以及技术和概念严谨。

学院

三维建模

开放、Seminar-Spring

本课程将学生介绍了在计算机的虚拟空间内构建数字对象和环境的过程。强调将坚定地掌握形式,空间和组成。将彻底行使硬边和有机表面建模的基础,而数字工具的进一步探索将覆盖着虚拟相机的阴影和纹理,照明和渲染。在学期的过程中,学生将受到挑战,以创造越来越复杂的物体,环境和图像。通过密集的动手工作室时间,以及通过读数和讨论,学生们也会鼓励学生考虑在幻觉数字空间中工作的概念后果。艺术,电影和媒体和媒体 - 并置的当代例子的例子,伴随着艺术和哲学的视觉幻觉 - 将形成一个更广泛的背景,用于检查培养基。

学院

摄影测量

开放、Concept-Spring

摄影测量是利用专业软件对一个物体或空间的多个摄影视图进行分析并重建成数字三维模型的过程。这些来自真实世界的不可思议的虚拟娱乐可以作为数字道具和环境,用于渲染、游戏和动画项目。在本课程中,我们将使用这个令人兴奋的过程,生成我们自己的模型,并将它们导入3D软件编辑,纹理,并将它们合并到更大的虚拟场景或将它们导出为游戏的资产,视觉效果,或其他更多的实验用途。我们将在受控的工作室环境和“纯空气”中工作,具有捕捉人造和自然物体和空间的能力,随后在计算机中生成它们的虚拟二重身,并将其转换为数字艺术对象的意义。

学院