Computer Science

What is computer science? Ask a hundred computer scientists, and you will likely receive a hundred different answers. One possible, fairly succinct answer is that computer science is the study of algorithms: step-by-step procedures for accomplishing tasks formalized into very precise, atomic (indivisible) instructions. An algorithm should allow a task to be accomplished by someone who—or something that—does not even understand the task. In other words, it is a recipe for an automated solution to a problem. Computers are tools for executing algorithms. (Not that long ago, a “computer” referred to a person who computed!)

What are the basic building blocks of algorithms? How do we go about finding algorithmic solutions to problems? What makes an efficient algorithm in terms of the resources (time, memory, energy) that it requires? What does the efficiency of algorithms say about major applications of computer science such as cryptology, databases, and artificial intelligence? Computer science courses at Sarah Lawrence College are aimed at answering questions such as those. Sarah Lawrence computer science students also investigate how the discipline intersects other fields of study, including mathematics, philosophy, biology, and physics.

Computer Science 2025-2026 Courses

First-Year Studies: Privacy, Technology, and the Law

First-Year Studies—Year | 10 credits

COMP 1025

What do TikTok, Bitcoin, ChatGPT, self-driving vehicles, and Zoom have in common? The answer lies in this course, which focuses on how digital technologies have rapidly altered (and continue to alter) daily life. In this course, we will develop a series of core principles that attempt to explain the rapid change and forge a reasoned path to the future. We will begin with a brief history of privacy, private property, and privacy law. Two examples of early 20th-century technologies that required legal thinking to evolve are whether a pilot (and passengers) of a plane are trespassing when the plane flies over someone's backyard and whether the police can listen to a phone call from a phone booth (remember those?) without a warrant. Quickly, we will arrive in the age of information and can update those conundrums: A drone flies by with an infrared camera. A copyrighted video is viewed on YouTube via public WiFi. A hateful comment is posted on reddit. A playful TikTok is taken out of context and goes viral for all to see. An illicit transaction involving Bitcoin is made between seemingly anonymous parties via Venmo. A famous musician infuriates their fanbase by releasing a song supporting an authoritarian politician—but it turns out to be a deepfake. A core tension in the course is whether and how the internet should be regulated and how to strike a balance among privacy, security, and free speech. We will consider major US Supreme Court cases that chart slow-motion government reaction to the high-speed change of today's wired world. In fall, students will meet weekly with the instructor for individual conferences; in spring, individual conferences will be biweekly. 

Faculty

Artificial Intelligence and Society

Open, Seminar—Fall | 5 credits

COMP 3213

In recent years, the field of artificial intelligence (AI) has made astonishing technical progress and has begun to assume an increasingly widespread and important role in society. AI systems can now (at least to some extent) drive cars; recognize human faces, speech, and gestures; diagnose diseases; control autonomous robots; converse fluently in English; instantly translate text from one language to another; beat world-champion human players at chess, Go, and other games; and perform many other amazing feats that just a few decades ago were only possible within the realm of science fiction. This progress has led to extravagant expectations, claims, hopes, and fears about the future of AI technology and its potential impact on society. In this course, we will attempt to peer beyond the hype and to come to grips with both the promise and the peril of 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.

Faculty

Introduction to Computer Science: The Way of the Program

Open, Small Lecture—Fall | 5 credits

COMP 2012

This lecture will be a rigorous introduction to computer science and the art of computer programming, using the elegant, eminently practical, yet easy-to-learn programming language Python. We will learn the principles of problem solving with a computer while gaining the programming skills necessary for further study in the discipline. We will emphasize the power of abstraction and the benefits of clearly written, well-structured programs, beginning with imperative programming and working our way up to object-oriented concepts such as classes, methods, and inheritance. Along the way, we will explore: the fundamental idea of an algorithm; how computers represent and manipulate numbers, text, and other data (such as images and sound) in binary; Boolean logic; conditional, iterative, and recursive programming; functional abstraction; file processing; and basic data structures, such as lists and dictionaries. 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.

