CS 110
CS 110/ MAS 110 - Computing in the Age of AI

The rapid advancement of artificial intelligence (AI) is transforming the way we work, interact, and make decisions. AI is integrated into applications and devices that are woven into our daily lives. How does AI work? What impact will AI have on individuals, communities, and our global society?

This course aims to provide students with the knowledge and skills to become informed digital citizens in the age of AI, ready to navigate the digital landscape. Students will gain fundamental technical understanding of how computers, the Web, and AI work, and will study three programming languages: HTML5, CSS, and JavaScript. Students will also examine and discuss societal and ethical issues related to the Web and AI technologies, and consider responsible and future use of these technologies.

Units: 1

Max Enrollment: 40

Crosslisted Courses: MAS 110

Prerequisites: Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. No prior background with computers is expected.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall

Notes: Mandatory Credit/Non Credit.

CS 111
CS 111 - Comp Program & Prob Solving

An introduction to problem-solving through computer programming. Students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, data structures, abstraction, recursion, and modularity. Students explore these concepts in the context of interactive programs, data processing, and graphics or audio, using the Python programming language.

This course has a required co-requisite laboratory - CS 111L.

Units: 1

Max Enrollment: 30

Prerequisites: Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. No prior background with computers is expected.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Does not fulfill the laboratory requirement. Mandatory Credit/Non Credit.

CS 111L
CS 111L - Lab: Computer Programming & Problem Solving

Accompanying required laboratory for CS 111.

Units: 0

Max Enrollment: 15

Prerequisites: None.

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Spring; Fall

Notes:

CS 111M
CS 111M - Comp Programming & Problem Solving

An introduction to problem-solving through computer programming and public speaking. Students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, data structures, abstraction, recursion, and modularity. Students explore these concepts in the context of interactive programs, data processing, and using the Python programming language.

This is a Maurer Public Speaking course, and this course (CS 111M) incorporates both lecture and lab into one section; there is no need to register for a separate lab. This course provides multiple opportunities to learn and practice public speaking skills.

Units: 1

Max Enrollment: 18

Prerequisites: Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. No prior background with computers is expected. Open to First-Years and Sophomores.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes: Ann E. Maurer '51 Speaking Intensive Course. Does not fulfill the laboratory requirement. Mandatory Credit/Non Credit.

CS 111X
CS 111X - Computer Programming and Problem Solving

An introduction to problem-solving through computer programming. Students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, data structures, abstraction, recursion, and modularity. Students explore these concepts in the context of interactive programs, data processing, and graphics or audio, using the Python programming language.

Students in this section will complete self-directed weekly labs. This section is intended for students who have some previous programming experience, but would benefit from more before taking CS 230. Students unsure about whether to take CS 111, CS 111X, CS 111M, CS 112, CS 230, or CS 230X as their first Wellesley CS course should complete the CS placement questionnaire.

Units: 1

Max Enrollment: 36

Prerequisites: Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall

Notes: Mandatory Credit/Non Credit.

CS 112
CS 112 - Intro Computing for the Sciences

An introduction to problem-solving through computer programming with special focus on application to problems relevant to physics, chemistry, and biology. Students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, problem solving strategies, abstraction, recursion, and modularity. Students explore these concepts in the context of interactive programs, data processing, and graphical and numerical analysis, using the Python programming language. Students are required to attend a 2.5-hour lab where they will apply concepts learned in lecture to study topics at the intersection of chemistry and physics. Topics might include: chemical kinetics, numerical integration, molecular dynamics, computational biology, Monte Carlo techniques, and basic statistical analysis.

This course has a required co-requisite Laboratory - CS 112L.

Units: 1

Max Enrollment: 24

Prerequisites: MATH 115 and fulfillment of the Quantitative Reasoning portion of the Quantitative Reasoning and Data Literacy requirement. Prerequisites or Co-requisites - one of the following; ASTR 107, CHEM 105, CHEM 105P, CHEM 116 / BISC 116, CHEM 120, BISC 110, BISC111, BISC 112, BISC 113, ES 100, ES 101, GEOS 101, GEOS 102, NEUR 100, PHYS 100, PHYS 104, PHYS 106, PHYS 107, PHYS 108.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 112L
CS 112L - Lab: Intro to Computing for the Sciences

This is a required co-requisite laboratory for CS 112.

Units: 0

Max Enrollment: 12

