CS Courses for Fall 2025
Please click on the course title for more information.
|
CS 110 01 - Sociotechnical Dimensions of Computing in the Age of AI
Course: |
CS 110 - 01 |
Title: |
Sociotechnical Dimensions of Computing in the Age of AI |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. No prior background with computers is expected.
|
Notes: |
Mandatory Credit/Non Credit. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Cross Listed Courses: |
MAS 110 01 - Sociotechnical Dimensions of Computing in the Age of AI
|
Instructors: |
Panagiotis Metaxas |
Meeting Time(s): |
Science Center Hub 305 Classroom - MR 3:45 PM - 5:00 PM |
|
CS 111 01 - Computer Programming and Problem Solving
Course: |
CS 111 - 01 |
Title: |
Computer Programming and Problem Solving |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. No prior background with computers is expected. |
Notes: |
Does not fulfill the laboratory requirement. Mandatory Credit/Non Credit. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Carolyn Anderson |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - TF 8:30 AM - 9:45 AM |
|
CS 111 02 - Computer Programming and Problem Solving
Course: |
CS 111 - 02 |
Title: |
Computer Programming and Problem Solving |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. No prior background with computers is expected. |
Notes: |
Does not fulfill the laboratory requirement. Mandatory Credit/Non Credit. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Vinitha Gadiraju |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - TF 9:55 AM - 11:10 AM |
|
CS 111L L01 - Laboratory: Computer Programming and Problem Solving
Course: |
CS 111L - L01 |
Title: |
Laboratory: Computer Programming and Problem Solving |
Credit Hours: |
0 |
Description: |
Accompanying required laboratory for CS 111. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Sara Melnick |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - W 10:30 AM - 12:20 PM |
|
CS 111L L02 - Laboratory: Computer Programming and Problem Solving
Course: |
CS 111L - L02 |
Title: |
Laboratory: Computer Programming and Problem Solving |
Credit Hours: |
0 |
Description: |
Accompanying required laboratory for CS 111. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Sara Melnick |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - W 1:30 PM - 3:20 PM |
|
CS 111L L03 - Laboratory: Computer Programming and Problem Solving
Course: |
CS 111L - L03 |
Title: |
Laboratory: Computer Programming and Problem Solving |
Credit Hours: |
0 |
Description: |
Accompanying required laboratory for CS 111. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Sara Melnick |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - W 3:30 PM - 5:20 PM |
|
CS 111L L04 - Laboratory: Computer Programming and Problem Solving
Course: |
CS 111L - L04 |
Title: |
Laboratory: Computer Programming and Problem Solving |
Credit Hours: |
0 |
Description: |
Accompanying required laboratory for CS 111. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Sara Melnick |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - T 3:30 PM - 5:20 PM |
|
CS 111L L05 - Laboratory: Computer Programming and Problem Solving
Course: |
CS 111L - L05 |
Title: |
Laboratory: Computer Programming and Problem Solving |
Credit Hours: |
0 |
Description: |
Accompanying required laboratory for CS 111. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Sara Melnick |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - T 5:30 PM - 7:20 PM |
|
CS 111L L06 - Laboratory: Computer Programming and Problem Solving
Course: |
CS 111L - L06 |
Title: |
Laboratory: Computer Programming and Problem Solving |
Credit Hours: |
0 |
Description: |
Accompanying required laboratory for CS 111. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Peter Andrew Mawhorter |
Meeting Time(s): |
Science Center E Wing 101 Computer Science Computer Classroom - W 3:30 PM - 5:20 PM |
|
CS 111M 01 - Computer Programming and Problem Solving (Public Speaking)
Course: |
CS 111M - 01 |
Title: |
Computer Programming and Problem Solving (Public Speaking) |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
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. |
Notes: |
Ann E. Maurer '51 Speaking Intensive Course. Does not fulfill the laboratory requirement. Mandatory Credit/Non Credit.
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Sohie Lee |
Meeting Time(s): |
Science Center Hub 401 Classroom - TF 11:20 AM - 12:35 PM
Science Center Hub 402 CS Computer Lab - W 10:30 AM - 12:20 PM |
|
CS 111X 01 - Computer Programming and Problem Solving
Course: |
CS 111X - 01 |
Title: |
Computer Programming and Problem Solving |
Credit Hours: |
1 |
Description: |
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, or CS 230 as their first Wellesley CS course should complete the CS placement questionnaire. Enrollment in this course is by permission of the instructor. Students interested in taking this course should fill out this this Google Form. |
Prerequisite(s): |
Fulfillment of the Quantitative Reasoning (QR) component of the Quantitative Reasoning & Data Literacy requirement. |
Notes: |
Mandatory Credit/Non Credit. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Franklyn Turbak |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - MR 11:20 AM - 12:35 PM |
|
CS 121 01 - Intro to Game Design
Course: |
CS 121 - 01 |
Title: |
Intro to Game Design |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
None. Open to First-Years and Sophomores. Juniors and Seniors by permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Cross Listed Courses: |
MAS 121 01 - Intro to Game Design
|
Instructors: |
Jordan Tynes |
Meeting Time(s): |
Science Center L Wing 140 Computer Science Computer Lab - MR 2:20 PM - 3:35 PM |
|
CS 200 01 - OO Programming Studio in Java
Course: |
CS 200 - 01 |
Title: |
OO Programming Studio in Java |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
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 |
Notes: |
Mandatory Credit/Non Credit. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Stella Kakavouli |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - M 3:45 PM - 6:25 PM |
|
CS 220 01 - Human-Computer Interaction
Course: |
CS 220 - 01 |
Title: |
Human-Computer Interaction |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following courses - CS 110/MAS 115, CS 111, CS 111M, CS 111X, or CS 112 |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Catherine Grevet Delcourt |
Meeting Time(s): |
Science Center L Wing 120 Computer Science HCI Lab - MR 11:20 AM - 12:35 PM |
|
CS 221 01 - Digital Worlds for Gaming
Course: |
CS 221 - 01 |
Title: |
Digital Worlds for Gaming |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
Any 100-level CS course. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Cross Listed Courses: |
MAS 221 01 - Digital Worlds for Gaming
|
Instructors: |
Jordan Tynes |
Meeting Time(s): |
Science Center L Wing 140 Computer Science Computer Lab - MR 11:20 AM - 12:35 PM |
|
CS 230 01 - Data Structures
Course: |
CS 230 - 01 |
Title: |
Data Structures |
Credit Hours: |
1 |
Description: |
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. If you are unable to register for this class during initial registration and are interested in taking this course, fill out this form to add your name to the waitlist. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Panagiotis Metaxas |
Meeting Time(s): |
Science Center L Wing 043 Classroom - MW 6:30 PM - 7:45 PM |
|
CS 230 02 - Data Structures
Course: |
CS 230 - 02 |
Title: |
Data Structures |
Credit Hours: |
1 |
Description: |
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. If you are unable to register for this class during initial registration and are interested in taking this course, fill out this form to add your name to the waitlist. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Yaniv Yacoby |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - MR 2:20 PM - 3:35 PM |
|
CS 230 2LA - Data Structures
Course: |
CS 230 - 2LA |
Title: |
Data Structures |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Stella Kakavouli |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - W 12:30 PM - 2:20 PM |
|
CS 230 2LB - Data Structures
Course: |
CS 230 - 2LB |
Title: |
Data Structures |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Stella Kakavouli |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - W 3:30 PM - 5:20 PM |
|
CS 230 2LC - Data Structures
Course: |
CS 230 - 2LC |
Title: |
Data Structures |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Stella Kakavouli |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - W 5:30 PM - 7:20 PM |
|
CS 230 1LA - Data Structures
Course: |
CS 230 - 1LA |
Title: |
Data Structures |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Smaranda Sandu |
Meeting Time(s): |
Science Center E Wing 101 Computer Science Computer Classroom - T 9:10 AM - 11:00 AM |
|
CS 230 1LB - Data Structures
Course: |
CS 230 - 1LB |
Title: |
Data Structures |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Smaranda Sandu |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - T 11:20 AM - 1:10 PM |
|
CS 230 1LC - Data Structures
Course: |
CS 230 - 1LC |
Title: |
Data Structures |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 111, CS 111M, CS 111X) or CS 112, or CS 200; or permission of the instructor. |
Notes: |
Does not fulfill the laboratory requirement. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Smaranda Sandu |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - T 2:10 PM - 4:00 PM |
|
CS 230X 01 - Data Structures
Course: |
CS 230X - 01 |
Title: |
Data Structures |
Credit Hours: |
1 |
Description: |
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. 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. Enrollment in this course is by permission of the instructor. Students who wish to enroll must apply using this Google Form. |
Prerequisite(s): |
One of the following CS 111, CS 111M, CS 111X, or CS 112; or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Catherine Grevet Delcourt |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - MR 9:55 AM - 11:10 AM |
|
CS 231 01 - Design and Analysis of Algorithms
Course: |
CS 231 - 01 |
Title: |
Design and Analysis of Algorithms |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 230, CS 230P, or CS 230X) and MATH 225, or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Christine Bassem |
Meeting Time(s): |
Science Center Hub 305 Classroom - TF 9:55 AM - 11:10 AM
Science Center Hub 305 Classroom - W 11:30 AM - 12:20 PM |
|
CS 231 02 - Design and Analysis of Algorithms
Course: |
CS 231 - 02 |
Title: |
Design and Analysis of Algorithms |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 230, CS 230P, or CS 230X) and MATH 225, or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Brian Brubach
Christine Bassem |
Meeting Time(s): |
Science Center L Wing 039 Classroom - TF 12:45 PM - 2:00 PM
Science Center L Wing 039 Classroom - W 10:30 AM - 11:20 AM |
|
CS 233 01 - Computational Social Choice: Theory and Applications
Course: |
CS 233 - 01 |
Title: |
Computational Social Choice: Theory and Applications |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 230, CS 230P, or CS 230X) and MATH 225, or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Brian Brubach |
Meeting Time(s): |
Science Center L Wing 039 Classroom - TF 2:10 PM - 3:25 PM |
|
CS 234 01 - Data, Analytics, and Visualization
Course: |
CS 234 - 01 |
Title: |
Data, Analytics, and Visualization |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following - CS 230, CS 230P, or CS 230X, or permission of the instructor. |
Notes: |
|
Distribution(s): |
Data Literacy (Formerly QRF)
Mathematical Modeling and Problem Solving
Data Literacy (Formerly QRDL) |
Instructors: |
Eni Mustafaraj |
Meeting Time(s): |
Science Center L Wing 043 Classroom - TF 8:30 AM - 9:45 AM |
|
CS 235 01 - Theory of Computation
Course: |
CS 235 - 01 |
Title: |
Theory of Computation |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS230, CS230P, or CS230X) and MATH 225, or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Smaranda Sandu |
Meeting Time(s): |
Science Center L Wing 039 Classroom - MR 9:55 AM - 11:10 AM |
|
CS 235 02 - Theory of Computation
Course: |
CS 235 - 02 |
Title: |
Theory of Computation |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS230, CS230P, or CS230X) and MATH 225, or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Brian Tjaden |
Meeting Time(s): |
Science Center L Wing 039 Classroom - MR 11:20 AM - 12:35 PM |
|
CS 236 01 - Spatial-Temporal Mechanism Design
Course: |
CS 236 - 01 |
Title: |
Spatial-Temporal Mechanism Design |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS230, CS230P, or CS230X), or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Christine Bassem |
Meeting Time(s): |
Science Center Hub 305 Classroom - TF 11:20 AM - 12:35 PM |
|
CS 240 01 - Foundations of Computer Systems with Laboratory
Course: |
CS 240 - 01 |
Title: |
Foundations of Computer Systems with Laboratory |
Credit Hours: |
1.25 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS230, CS230P, or CS230X) or permission of the instructor. |
Notes: |
This course satisfies the laboratory requirement. |
Distribution(s): |
Natural and Physical Sciences Laboratory
Mathematical Modeling and Problem Solving |
Instructors: |
Alexa VanHattum |
Meeting Time(s): |
Science Center Hub 401 Classroom - MR 2:20 PM - 3:35 PM |
|
CS 240L L01 - Laboratory: Foundations of Computer Systems Laboratory
Course: |
CS 240L - L01 |
Title: |
Laboratory: Foundations of Computer Systems Laboratory |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Peter Andrew Mawhorter |
Meeting Time(s): |
Science Center L Wing 037 Computer Science Lab - W 8:30 AM - 11:30 AM |
|
CS 240L L02 - Laboratory: Foundations of Computer Systems Laboratory
Course: |
CS 240L - L02 |
Title: |
Laboratory: Foundations of Computer Systems Laboratory |
Credit Hours: |
0 |
Description: |
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. |
Prerequisite(s): |
None. |
Notes: |
|
Instructors: |
Peter Andrew Mawhorter |
Meeting Time(s): |
Science Center L Wing 037 Computer Science Lab - W 12:30 PM - 3:30 PM |
|
CS 244 01 - Machine Learning
Course: |
CS 244 - 01 |
Title: |
Machine Learning |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following - CS230, CS230P, or CS230X; or permission of the instructor. |
Notes: |
Mandatory Credit/Non Credit. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Brian Tjaden |
Meeting Time(s): |
Science Center L Wing 180 Computer Science Computer Lab - MR 9:55 AM - 11:10 AM |
|
CS 251 01 - Principles of Programming Languages
Course: |
CS 251 - 01 |
Title: |
Principles of Programming Languages |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Alexa VanHattum |
Meeting Time(s): |
Science Center Hub 401 Classroom - MR 3:45 PM - 5:00 PM |
|
CS 299 01 - Research Methods for Ethics of Technology
Course: |
CS 299 - 01 |
Title: |
Research Methods for Ethics of Technology |
Credit Hours: |
1 |
Description: |
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. Enrollment in this course is by permission of the instructor. Students interested in taking this course should fill out this Google Form. |
Prerequisite(s): |
Permission of the instructor. |
Notes: |
|
Distribution(s): |
Data Literacy (Formerly QRF)
Data Literacy (Formerly QRDL)
Religion, Ethics, and Moral Philosophy |
Cross Listed Courses: |
PHIL 222 01 - Research Methods for Ethics of Technology
|
Instructors: |
Julie Walsh
Eni Mustafaraj |
Meeting Time(s): |
Science Center L Wing 039 Classroom - MR 8:30 AM - 9:45 AM
Science Center L Wing 039 Classroom - W 8:30 AM - 10:20 AM |
|
CS 304 01 - Databases with Web Interfaces
Course: |
CS 304 - 01 |
Title: |
Databases with Web Interfaces |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Scott Anderson |
Meeting Time(s): |
Science Center Hub 305 Classroom - TF 2:10 PM - 3:25 PM
Science Center Hub 305 Classroom - W 3:30 PM - 4:45 PM |
|
CS 307 01 - Computer Graphics
Course: |
CS 307 - 01 |
Title: |
Computer Graphics |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following (CS 230, CS 230P, or CS 230X), or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Scott Anderson |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - TF 9:55 AM - 11:10 AM |
|
CS 317 01 - Mobile App Development
Course: |
CS 317 - 01 |
Title: |
Mobile App Development |
Credit Hours: |
1 |
Description: |
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.
|
Prerequisite(s): |
One of the following - CS 230, CS 230X, or CS 230P. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Franklyn Turbak |
Meeting Time(s): |
Science Center Hub 103 Classroom - TF 2:10 PM - 3:25 PM
Science Center Hub 103 Classroom - W 3:30 PM - 4:20 PM |
|
CS 325 01 - Designing for Accessibility
Course: |
CS 325 - 01 |
Title: |
Designing for Accessibility |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
CS 220 or permission of the instructor. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving |
Instructors: |
Vinitha Gadiraju |
Meeting Time(s): |
Science Center L Wing 120 Computer Science HCI Lab - TF 12:45 PM - 2:00 PM |
|
CS 333 01 - Natural Language Processing
Course: |
CS 333 - 01 |
Title: |
Natural Language Processing |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following CS 230, CS 230P, or CS 230X and either MATH 206 or MATH 220 or MATH 225. |
Notes: |
|
Distribution(s): |
Mathematical Modeling and Problem Solving
Social and Behavioral Analysis |
Instructors: |
Carolyn Anderson |
Meeting Time(s): |
Science Center L Wing 039 Classroom - TF 9:55 AM - 11:10 AM |
|
CS 345 01 - Probabilistic Foundations of Machine Learning
Course: |
CS 345 - 01 |
Title: |
Probabilistic Foundations of Machine Learning |
Credit Hours: |
1 |
Description: |
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. Follow the link for more information about the course. Enrollment in this course is by permission of the instructor only. Students who are interested in this course should fill out this Google Form. |
Prerequisite(s): |
(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. |
Notes: |
|
Distribution(s): |
Data Literacy (Formerly QRF)
Mathematical Modeling and Problem Solving |
Instructors: |
Yaniv Yacoby |
Meeting Time(s): |
Science Center Hub 402 CS Computer Lab - MR 8:30 AM - 9:45 AM
Science Center Hub 402 CS Computer Lab - W 8:30 AM - 9:20 AM |
|
CS 366 01 - Advanced Projects in Interactive Media
Course: |
CS 366 - 01 |
Title: |
Advanced Projects in Interactive Media |
Credit Hours: |
1 |
Description: |
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. |
Prerequisite(s): |
One of the following - CS 220, CS 320 or CS 323. |
Notes: |
This course may be used to fulfill the capstone requirement for the MAS major. |
Distribution(s): |
Mathematical Modeling and Problem Solving |
Cross Listed Courses: |
MAS 366 01 - Advanced Projects in Interactive Media
|
Instructors: |
Orit Shaer |
Meeting Time(s): |
Science Center L Wing 120 Computer Science HCI Lab - R 2:20 PM - 5:00 PM |
|