Faculty

Compilers: How Computers Execute Their Programs

Intermediate/Advanced, Seminar—Fall | 5 credits

COMP 3867

Prerequisite: Introduction to Computer Programming (COMP 2010) or equivalent and permission of the instructor

Note: Programming experience is required. Familiarity with computer organization is recommended.

Compilers are often known as translators—and for good reason: Their job is to take programs written in one language and translate them to another language (usually assembly or machine language) that a computer can execute. It is, perhaps, the ideal meeting between the theoretical and practical sides of computer science. Modern compiler implementation offers a synthesis of: 1) language theory: how languages (both natural languages and programming languages) can be represented on, and recognized by, a computer; 2) software design and development: how practical software can be developed in a modular way—for example, how components of one compiler can be connected to components of another compiler to form a new compiler; and 3) computer architecture: understanding how modern computers work. In this course, we will write a program implementing a nontrivial compiler for a novel programming language (partly of our own design). Topics covered will include the difference between interpreters and compilers; regular expressions and finite automata; context-free grammars and the Chomsky hierarchy; type checking and type inference; contrasts between syntax and semantics; and graph coloring as applied to register allocation. Conference work will allow students to pursue different aspects of compilers, such as compilation of object-oriented languages, automatic garbage collection, compiler optimizations, just-in-time compilation, WebAssembly, and applications of compiler technology to natural-language translation.

Faculty

The Computational Beauty of Nature

Open, Small Lecture—Spring | 5 credits

COMP 2055

This course will explore the concepts of emergence and complexity within natural and artificial systems. Simple computational rules interacting in complex, nonlinear ways can produce rich and unexpected patterns of behavior and may account for much of what we think of as beautiful or interesting in the world. Taking this as our theme, we will investigate a multitude of topics, including: fractals and the Mandelbrot set; chaos theory and strange attractors; cellular automata, such as the Wolfram rules and Conway's Game of Life; self-organizing and emergent systems; formal models of computation such as Turing machines; artificial neural networks; genetic algorithms; and artificial life. The central questions motivating our study will be: How does complexity arise in nature? Can complexity be quantified and objectively measured? Can we capture the patterns of nature as computational rules in a computer program? What is the essence of computation, and what are its limits? Throughout the course, we will emphasize mathematical concepts and computer experimentation rather than programming, using the computer as a laboratory in which to design and run simulations of complex systems and observe their behaviors.

Faculty

Games Computers Play

Open, Seminar—Spring | 5 credits

COMP 3112

This course will be an introduction to computer programming through the lens of old-school, arcade-style video games such as Pong, Adventure, Breakout, Pac-Man, Space Invaders, and Tetris. We will learn programming from the ground up and demonstrate how it can be used as a general-purpose, problem-solving tool. The course will emphasize the power of abstraction and the benefits of clearly written, well-structured code, covering topics such as variables, conditionals, iteration, functions, lists, and objects. We will focus on event-driven programming and interactive game loops. We will consider when it makes sense to build software from scratch and when it might be more prudent to make use of existing libraries and frameworks rather than reinventing the wheel. Some of the early history of video games and their lasting cultural importance will also be discussed. Students will design and implement their own low-res, but fun-to-play, games. No prior experience with programming or web design is necessary (nor expected, nor even desirable).

Faculty

Biologically-Inspired Artificial Intelligence

Intermediate, Seminar—Spring | 5 credits

COMP 3214

Prerequisite: at least one semester of programming experience in a high-level, object-oriented language such as Python, Java, or C++