Prerequisites: MATH 115 and fulfillment of the Quantitative Reasoning portion of the Quantitative Reasoning and Data Literacy requirement. Prerequisites or Co-requisites - one of the following; ASTR 107, CHEM 105, CHEM 105P, CHEM 116 / BISC 116, CHEM 120, BISC 110, BISC111, BISC 112, BISC 113, ES 100, ES 101, GEOS 101, GEOS 102, NEUR 100, PHYS 100, PHYS 104, PHYS 106, PHYS 107, PHYS 108.

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 121
CS 121/ MAS 121 - Intro to Game Design

Video games are a popular form of interactive media that engage players in dynamic experiences through unprecedented combinations of storytelling, visualization, interactivity, and multi-sensory immersion. This course will introduce students to video game production and concepts. We will develop a framework for critically analyzing this medium, learn to identify effective strategies for creating games and describe what elements of design impact the final experience of a game. We’ll also identify the function of user agency in this medium to better understand how players are affected by representation in video games. Throughout the course, students will be asked to apply these concepts while building their own games and become familiar with the fundamentals of video game design.

Units: 1

Max Enrollment: 18

Crosslisted Courses: MAS 121

Prerequisites: None. Open to First-Years and Sophomores. Juniors and Seniors by permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 200
CS 200 - OO Programming Studio in Java

CS 200 introduces students to Java, and the Object Oriented Model of programming with hands-on instruction and experience, using active learning pedagogical approaches. Students will gain knowledge and reinforcement in fundamental programming and programming-related skills, including problem decomposition into smaller and more manageable sub-problems, designing in the Object Oriented Model, programming in Java, practicing fundamental constructs like conditionals, looping, usage of basic Data Structures, as well as debugging and testing techniques. In addition, attention will be paid in developing skills around project management, pair and team work, and identifying and evaluating reliable resources for the task at hand. With successful completion of this course, students are expected to be independent programmers and learners, and effective team members.

CS 200 is for students who earned credit in one of the following CS 111, CS 111M, CS 111X, or CS 112, and who did not receive a recommendation to continue with CS 230.

Units: 1

Max Enrollment: 18

Prerequisites: Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. Prior background with computers is expected - one of the following CS 111, CS 111M, CS 111X, or CS 112, or permission of the instructor. Not open to students who have taken CS 230, CS 230P, or CS 230X or any 300 level CS courses

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Spring

Notes: Mandatory Credit/Non Credit.

CS 204
CS 204 - Intro to Web Development

This course introduces modern web development using HTML, CSS, and JavaScript. JavaScript is explored in detail, including scoping, closures, objects, classes, object-oriented programming, and modules. The jQuery library is also introduced, and the course covers event handling and Ajax interactions. Students will build web pages that manage data structures using menus and forms, and that save/restore that data from local storage resulting in a persistent, dynamic web application. Designed web pages will be modern, responsive, and accessible. The course also covers Bootstrap and the jQuery UI (User Interface) library.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following CS 111, CS 111M, CS 111X, or CS 112, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Fall

Notes:

CS 220
CS 220 - Human-Computer Interaction

Human-Computer Interaction is one of the areas that have transformed the way we use computers in the last 30 years. Topics include methodology for designing and testing user interfaces, interaction styles (command line, menus, graphical user interfaces, virtual reality, tangible user interfaces), interaction techniques (including use of voice, gesture, eye movements), design guidelines, and user interface software tools. Students will design a user interface, program a prototype, and test the results for usability.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following courses - CS 110/MAS 110, CS 111, CS 111M, CS 111X, or CS 112

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring

Notes:

CS 221
CS 221/ MAS 221 - Digital Worlds for Gaming

Digital games visualize compelling worlds that can resemble real-life environments and imagine other-worldly spaces. These virtual realms frame our experience of games and their design dramatically impacts our interpretation of their narratives and mechanics. Designers code environments to shape player agency and weave complex relationships between game characters. This course will teach students to create digital worlds and critically assess them as politically rich spaces that convey meaning. Students will build both 2D and 3D digital environments, coding elements such as interactivity and non-player entities, crafting game experiences that tell meaningful stories. CS221 continues to explore the Unity Game Engine and topics introduced by CS121, but enrollment is suitable for any student with 100-level coding experience and an interest in game design.

Units: 1

Max Enrollment: 18

Crosslisted Courses: MAS 221

Prerequisites: Any 100-level CS course.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Fall

Notes:

CS 230
CS 230 - Data Structures

An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, algorithmic efficiency, and the use and implementation of standard data structures and algorithms, such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language. 