The field of artificial intelligence (AI) is concerned with reproducing in computers the abilities of human intelligence. In recent years, exciting new approaches to AI have been developed, inspired by a wide range of biological processes and structures that are capable of self-organization, adaptation, and learning. These sources of inspiration include biological evolution, neurophysiology, and animal behavior. This course is an in-depth introduction to the algorithms and methodologies of biologically-inspired AI and is intended for students with prior programming experience. We will focus primarily on machine-learning techniques—including genetic algorithms, reinforcement learning, artificial neural networks, and deep learning—from both a theoretical and a practical perspective. Throughout the course, we will use the Python programming language to implement and experiment with these algorithms in detail. Students will have many opportunities for extended exploration through open-ended, hands-on lab exercises and conference work.

Faculty

Geospatial Data Analysis

Open, Seminar—Fall

Geospatial data is information associated with locations on the surface of the Earth and can include a variety of different types of data used in environmental science, such as sample collection locations at a field-study site, the areal extent of a forest biome, or the output generated by global climate models. The analysis of geospatial data also allows social scientists to identify disparities in access to natural resources or exposure to pollutants and hazards and has been critical to the study of environmental justice. This course provides an introduction to foundational concepts in physical geography and geodesy, cartography and geostatistics, along with practical experience in geospatial data analysis using open source Geographic Information Systems (GIS) software. Although we will focus primarily on environmental applications, the skills learned in this course can be utilized in many natural and social-science disciplines, as well as to help you avoid getting lost!

Faculty

Calculus I: The Study of Motion and Change

Open, Small Lecture—Fall

Our existence lies in a perpetual state of change. An apple falls from a tree, clouds move across expansive farmland, blocking out the sun for days; meanwhile, satellites zip around the Earth, transmitting and receiving signals to our cell phones. Calculus was invented to develop a language to accurately describe the motion and change happening all around us. The ancient Greeks began a detailed study of change, but they were scared to wrestle with the infinite; so it was not until the 17th century that Isaac Newton and Gottfried Leibniz, among others, tamed the infinite and gave birth to this extremely successful branch of mathematics. Though just a few hundred years old, calculus has become an indispensable research tool in both the natural and social sciences. Our study begins with the central concept of the limit and proceeds to explore the dual processes of differentiation and integration. Numerous applications of the theory will be examined. Weekly group conferences will be run in hands-on workshop mode. This course is intended for students interested in advanced study in mathematics or sciences, students preparing for careers in the health sciences or engineering, and any student wishing to broaden and enrich the life of the mind. 

Faculty

An Introduction to Statistical Methods and Analysis

Open, Lecture—Fall

Variance, correlation coefficient, regression analysis, statistical significance, and margin of error—these terms and other statistical phrases have been bantered about before and seen interspersed in news reports and research articles. But what do they mean? How are they used? And why are they so important? Serving as an introduction to the concepts, techniques, and reasoning central to the understanding of data, this course will focus on the fundamental methods of statistical analysis used to gain insight into diverse areas of human interest. The use, misuse, and abuse of statistics will be the central focus of the course; and specific topics of exploration will be drawn from experimental design theory, sampling theory, data analysis. and statistical inference. Applications will be considered in current events, business, psychology, politics, medicine, and many other areas of the natural and social sciences. Statistical software will be introduced and used extensively in this course, but no prior experience with spreadsheet technology is assumed. Group conferences, conducted in workshop mode, will serve to reinforce student understanding of the course material. This course is recommended for any student wishing to be a better-informed consumer of data, and strongly recommended for those planning to pursue advanced undergraduate or graduate research in the natural sciences or social sciences. 

Faculty

Calculus II: Further Study of Motion and Change

Open, Seminar—Fall and Spring

Calculus is the mathematical gift that keeps on giving—thank you, Newton and company! In this course, students will expand their knowledge of limits, derivatives, and integrals with concepts and techniques that will enable them to solve many important problems in mathematics and the sciences. By the end of the course, students will be able to judge whether answers provided by engine services such as WolframAlpha or ChatGPT are correct. Topics will include differentiation review, integration review, integration with non-polynomial functions, applications of integration (finding area, volume, length, center of mass, moment of inertia, probability), advanced techniques for integration (substitution, integration-by-parts, partial fractions), infinite sequences, infinite series, convergent and divergent sums, power series, differential equations and modeling dynamical systems, and, time permitting, parametric equations of a curve and polar coordinates. Students will work on a conference project related to the mathematical topics covered in class and are free to choose technical, historical, crafty, computational, or creative projects.