To enroll in CS 230, students need an explicit authorization of concept mastery from faculty of one of the following courses CS 111, CS 111M, CS 111X, or CS 112; or have taken CS 200. Students who did not take CS 111 or equivalent at Wellesley complete a placement questionnaire. 

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 111, CS 111M,  CS 111X) or CS 112, or CS 200; or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Does not fulfill the laboratory requirement.

CS 230L
CS 230L - Lab: Data Structures

Accompanying required laboratory for CS 230.

The grading option chosen for the lecture (CS 230) - either Letter Grade or Credit/Non Credit - will apply to the lab as well; the final grade is a single unified grade for both lecture and lab and is based on the grading option you choose for the lecture.

Units: 0

Max Enrollment: 15

Prerequisites: One of the following (CS 111, CS 111M,  CS 111X) or CS 112 or CS 200; or permission of the instructor.

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 230X
CS 230X - Data Structures

An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, algorithmic efficiency, and the use and implementation of standard data structures and algorithms, such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language.

CS230X is intended for students with significant prior experience in Java programming as demonstrated by a 5 in CS AP A, or equivalent demonstration of experience. Students in this section will complete self-directed weekly labs. If you did not take the CS AP A exam and would like to take this class,

you may take the CS placement questionnaire to see if you qualify.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following CS 111, CS 111M,  CS 111X, or CS 112; or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 231
CS 231 - Fundamental Algorithms

This course introduces the design and analysis of fundamental algorithms. It focuses on the basic skills needed to design efficient, correct algorithms and mathematically prove these properties. General problem-solving techniques covered: divide-and-conquer, dynamic programming, greediness, and probabilistic algorithms. Topics include: sorting, searching, graph algorithms, optimization, network flows, asymptotic analysis, compression, and NP-completeness.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 230, CS 230P, or CS 230X) and MATH 225, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 232
CS 232 - Artificial Intelligence

What is artificial intelligence (AI) and should humans fear it as one of "our biggest existential threats"? In this course, we will grapple with these difficult questions and investigate them in different ways. We will discuss the development of the field from the symbolic, knowledge-rich approaches of the 20th century AI (e.g., rule-based systems), to statistical approaches that rely on increasingly large amounts of data, including an overview of contemporary deep learning techniques. We will explore how to apply these techniques in several AI application areas, including robotics, computer vision, and natural language processing, and consider ethical issues around AI in society. By the end of the semester, students should be able to answer the starting questions in-depth and with nuance. 

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 111, CS 111M, CS 111X, or CS 112) and one of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Not Offered

Notes:

CS 233
CS 233 - Computational Social Choice: Theory & Applications

How can computation help us approach one of the most fundamental challenges facing every society or community: collective decision-making? This course will explore the varied ways that computation interacts with democratic processes. Emphasis will be on the computational and mathematical tools needed to both implement and analyze these processes. Students will develop skills to characterize the benefits and drawbacks of different voting rules, design faster algorithms for computing election winners, quantify famously unquantifiable problems like partisan gerrymandering, and more. Topics will include: introductory social choice theory, committee selection, participatory budgeting, visualizing electoral data, liquid democracy, political redistricting/gerrymandering, approval voting, ranked voting, fair allocation, preference elicitation, and algorithmic fairness.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following (CS 230, CS 230P, or CS 230X) and MATH 225, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Fall

Notes:

CS 234
CS 234 - Data, Analytics, and Visualization

This course introduces students to essential data science skills, focusing on collecting, cleaning, formatting, and managing data. Students will learn to write Python code to process data efficiently, implement algorithms for analyzing patterns, and apply machine learning techniques. Emphasis will be placed on data visualization as a tool for exploring datasets and communicating findings effectively. In addition to technical skills, students will critically examine the ethical implications of data collection and algorithmic decision-making, and consider the societal impacts of data-driven technologies. 

Units: 1

Max Enrollment: 24

Prerequisites: One of the following - CS 230, CS 230P, or CS 230X, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Degree Requirements: DL - Data Literacy (Formerly QRF); DL - Data Literacy (Formerly QRDL)

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Not Offered

Notes:

CS 235
CS 235 - Theory of Computation

This course offers an introduction to the theory of computation. Topics include languages, regular expressions, finite automata, grammars, pushdown automata, and Turing machines. The first part of the course covers the Chomsky hierarchy of languages and their associated computational models. The second part of the course focuses on decidability issues and unsolvable problems. The final part of the course investigates complexity theory.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS230, CS230P, or CS230X) and MATH 225, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 236
CS 236 - Spatial-Temporal Mechanism Design