Faculty

Multivariable Mathematics: Linear Algebra, Vector Calculus, and Differential Equations

Intermediate, Seminar—Year

Rarely is a quantity of interest—tomorrow’s temperature, unemployment rates across Europe, the cost of a spring break flight to Fort Lauderdale—a simple function of just one primary variable. Reality, for better or worse, is mathematically multivariable. This course will introduce an array of topics and tools used in the mathematical analysis of multivariable functions. The intertwined theories of vectors, matrices, and differential equations and their applications will be the central themes of exploration. Specific topics to be covered will include the algebra and geometry of vectors in two, three, and higher dimensions; dot and cross products and their applications; equations of lines and planes in higher dimensions; solutions to systems of linear equations, using Gaussian elimination; theory and applications of determinants, inverses, and eigenvectors; volumes of three-dimensional solids via integration; spherical and cylindrical coordinate systems; and methods of visualizing and constructing solutions to differential equations of various types. Conference work will involve an investigation of some mathematically-themed subject of the student’s choosing.

Faculty

First-Year Studies: Foundations of Modern Physics

First-Year Studies—Year

Our everyday experiences with the world around us give us an intuitive knowledge of some of the principles of physics; however, many areas of contemporary physics study the unseen—literally! This course will guide students through the core principles needed to understand modern physics and to think like a physicist. As we develop our knowledge of physics, we will study puzzles, thought experiments, and toy models of the real world to uncover the nature of our universe. Unlike traditional introductory physics courses, we will start with the modern formulations of classical mechanics, which lay the groundwork for how physical theories, including quantum mechanics, have been developed over approximately the last 100 years. We will also see how forces, such as the electromagnetic force and gravity, can be understood as field theories acting everywhere in space. As we develop our physics toolbox, we will focus on building a deep and intuitive understanding of the material, including the fundamental mathematics needed to study physics. This course will be mathematically rigorous; and while prior exposure to calculus will be helpful, a deep interest in mathematical reasoning will be essential. This seminar will focus on understanding the real-world physics at play. Work in this course will largely consist of problem sets designed to develop thinking and showcase progress over the course of the year. Biweekly in fall, students will have individual conferences with the instructor to explore a physics topic while developing skills to read and analyze research articles. In alternate weeks, students will meet for group conferences as problem-solving sessions. Occasionally, we will conduct a lab during group conference so students can experience the physics that they are studying. Biweekly in spring, students will meet with the instructor for individual conferences.

Faculty

The Origins of Language: What Babies, Animals, and Machines Can Tell Us

Open, Small Lecture—Fall

What makes linguistic communication possible? Do other primates "talk"? How do we understand messages from one another despite uncertainty and noise? In this course, we will consider central questions about language: Are we the only ones who have it? When did we learn it? How does artificial intelligence mimic it? This course will start with an introduction to comparative research with other species (nonhuman primates, whales, and insects), allowing students to consider many possible forms of communication. Next, we will look at humans. What can studies with babies and children tell us about the nature of our communication system? Finally, we will explore how large language models, such as ChatGPT, produce text that might look and feel like human writing. What have these models learned, and how should we study them? Students should come prepared to engage with the topic of communication from multiple perspectives, including empirical/scientific and critical. Through weekly small-group conferences, students will develop projects that relate the course to their collective interests, such as learning and communicating in Toki Pona (a philosophical artistic-constructed language), researching the limits of artificial intelligence language models, observing and analyzing children’s communication, or designing a behavioral intervention study that implements and evaluates different communication practices.

Faculty