Spatial-Temporal Mechanism Design is an innovative course that combines computational techniques for analyzing spatial and temporal data with the principles of mechanism design to solve complex, real-world problems. Students will explore the intersection of geospatial analysis, time-series modeling, and optimization with auction theory, resource allocation, and incentive structures. Key applications include smart cities, transportation networks and environmental sustainability frameworks. Through theoretical exploration and project-based learning, students will develop the skills to design computational systems and mechanisms that operate efficiently and equitably in dynamic, spatial-temporal environments.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following (CS230, CS230P, or CS230X), or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall

Notes:

CS 240
CS 240 - Foundations of Computer Systems

This course examines how computers run programs, introducing key software and hardware abstractions and implementations between programming languages and transistors. The course traces representation and translation of data and programs through three broad topics in computer systems: computer hardware implementation, including digital logic, computer arithmetic, and machine organization; the hardware-software interface, including instruction set architecture, assembly code, and the C programming language; and abstractions for practical systems, including the physical memory hierarchy, the operating system process model, virtual memory, and memory management. Students complete extensive hands-on projects in hardware and software systems. Students are required to attend one three-hour laboratory weekly.

Units: 1.25

Max Enrollment: 24

Prerequisites: One of the following (CS230, CS230P, or CS230X) or permission of the instructor.

Distribution Requirements: LAB - Natural and Physical Sciences Laboratory; MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring; Fall

Notes: This course satisfies the laboratory requirement.

CS 240L
CS 240L - Lab: Foundations of Computer Systems

Accompanying required laboratory for CS 240.

The grading option chosen for the lecture (CS 240) - either Letter Grade or Credit/Non Credit - will apply to the lab as well; the final grade is a single unified grade for both lecture and lab and is based on the grading option you choose for the lecture.

Units: 0

Max Enrollment: 15

Prerequisites: None.

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 242
CS 242 - Computer Networks

A systems-oriented approach to data networks, including a theoretical discussion of common networking problems and an examination of modern networks and protocols. Topics include point-to-point links, packet switching, Internet protocols, end-to-end protocols, congestion control, and security. Projects may include client-server applications and network measurement tools.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following (CS230, CS230P, or CS230X) and Math 225, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Fall

Notes:

CS 244
CS 244 - Machine Learning

Machine learning is the science of teaching computers how to learn from observations. It is ubiquitous in our interactions with society, such as in face recognition, web search, targeted advertising, speech processing, and genetic analysis. It is currently at the forefront of research in artificial intelligence, and has been making rapid strides given the vast availability of data today. This course is a broad introduction to the field, covering the theoretical ideas behind widely used algorithms like decision trees, linear regression, support vector machines, and many more. We will also study practical applications of these algorithms to problems in a variety of domains, including vision, speech, language, medicine, and the social sciences.

Units: 1

Max Enrollment: 20

Prerequisites: One of the following - CS230, CS230P, or CS230X; or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory Credit/Non Credit.

CS 248
CS 248 - Software and Data

Software and Data focuses on software engineering and data management processes, preparing students for upper-level, data-intensive courses. The course emphasizes: 1) software development skills, such as package installation, creating virtual environments, and using version control to enhance collaborative coding and project management. 2) Advanced Python programming by exploring new data structures, libraries, and object-oriented programming techniques to improve code efficiency when working with large datasets. 3) Data management techniques including file handling, databases and SQL, web scraping, and API interactions for effective data manipulation and retrieval. Throughout the course there are discussions on the ethics of building software and working with data, as the students work towards building a data-driven application, integrating all learned skills.

Units: 1

Max Enrollment: 15

Prerequisites: CS 111 (or CS 111X or CS 111M) and CS 230 (or CS 230P or CS 230X) and permission of the instructor. CS 230 (or CS 230P or CS 230X) can be taken concurrently.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 250
CS 250 - Research or Individual Study

Units: 1

Max Enrollment: 25

Prerequisites: CS 230 or permission of the instructor.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory Credit/Non Credit

CS 250H
CS 250H - Research or Individual Study

Units: 0.5

Max Enrollment: 15

Prerequisites: CS 230 or permission of the instructor.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory Credit/Non Credit

CS 251
CS 251 - Principles of Programming Languages

This course introduces the principles underlying the design, semantics, and implementation of modern programming languages in major paradigms including function-oriented, imperative, and object-oriented. The course examines: language dimensions including syntax, naming, state, data, control, types, abstraction, modularity, and extensibility; issues in the runtime representation and implementation of programming languages; and the expression and management of parallelism and concurrency. Students explore course topics via programming exercises in several languages, including the development of programming language interpreters.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring

Notes:

CS 299
CS 299/ PHIL 222 - Research Methods for Ethics of Tech

How do we educate the next generation of data scientists, software engineers, and user experience designers to think of their work as not just technical but also ethical? What moral responsibilities come with the design, adoption, use, and consumption of digital technology? The way that these questions are interrogated, discussed, and the sort of answers we might propose will be informed by a thoroughgoing interdisciplinary lens. Students will learn theoretical frameworks from both Philosophy and Computational and Data Sciences and work together to see how knowledge of frameworks from both disciplines serves to enrich our understanding of the ethical issues that face the development and employment of digital technologies, as well as empower us to find creative solutions. This course includes multiple projects, both independent and in groups, hence the additional meeting time.

Units: 1

Max Enrollment: 24

Crosslisted Courses: CS 299

Prerequisites: Permission of the instructor.

Distribution Requirements: REP - Religion, Ethics, and Moral Philosophy

Degree Requirements: DL - Data Literacy (Formerly QRF); DL - Data Literacy (Formerly QRDL)

Semesters Offered this Academic Year: Fall

Notes: Subfield B

CS 304
CS 304 - Databases with Web Interfaces

CS 304 is a course in full-stack web development. The stack comprises the front-end (typically a web browser), the back-end (a database for storing and retrieving user-contributed data) and the middleware that knits the two together. We will learn how to parse the incoming web request, route the request to the appropriate handler, retrieve data from the database that is relevant to the user's search, combine that data with static templates of web pages, and deliver that data to the browser. We will build endpoints to handle Ajax requests and learn about REST APIs.  We will also discuss performance, reliability,  concurrency, and security issues. In a semester project, we will create dynamic websites driven by database entries. In the fall, the CS 304 stack will comprise Flask and MySQL. In the spring, the CS 304 stack will comprise Node.js and MongoDB. Please consult this webpage for more information about the two versions of CS 304.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring; Fall

Notes:

CS 307
CS 307 - Computer Graphics

A survey of topics in computer graphics with an emphasis on fundamental techniques. Topics include: graphics hardware, fundamentals of three-dimensional graphics including modeling, projection, coordinate transformation, synthetic camera specification, color, lighting, shading, hidden surface removal, animation, and texture-mapping. We also cover the mathematical representation and programming specification of lines, planes, curves, and surfaces. Students will build graphics applications using a browser-based platform.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring

Notes:

CS 313
CS 313 - Computational Biology

Many elegant computational problems arise naturally in the modern study of molecular biology. This course is an introduction to the design, implementation, and analysis of algorithms with applications in genomics. Topics include bioinformatic algorithms for dynamic programming, tree-building, clustering, hidden Markov models, expectation maximization, Gibbs sampling, and stochastic context-free grammars. Topics will be studied in the context of analyzing DNA sequences and other sources of biological data. Applications include sequence alignment, gene-finding, structure prediction, motif and pattern searches, and phylogenetic inference. Course projects will involve significant computer programming in Java. No biology background is expected.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following CS 230, CS 230P, or CS 230X or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Not Offered

Notes:

CS 315
CS 315 - Data Science for the Web

The web is a dynamic ecosystem where socio-technical systems like Google, Facebook, Wikipedia, and other platforms shape and reflect human behavior on a global scale. In this course, students will explore how to investigate social phenomena on the web using data science as a research methodology. Concretely, students will learn to formulate research questions about online socio-technical systems; collect, clean, and analyze web-native data through a variety of Python libraries; investigate human behavior and its interplay with algorithmic systems using quantitative and qualitative methods; and critically evaluate findings within the broader context of societal, cultural, and ethical considerations. This course includes a semester-long research project on a provided theme, which culminates with an incrementally written research paper.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following CS 230, CS 230P, or CS 230X and permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Degree Requirements: DL - Data Literacy (Formerly QRDL)

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Spring

Notes:

CS 317
CS 317 - Mobile App Development

Mobile devices have become more popular than desktops or laptops for communicating with others, accessing information, and performing computation. This course covers the principles and practice of developing applications for mobile devices, with an emphasis on features that distinguish them from desktop/laptop applications and web applications. Topics include: the functionality of modern smartphones and tablets, including device sensors, actuators, and communication; an iterative design process for apps that people find both useful and usable; designing and implementing mobile app interfaces and behaviors; and tools for developing software in teams.


In this hands-on and programming-intensive course, groups will build web apps and mobile apps using a process that combines aspects of Human Computer Interaction and software engineering. This course begins by using the React JS framework to build interactive web apps out of modular components. It then transitions to React Native, a cross-platform component-based mobile app development environment for creating mobile apps that run on both iOS and Android devices. The course also explores how apps can leverage cloud databases to store and share information.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following - CS 230, CS 230X, or CS 230P.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Not Offered

Notes:

CS 320
CS 320 - Tangible User Interfaces

Tangible user interfaces emerge as a novel human-computer interaction style that interlinks the physical and digital worlds. Extending beyond the limitations of the computer mouse, keyboard, and monitor, tangible user interfaces allow users to take advantage of their natural spatial skills while supporting collaborative work. Students will be introduced to conceptual frameworks, the latest research, and a variety of techniques for designing and building these interfaces. Developing tangible interfaces requires creativity as well as an interdisciplinary perspective. Hence, students will work in teams to design, prototype, and physically build tangible user interfaces.

Units: 1

Max Enrollment: 18

Prerequisites: CS 220 or one of the following CS 230, CS 230P, or CS 230X; or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 321
CS 321 - Extended Reality

Mixed and Augmented Reality technologies combine virtual content with the physical environment, allowing people to interact with computers and digital content in exciting new ways. These emerging human-computer interaction paradigms have been applied to a variety of fields including medicine, education, design, entertainment, and play. This course introduces fundamental methods, principles, and tools for designing, programming, and testing mixed and augmented reality applications. Topics include the history of virtual and augmented reality, application domains, hardware for 3D input and display, tracking and registration, 3D perception, and societal implications. Students will work individually and in teams to develop novel virtual and augmented reality experiences.

Units: 1

Max Enrollment: 18

Prerequisites: CS 220 or CS 221/MAS221 or one of the following CS 230, CS 230P, or CS 230X

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Spring

Notes: Ann E. Maurer '51 Speaking Intensive Course.

CS 323
CS 323 - Social Computing

Social Computing systems connect us to our closest friends, and globally to people all over the world. In recent decades, companies like Facebook, Snapchat, and even Amazon, have reshaped our social environments. All of these systems, at their core, are designed to facilitate interactions between people. What design decisions shape these systems? Students will learn the theoretical foundations of Social Computing drawn from the Social Sciences, and will learn software prototyping and design techniques to create new systems. This class will explore topics such as identity, anonymity, reputation, moderation, crowdsourcing, and social algorithms. Students will work in teams to design, prototype, and build social computing systems.

Units: 1

Max Enrollment: 18

Prerequisites: CS 220 or one of the following CS 230, CS 230P, or CS230X.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Spring

Notes:

CS 325
CS 325 - Designing for Accessibility

As technology increasingly integrates with our lives, how can we ensure that its design is inclusive of users' different abilities? CS 325 expands on the fundamentals of design and qualitative research to explore how technology can be made accessible for diverse users, with an emphasis on people with disabilities. In this course, we will read about and analyze approaches to inclusive technology, study how design intersects with disability justice, learn about the history of accessible and assistive technologies, understand how to create multimodal user experiences, learn accessible web programming, and test state-of-the-art tools. Students will also conduct a semester-long case study project in which they work in groups to identify accessibility issues on the Wellesley campus and work with the community to build appropriate technology solutions.

Units: 1

Max Enrollment: 18

Prerequisites: CS 220 or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall

Notes:

CS 331
CS 331 - Adv. Algorithm Design

Explore advanced topics in the design and analysis of algorithms and data structures. The focus is on expanding your toolkit of problem-solving techniques and considering new settings that model real-world challenges. Topics may include: randomization, approximation algorithms, online and streaming settings, parallel and distributed computing, linear programming and LP rounding, optimization under uncertainty, bias and fairness in algorithms, and the algorithmic foundations of data science, machine learning, and operations research.

Units: 1

Max Enrollment: 18

Prerequisites: CS 231 or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 333
CS 333 - Natural Language Processing

Natural Language Processing (NLP) is the subfield of CS that focuses on language technology. Because language is one of the most complex human abilities, building computational technologies that involve language is both challenging and important. This course introduces NLP methods and applications. Students will (1) learn core NLP algorithms and models; (2) explore the challenges posed by different aspects of human language; (3) learn to evaluate ethical concerns about language technology; and (4) complete a series of projects to implement and improve NLP models. We will cover a range of techniques, including n-gram models, Bayesian classifiers, neural networks, and deep learning. Applications include parsing, sentiment analysis, machine translation, and language generation, as well as information retrieval tasks like summarization, topic modeling, and question-answering.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following CS 230, CS 230P, or CS 230X and either MATH 206 or MATH 220 or MATH 225.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving; SBA - Social and Behavioral Analysis

Semesters Offered this Academic Year: Not Offered

Notes:

CS 334
CS 334/ PHIL 322 - Sem: Methods for Ethics of Tech

How do we educate the next generation of data scientists and software engineers to think of their work as not just technical but also ethical? How do we get them to see that the social impact of their work requires that it be driven by sound ethical principles? The way that these questions are interrogated, discussed, and the sort of answers we might propose will be informed by a thoroughgoing interdisciplinary lens. Students will learn theoretical frameworks from both Philosophy and Computational and Data Sciences and work together to see how knowledge of frameworks from both disciplines serves to enrich our understanding of the ethical issues that face digital technologies, as well as empower us to find creative solutions.

Central questions include: What kinds of ethical considerations are part of the everyday jobs of graduates working in digital technology, either in non-profit or for-profit organizations? What parts of the current liberal arts curriculum, if any, are preparing our graduates for the kinds of ethical decision-making they need to engage in? How to expand the reach of ethical reasoning within the liberal arts curriculum, in order to strengthen the ethical decision-making preparation? A key component in our collective efforts to engage with these questions will involve a sustained semester-long research project with Wellesley alums working in the field of digital tech.

Units: 1

Max Enrollment: 18

Crosslisted Courses: CS 334

Prerequisites: One course in Philosophy, Computer Science, MAS, or Statistics, and permission of the instructor.

Distribution Requirements: REP - Religion, Ethics, and Moral Philosophy

Degree Requirements: DL - Data Literacy (Formerly QRF); DL - Data Literacy (Formerly QRDL)

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Not Offered

Notes: Subfield B

CS 340
CS 340 - Modeling for Computer Systems

This course focuses on modeling and specifying computer systems. Students will learn how to reason about the properties and expected behavior of modern software. Topics include designing specifications, property-based testing, model checking, and satisfiability solvers. We will use real-world case studies to motivate the analysis of reliable computer systems. By the end of the course, students will be able to (1) design specifications for the expected behavior of a system, (2) model system behavior using state-of-the-art tools with automated formal methods, and (3) identify and prevent software bugs. While prior experience with algorithm design and analysis is expected, the course will cover any necessary background in systems programming and formal methods.

Units: 1

Max Enrollment: 18

Prerequisites: CS 240 and MATH 225, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Spring

Notes:

CS 342
CS 342 - Computer Security

An introduction to computer security and privacy. Topics will include privacy, threat modeling, software security, web tracking, web security, usable security, the design of secure and privacy preserving tools, authentication, anonymity, practical and theoretical aspects of cryptography, secure protocols, network security, social engineering, the relationship of the law to security and privacy, and the ethics of hacking. This course will emphasize hands-on experience with technical topics and the ability to communicate security and privacy topics to lay and expert audiences. Assignments will include technical exercises exploring security exploits and tools in a Linux environment; problem sets including exercises and proofs related to theoretical aspects of computer security; and opportunities to research, write, present, and lead discussions on security- and privacy-related topics. Students are required to attend an additional 70-minute discussion section each week.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following CS 230, CS 230P, or CS 230X and CS 240 or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Not Offered

Notes:

CS 343
CS 343 - Distributed Computing

This course is for students interested in understanding the fundamental concepts and algorithms underlying existing distributed systems. By the end of this course, students will have the knowledge needed to work with and build distributed systems, such as distributed file systems, peer-to-peer systems, and cloud computing systems. Topics discussed include MapReduce, distributed file systems, distributed coordination algorithms, consensus, fault-tolerance, and security.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following CS 230, CS 230P, or CS 230X (required); CS 231 or CS 242 (recommended).

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Spring

Notes:

CS 344
CS 344 - Deep Learning

Deep learning is the study of how computers can learn from data in a manner inspired by neural connections in the human brain. It is revolutionizing how people and machines interact. This course explores the principles and practice of modern deep learning systems. Students will design and implement their own artificial neural networks as well as analyze massive deep learning models at the forefront of the field of machine learning. Deep learning algorithms such as convolutional neural networks and recurrent neural networks will be applied in a variety of domains, including medical diagnosis, self-driving cars, and large-language models. Students will further investigate the societal impacts and ethical considerations of these deep learning systems.

Units: 1

Max Enrollment: 18

Prerequisites:  One of the following CS 230, CS 230P, or CS 230X and MATH 225.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 345
CS 345 - Probabilistic Foundations of Machine Learning

In recent years, Machine Learning has enabled applications that were previously not thought possible—from systems that propose novel drugs or generate new art/music, to systems that accurately and reliably predict outcomes of medical interventions in real-time. But what has enabled these developments? Faster computing hardware, large amounts of data, and the Probabilistic paradigm of Machine Learning (ML), a paradigm that casts recent advances in ML, like neural networks, into a statistical learning framework. In this course, we introduce the foundational concepts behind this paradigm—statistical model specification, and statistical learning and inference—focusing on connecting theory with real-world applications and hands-on practice. While expanding our methodological toolkit, we will simultaneously introduce critical perspectives to examine the ethics of ML within sociotechnical systems. This course lays the foundation for advanced study and research in ML. Topics include: directed graphical models, deep Bayesian regression/classification, generative models (latent variable models) for clustering, dimensionality reduction, and time-series forecasting. Students will get hands-on experience building models for specific tasks, most taken from healthcare contexts, using NumPyro, a Python-based probabilistic programming language.

Units: 1

Max Enrollment: 18

Prerequisites: (One of the following - CS 244, CS 344, STAT 260, STAT 318, MIT 6.3900, or the QAI Summer Program) and (one of the following - MATH 205, MATH 206, MATH 220, MATH 225), comfort in Python, and permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Degree Requirements: DL - Data Literacy (Formerly QRF)

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall

Notes:

CS 349
CS 349 - Advanced Topics in Computer Science

No topics offered in 2025-2026.

Units: 1

Max Enrollment: 18

Prerequisites: (CS 230 or CS 230P or CS 230X) and MATH 225, and permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Not Offered

Notes:

CS 350
CS 350 - Research or Individual Study

Units: 1

Max Enrollment: 15

Prerequisites: Permission of the instructor. Open to Juniors and Seniors.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory Credit/Non Credit

CS 350H
CS 350H - Research or Individual Study

Units: 0.5

Max Enrollment: 15

Prerequisites: Permission of the instructor.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory Credit/Non Credit

CS 360
CS 360 - Senior Thesis Research

Units: 1

Max Enrollment: 15

Prerequisites: Permission of the department.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Students enroll in Senior Thesis Research (360) in the first semester and carry out independent work under the supervision of a faculty member. If sufficient progress is made, students may continue with Senior Thesis (370) in the second semester.

CS 365
CS 365/ MAS 365 - Adv. Projects in Playable Media

Students with a deep personal interest in digital game design and other forms of playable media will work in collaborative units to explore all aspects of the game development process while contributing to a semester-length project of their own devising. This course will require students to explore an ethical approach to game development that will introduce new practices for ideation, pitching, designing, playtesting, and versioning through an iterative process that will result in a finished game. This course is specifically designed for students who have moderate experience with game development through either curricular activities or by working on projects of their own. Students will be expected to have moderate levels of experience with the Unity Game Engine.

Units: 1

Max Enrollment: 18

Crosslisted Courses: MAS 365

Prerequisites:  One of the following - CS 321, CS 221/MAS 221, CS 220, CS 320, or CS 121/MAS 121 and one of the following CS 230, CS 230P, or CS 230X, or permission of the instructor (portfolio must be able to demonstrate some previous experience with game development).

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes: This course may be used to fulfill the capstone requirement for the MAS major.

CS 366
CS 366/ MAS 366 - Adv. Projects in Interactive Media

Students with deep interest in interactive media will drive cutting-edge research that shapes and examines novel user experiences with technology. Students will work in small groups to identify a direction of research, explore and iterate over designs, prototype at varying fidelities, build working systems, consider ethical implications, conduct evaluative studies, and report findings. This course is designed for students who have experience in designing and implementing interactive media through either curricular activities or by working on projects. Students will be expected to have moderate levels of experience with front-end web development.

Units: 1

Max Enrollment: 18

Crosslisted Courses: MAS 366

Prerequisites: One of the following - CS 220, CS 320 or CS 323.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall

Semesters Offered this Academic Year: Fall

Notes: This course may be used to fulfill the capstone requirement for the MAS major.

CS 370
CS 370 - Senior Thesis

Units: 1

Max Enrollment: 25

Prerequisites: CS 360 and permission of the department.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Students enroll in Senior Thesis Research (360) in the first semester and carry out independent work under the supervision of a faculty member. If sufficient progress is made, students may continue with Senior Thesis (370) in the second semester.