Course Schedule
COURSE SCHEDULE: fall 2022
CS 1-B
Collaborative Introduction to Computer Science

An optional preparatory course for students with no prior programming experience and limited experience in college-level STEM classes. Basics of programming including variables, control flow, subroutines, and problem solving in a hands-on, collaborative environment. The class will meet over the latter half of the semester, and prepare students to enter CS11 with prior exposure to topics that CS 11 discusses in depth. Pass/fail grading.

Prerequisite: Recommendations: high school algebra.
Megan Monroe
TR 10:30-11:45
Halligan Hall 111A
CS 4-01
Teaching Computer Science

This course will prepare undergraduates to function effectively and efficiently as undergraduate teaching assistants. Through this course, students will learn pedagogical techniques that match learner needs; discuss ethical and social concerns that UTAs face in the course of a semester; and problem solve together issues that arise as teaching assistants. This course is designed in a learner centered model requiring your active and engaged participation. Through your willingness to share your experiences and expertise and your collaboration with your fellow UTA we will together construct meaningful solutions to difficulty situations. Faculty from Computer Science will participate in some of the sessions as co-facilitators. Students will be expected to complete short readings; keep a reflective blog of your learning as a teacher; give a short final presentation on a topic of interest that you want to explore in more depth to help you in your TA class.

Megan Monroe
R 4:30-7:30p
Joyce Cummings Center 265
CS 5-03
Introduction to Digital Humanities

The Humanities is increasingly making use of computerized methods in gathering and interpreting research data. Simultaneously, the world has seen a dramatic increase in the dissemination of numerical claims-—the products of data science--in forms ranging from infographics in newspapers to interactive visualizations on social media and other web sites. This course covers selected topics in computing approaches for the Humanities. The aim is to equip Humanities students with basic awareness and skills in using digital research methods and applying that knowledge to understanding and interrogating the numerical claims produced by data scientists. Additionally, the course aims to provide experience with a variety of computational tools to approach Humanities research 9 questions, topics, and datasets. All examples and the applications of the computational tools will be drawn from the Humanities. We hope to empower Humanities students to understand and interpret research conducted with computerized methods. After this course, they should be familiar with the steps involved in working with data. They will be prepared to ask questions of numerical claims they encounter in publications and online. Where did the source data come from? How was it processed? Why was it visualized in this way and how might the visualization help or hinder appropriate interpretation? They will also be prepared to engage in research together with data scientists and thus form better teams. Non-Humanities students will be better equipped to engage with Humanists by getting a sense for the needs of the field. They will also gain awareness of the different topics explored in the Humanities (such as language, history, prosopography, geolocalization, etc). Students will develop an interest in these disciplines and add them to a well-rounded curriculum. Further, students will benefit from exposure to and hands on experience with real world applications of data science techniques in the Humanities. The format of the course will be modeled after introductory Computer Science (CS) courses at Tufts. The course is open to all Tufts undergraduates and will be counted as a Humanities credit.

Gregory Crane, Micah Saxton
MW 3:00-4:15
Braker Hall 118
CS 10-01
Computer Science for All

Computers are indispensable tools for research. This does not only hold for more technical fields such as physics or chemistry but also for the Humanities and the Social Sciences. While most students are competent users of standard software such as word processing or spreadsheets, the real power of the computer is unleashed when we are able to program it ourselves and make it do exactly what we want it to do.

This course is aimed at people who want to learn how to use computer science to solve basic information processing problems, such as analyzing text data and performing elementary statistics on them. It will cover elementary principles of computer science and will teach the student to independently write their own programs in the computer language Python.

This course is meant for people who have little or no previous experience in computer science. Therefore, in this course we do not assume that the students already know how to write computer programs. However, computer programming is a skill, and learning a new skill takes substantial amounts of effort and time. So the fact that this course is aimed at beginners does not mean that it is easy, or that it will involve less work than our other introduction courses, like e.g. COMP 11. On the contrary, it is very likely the case that this course will involves more effort than other introductory programming courses, if only because the fact that we do not assume any previous experience means that the road to our goal is going to be longer.

IMPORTANT NOTE: Passing this course does NOT fulfill the A&S Mathematics distribution requirement.

Antonella Di Lillo
TR 12:00-1:15
Halligan Hall 111A
CS 11-M1
Introduction to Computer Science

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary.

Partha Biswas
R 6:30p-8:00p
Online (synchronous)
CS 11-01
Introduction to Computer Science

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary.

Richard Townsend
TR 9:00-10:15
Joyce Cummings Center 270
CS 11-01G
Introduction to Computer Science

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary.

Richard Townsend
TR 9:00-10:15
Joyce Cummings Center 270
CS 11-02
Introduction to Computer Science

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary.

Richard Townsend
TR 10:30-11:45
Joyce Cummings Center 270
CS 11-02G
Introduction to Computer Science

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary.

Richard Townsend
TR 10:30-11:45
Joyce Cummings Center 270
CS 12-01
Cyber for Future Policymakers

Relevance of computer technologies to policy development. Internet architecture and basic networking, the Web, cloud architectures, cryptography, security and privacy, AI and machine learning, and open-source systems. Developing technologies, including quantum computing and post-quantum cryptography.

Prerequisite: Recommendations: COMP 10 or COMP 11.
David Lillethun
MW 10:30-11:45
Joyce Cummings Center 280
CS 13-01
How Systems Work

How computing systems work: bits, bytes, the representation of information, the CPU, assembly language, programming languages. Networking: including peering, packets, and the Internet. Algorithms and the fundamental limitations of computing.

Prerequisite: Recommendations: COMP 10 or COMP 11.
Mark Sheldon
TR 12:00-1:15
Barnum/Dana Hall 104
CS 14-01
Emerging Scholars in Computer Science

Weekly, peer-led workshops exploring topics in computer science. Emphasis on the collaborative and problem-solving nature of computer science. No prior programming experience is necessary. Students must apply to enroll – see departmental website for details.

Prerequisite: Prerequisite: first year or sophomore standing Corequisite: COMP 10 or COMP 11.
Richard Townsend
CS 15-M1
Data Structures

A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.

Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit.
Partha Biswas
R 8:00p-9:30p
Online (synchronous)
CS 15-01
Data Structures

A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.

Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit.
Milod Kazerounian
MW 10:30-11:45
Braker Hall 001
CS 15-01G
Data Structures

A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.

Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit.
Milod Kazerounian
MW 10:30-11:45
Braker Hall 001
CS 15-02
Data Structures

A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.

Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit.
Milod Kazerounian
MW 3:00-4:15
Joyce Cummings Center 270
CS 15-02G
Data Structures

A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.

Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit.
Milod Kazerounian
MW 10:30-11:45
Joyce Cummings Center 270
CS 20-01
Web Programming

An introduction to techniques, principles, and practices of writing computer programs for the World Wide Web. Server and browser capabilities and limits. Media types, handlers, and limitations. Web programming languages and techniques. Web security, privacy, and commerce. Lectures augmented with programming projects illustrating concepts and current practice.

Prerequisite: COMP 11; or COMP 10 and consent.
Lisa DiOrio
TR 1:30-2:45
Joyce Cummings Center 170
CS 20-01G
Web Programming

An introduction to techniques, principles, and practices of writing computer programs for the World Wide Web. Server and browser capabilities and limits. Media types, handlers, and limitations. Web programming languages and techniques. Web security, privacy, and commerce. Lectures augmented with programming projects illustrating concepts and current practice.

Prerequisite: COMP 11; or COMP 10 and consent.
Lisa DiOrio
TR 1:30-2:45
Joyce Cummings Center 170
CS 23-01
Game Design

Principles, design, and development of games. Game structure, engineering, physics, testing, 2D and 3D rendering, user interfaces, sound, and animation. Security of online games. Applications of Economics, Music, and Psychology in crafting games. Projects include writing game design documents, developing an interactive fiction game, and building a functional game in a team.

Prerequisite: Recommended: Comp 15.
Jason Wiser
T 6:00p-9:00p
Joyce Cummings Center 170
CS 30-01
Programming for Data Science

Fundamentals of programming for data-intensive science. Data structures and algorithms for data manipulation, cleaning, and preparation. Design of data manipulation programs. Coding standards and practices. Use and creation of software libraries. Techniques for improving program performance. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis.

Alva Couch
MWF 10:30-11:20
Joyce Cummings Center 160
CS 30-02
Programming for Data Science

Fundamentals of programming for data-intensive science. Data structures and algorithms for data manipulation, cleaning, and preparation. Design of data manipulation programs. Coding standards and practices. Use and creation of software libraries. Techniques for improving program performance. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis.

Alva Couch
MWF 10:30-11:20
Joyce Cummings Center 160
CS 40-01
Machine Structure & Assembly-Language Programming

In COMP 40, you will learn about both high-level programming design principles and the low-level structure of computing machines. Design strategies will focus on modularity, abstraction, and separation of interface from implementation. The following topics on machine structure are covered: memory, caches, registers, machine arithmetic, and bitwise operations. We will also investigate the structure of assembly code, relocatable object code, binary machine code, and the translations between them. You will gain a deep understanding of all of these concepts via large-scale, realistic programming projects.

Mandatory lab will be held Fridays: sign up in SIS.

See https://tufts.qualtrics.com/jfe/form/SV_bxtFLggljQPFwsm for the form required to get approval to enroll in this class.

Prerequisite: COMP 15.
Mark Sheldon
MW 1:30-2:45
Joyce Cummings Center 270
CS 45-01
Computer Organization

Computer organization including performance measurement, instruction set architectures, digital arithmetic, processor datapath, control, pipelining, memory hierarchy, caches and input/output.

Prerequisite: Prerequisite: ES 4
Mark Hempstead
TR 3:00-4:15
Halligan Hall 111B
CS 61-M1
Discrete Mathematics

(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

Prerequisite: Math 32 or Computer Science 11 or permission of instructor.
Emmely Rogers
W 6:00p-7:30p
Online (synchronous)
CS 61-02
Discrete Mathematics

(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

Prerequisite: Math 32 or Computer Science 11 or permission of instructor.
Karen Edwards
MWF 10:30-11:20
Joyce Cummings Center 170
CS 61-02G
Discrete Mathematics

(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

Prerequisite: Math 32 or Computer Science 11 or permission of instructor.
Karen Edwards
MWF 10:30-11:20
Joyce Cummings Center 170
CS 61-03
Discrete Mathematics

(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

Prerequisite: Math 32 or Computer Science 11 or permission of instructor.
Karen Edwards
MWF 1:30-2:20
Joyce Cummings Center 170
CS 61-03G
Discrete Mathematics

(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

Prerequisite: Math 32 or Computer Science 11 or permission of instructor.
Karen Edwards
MWF 1:30-2:20
Joyce Cummings Center 170
CS 86-01
Object-Oriented Programming for Graphical User Interfaces (formerly Comp 106)

Object-oriented programming (OOP) and design, using the Java language. General OOP concepts (classes and instances, methods, inheritance) plus specifics of programming in Java, with emphasis on application to graphical user interfaces (GUIs). Design and programming projects using Java and toolkits.

Prerequisite: Comp 15 or permission of the instructor.
Robert J. K. Jacob
MW 4:30-5:45p
Joyce Cummings Center 280
CS 97-01
Senior Capstone Project I

Requirements analysis and design of a senior capstone project. Requirements analysis and elicitation methods, and prototyping. Design principles and methods, including designing for usability, security, testability, performance, and scaling. Project management and planning, including cost and effort estimation. Writing effective documentation.

Prerequisite: COMP40 and Senior Standing.
David Lillethun
F 12:00-2:45
Anderson Hall 206
CS 105-01G
Programming Languages

Principles and application of computer programming languages. Emphasizes ideas and techniques most relevant to practitioners, but includes foundations crucial for intellectual rigor: abstract syntax, lambda calculus, type systems, dynamic semantics. Case studies, reinforced by programming exercises. Grounding sufficient to read professional literature.

Prerequisite: COMP 15 (Data Structures) and one semester of Discrete Mathematics (COMP/MATH 22 or 61).
Norman Ramsey
MW 3:00-4:15
Barnum/Dana Hall 008
CS 105-01S
Programming Languages

Principles and application of computer programming languages. Emphasizes ideas and techniques most relevant to practitioners, but includes foundations crucial for intellectual rigor: abstract syntax, lambda calculus, type systems, dynamic semantics. Case studies, reinforced by programming exercises. Grounding sufficient to read professional literature.

Prerequisite: COMP 15 (Data Structures) and one semester of Discrete Mathematics (COMP/MATH 22 or 61).
Norman Ramsey
MW 3:00-4:15
Barnum/Dana Hall 008
CS 105-01U
Programming Languages

Principles and application of computer programming languages. Emphasizes ideas and techniques most relevant to practitioners, but includes foundations crucial for intellectual rigor: abstract syntax, lambda calculus, type systems, dynamic semantics. Case studies, reinforced by programming exercises. Grounding sufficient to read professional literature.

Prerequisite: COMP 15 (Data Structures) and one semester of Discrete Mathematics (COMP/MATH 22 or 61).
Norman Ramsey
MW 3:00-4:15
Barnum/Dana Hall 008
CS 112-01G
Networks & Protocols

Design and implementation of computer communication networks, protocols, and applications, with an emphasis on the Internet protocol suite. Network architectures and programming interfaces. Data link, transport, and routing protocols. Congestion sources and remedies. Addressing and naming in local area and wide area networks. Network security and network management.

Prerequisite: Comp 15 and one of EE 14 or Comp 40
Fahad Dogar
MW 10:30-11:45
Joyce Cummings Center 140
CS 112-01S
Networks & Protocols

Design and implementation of computer communication networks, protocols, and applications, with an emphasis on the Internet protocol suite. Network architectures and programming interfaces. Data link, transport, and routing protocols. Congestion sources and remedies. Addressing and naming in local area and wide area networks. Network security and network management.

Prerequisite: Comp 15 and one of EE 14 or Comp 40
Fahad Dogar
MW 10:30-11:45
Joyce Cummings Center 140
CS 112-01U
Networks & Protocols

Design and implementation of computer communication networks, protocols, and applications, with an emphasis on the Internet protocol suite. Network architectures and programming interfaces. Data link, transport, and routing protocols. Congestion sources and remedies. Addressing and naming in local area and wide area networks. Network security and network management.

Prerequisite: Comp 15 and one of EE 14 or Comp 40
Fahad Dogar
MW 10:30-11:45
Joyce Cummings Center 140
CS 115-M1
Database Systems

Fundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections.

Prerequisite: COMP 15.
Cody Doucette
M 7:00p-8:30p
Online (synchronous)
CS 115-01G
Database Systems

Fundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections.

Prerequisite: COMP 15.
David Lillethun
TR 6:00p-7:15p
Joyce Cummings Center 160
CS 115-01S
Database Systems

Fundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections.

Prerequisite: COMP 15.
David Lillethun
TR 6:00p-7:15p
Joyce Cummings Center 160
CS 115-01U
Database Systems

Fundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections.

Prerequisite: COMP 15.
David Lillethun
TR 6:00p-7:15p
Joyce Cummings Center 160
CS 116-M1
Introduction to Security

A systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects.

Prerequisite: Comp 15.
Ming Chow
W 5:30p-7:00p
Online (synchronous)
CS 116-01G
Introduction to Security

A systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects.

Prerequisite: Comp 15.
Ming Chow
TR 4:30-5:45p
Joyce Cummings Center 270
CS 116-01S
Introduction to Security

A systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects.

Prerequisite: Comp 15.
Ming Chow
TR 4:30-5:45p
Joyce Cummings Center 270
CS 116-01U
Introduction to Security

A systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects.

Prerequisite: Comp 15.
Ming Chow
TR 4:30-5:45p
Joyce Cummings Center 270
CS 117-01
Internet-Scale Distributed Systems: Lessons from the World Wide Web

Please note that this course was formerly numbered COMP 150-IDS. The World Wide Web, one of the most important developments of our time, is a unique and in many ways innovative distributed system. This course will explore the design decisions that enabled the Web's success, and from those will derive important and sometimes surprising principles for the design of other modern distributed systems. We will introduce and draw comparisons with more traditional distributed system designs, including distributed objects, client/server, pub/sub, reliable queuing, etc. We will also study a few (easily understood) research papers and some of the core specifications of the Web. Specific topics to be covered include: global uniform naming; location-independence; layering and leaky abstractions; end-to-end arguments and decentralized innovation; Metcalfe's law and network effects; extensibility and evolution of distributed systems; declarative vs. procedural languages; Postel's law; caching; and HTML/XML/JSON document-based computing vs. RPC. The purpose of this course is not to teach Web site development, but rather to explore lessons in system design that can be applied to any complex software system. More detailed course information can be found at https://www.cs.tufts.edu/comp/117/shouldItakeit

Prerequisite: CS 40 or permission of the instructor.
Noah Mendelsohn
TR 4:30-5:45p
Aidekman Complex 012
CS 118-01G
Cloud Computing

Cloud computing fundamentals, including cloud architecture, scalability, elasticity, and metrics of cloud performance including service-level objectives (SLOs) and service-level agreements (SLAs). Cloud programming models and abstractions including Map/Reduce. Persistent storage mechanisms, including key/value stores and cold storage. Geo-distributed cloud systems. Cloud networking, including data center architecture, software defined networking, and middleboxes. Cloud security.

Prerequisite: COMP 15 and (COMP 40 or EE 14) or CS Grad standing or CS postbac
Raja Sambasivan
MW 4:30-5:45p
Joyce Cummings Center 160
CS 118-01S
Cloud Computing

Cloud computing fundamentals, including cloud architecture, scalability, elasticity, and metrics of cloud performance including service-level objectives (SLOs) and service-level agreements (SLAs). Cloud programming models and abstractions including Map/Reduce. Persistent storage mechanisms, including key/value stores and cold storage. Geo-distributed cloud systems. Cloud networking, including data center architecture, software defined networking, and middleboxes. Cloud security.

Prerequisite: COMP 15 and (COMP 40 or EE 14) or CS Grad standing or CS postbac
Raja Sambasivan
MW 4:30-5:45p
Joyce Cummings Center 160
CS 118-01U
Cloud Computing

Cloud computing fundamentals, including cloud architecture, scalability, elasticity, and metrics of cloud performance including service-level objectives (SLOs) and service-level agreements (SLAs). Cloud programming models and abstractions including Map/Reduce. Persistent storage mechanisms, including key/value stores and cold storage. Geo-distributed cloud systems. Cloud networking, including data center architecture, software defined networking, and middleboxes. Cloud security.

Prerequisite: COMP 15 and (COMP 40 or EE 14) or CS Grad standing or CS postbac
Raja Sambasivan
MW 4:30-5:45p
Joyce Cummings Center 160
CS 119-01G
Big Data

"Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.

This course introduces the latest techniques and infrastructures developed for big data including parallel and distributed database systems, map-reduce infrastructures, scalable platforms for complex data types, stream processing systems, and cloud-based computing. The course content will be a blend of theory, algorithms and practical (hands on) work.

Prerequisites: A beginning course in databases, some familiarity with Python, shell programming, Java, Scala, SQL and JavaScript.

J Singh
TR 4:30-5:45p
Joyce Cummings Center 160
CS 119-01S
Big Data

"Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.

This course introduces the latest techniques and infrastructures developed for big data including parallel and distributed database systems, map-reduce infrastructures, scalable platforms for complex data types, stream processing systems, and cloud-based computing. The course content will be a blend of theory, algorithms and practical (hands on) work.

Prerequisites: A beginning course in databases, some familiarity with Python, shell programming, Java, Scala, SQL and JavaScript.

J Singh
TR 4:30-5:45p
Joyce Cummings Center 160
CS 119-01U
Big Data

"Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.

This course introduces the latest techniques and infrastructures developed for big data including parallel and distributed database systems, map-reduce infrastructures, scalable platforms for complex data types, stream processing systems, and cloud-based computing. The course content will be a blend of theory, algorithms and practical (hands on) work.

Prerequisites: A beginning course in databases, some familiarity with Python, shell programming, Java, Scala, SQL and JavaScript.

J Singh
TR 4:30-5:45p
Joyce Cummings Center 160
CS 120-M1
Web Programming and Engineering

Web applications are complex systems that deliver a plethora of functionality to a large number of users, and also exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. Web engineering is an emerging and multidisciplinary process that is used to create quality web applications. This course will discuss the limits of current web technologies, the similarities and differences between web and software engineering, design, information and service architectures, content management, and testing disciplines. Frameworks such as Rails, Spring, and Symfony will be emphasized and used. Projects will involve search, cloud computing, location-based services, and mobile web development.

Prerequisite: Comp 15 and Comp 20, or Consent of Instructor.
Ming Chow
M 5:30p-7:00p
Online (synchronous)
CS 121-M1
Software Engineering

Software engineering is an engineered discipline in which the aim is the production of software products, delivered on time and within a set budget, that satisfies the client’s needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course covers the major concepts and techniques of software engineering including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools so that students can prepare for their future careers as software engineers. The course will combine a strong technical focus with a project providing the opportunity to obtain hands-on experiences on entire phases and workflow of the software process.

Prerequisite: COMP 40, graduate standing, or instructor consent.
Jeff Foster
T 6:00p-7:30p
Online (synchronous)
CS 121-01G
Software Engineering

Software engineering is an engineered discipline in which the aim is the production of software products, delivered on time and within a set budget, that satisfies the client’s needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course covers the major concepts and techniques of software engineering including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools so that students can prepare for their future careers as software engineers. The course will combine a strong technical focus with a project providing the opportunity to obtain hands-on experiences on entire phases and workflow of the software process.

Prerequisite: COMP 40, graduate standing, or instructor consent.
Jeff Foster
MW 3:00-4:15
Cohen Auditorium
CS 121-01S
Software Engineering

Software engineering is an engineered discipline in which the aim is the production of software products, delivered on time and within a set budget, that satisfies the client’s needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course covers the major concepts and techniques of software engineering including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools so that students can prepare for their future careers as software engineers. The course will combine a strong technical focus with a project providing the opportunity to obtain hands-on experiences on entire phases and workflow of the software process.

Prerequisite: COMP 40, graduate standing, or instructor consent.
Jeff Foster
MW 3:00-4:15
Cohen Auditorium
CS 121-01U
Software Engineering

Software engineering is an engineered discipline in which the aim is the production of software products, delivered on time and within a set budget, that satisfies the client’s needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course covers the major concepts and techniques of software engineering including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools so that students can prepare for their future careers as software engineers. The course will combine a strong technical focus with a project providing the opportunity to obtain hands-on experiences on entire phases and workflow of the software process.

Prerequisite: COMP 40, graduate standing, or instructor consent.
Jeff Foster
MW 3:00-4:15
Cohen Auditorium
CS 131-M1
Artificial Intelligence

History, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning.

Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory.
Fabrizio Santini
M 7:30p-9:00p
Online (synchronous)
CS 131-01G
Artificial Intelligence

History, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning.

Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory.
Fabrizio Santini
MW 6:00p-7:15p
Joyce Cummings Center 270
CS 131-01S
Artificial Intelligence

History, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning.

Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory.
Fabrizio Santini
MW 6:00p-7:15p
Joyce Cummings Center 270
CS 131-01U
Artificial Intelligence

History, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning.

Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory.
Fabrizio Santini
MW 6:00p-7:15p
Joyce Cummings Center 270
CS 133-01G
Human-Robot Interaction

This course will provide an overview of the up and coming field of human-robot interaction (HRI) which is located squarely in the intersection of psychology, human factors engineering, computer science, and robotics. HRI has become a major research focus recently with the NSF's National Robotics Initiative and the push countries around the globe to develop robots for various societal tasks, from new flexible and adaptive robots for industrial manufacturing, to socially assistive robots for eldercare. In this course, we will examine this field from an interdisciplinary perspective, reading key papers in HRI that intersect computer science, robotics, cognitive and social psychology (since there is no suitable textbook yet, all reading materials will be made available). Students will give short presentations on HRI studies and designs and work in interdisciplinary groups on a term project which will require them to design and conduct an HRI study.

Prerequisite: Senior or graduate standing in Computer Science, or permission of instructor.
Elaine Short
MW 3:00-4:15
Joyce Cummings Center 260
CS 133-01S
Human-Robot Interaction

This course will provide an overview of the up and coming field of human-robot interaction (HRI) which is located squarely in the intersection of psychology, human factors engineering, computer science, and robotics. HRI has become a major research focus recently with the NSF's National Robotics Initiative and the push countries around the globe to develop robots for various societal tasks, from new flexible and adaptive robots for industrial manufacturing, to socially assistive robots for eldercare. In this course, we will examine this field from an interdisciplinary perspective, reading key papers in HRI that intersect computer science, robotics, cognitive and social psychology (since there is no suitable textbook yet, all reading materials will be made available). Students will give short presentations on HRI studies and designs and work in interdisciplinary groups on a term project which will require them to design and conduct an HRI study.

Prerequisite: Senior or graduate standing in Computer Science, or permission of instructor.
Elaine Short
MW 3:00-4:15
Joyce Cummings Center 260
CS 133-01U
Human-Robot Interaction

This course will provide an overview of the up and coming field of human-robot interaction (HRI) which is located squarely in the intersection of psychology, human factors engineering, computer science, and robotics. HRI has become a major research focus recently with the NSF's National Robotics Initiative and the push countries around the globe to develop robots for various societal tasks, from new flexible and adaptive robots for industrial manufacturing, to socially assistive robots for eldercare. In this course, we will examine this field from an interdisciplinary perspective, reading key papers in HRI that intersect computer science, robotics, cognitive and social psychology (since there is no suitable textbook yet, all reading materials will be made available). Students will give short presentations on HRI studies and designs and work in interdisciplinary groups on a term project which will require them to design and conduct an HRI study.

Prerequisite: Senior or graduate standing in Computer Science, or permission of instructor.
Elaine Short
MW 3:00-4:15
Joyce Cummings Center 260
CS 134-01G
Computational Models in Cognitive Science

Scientific logic of using computational models for testing theories in cognitive science. Connectionist and Bayesian models; agent-based simulation. Emphasis upon using models in combination with empirical data to test theories. Appropriate use and critical evaluation of computational modeling as found in scientific publications. Recommendations: COMP 10, 11, or some programming experience.

JP de Ruiter
TR 10:30-11:45
Tisch Library 316
CS 134-01S
Computational Models in Cognitive Science

Scientific logic of using computational models for testing theories in cognitive science. Connectionist and Bayesian models; agent-based simulation. Emphasis upon using models in combination with empirical data to test theories. Appropriate use and critical evaluation of computational modeling as found in scientific publications. Recommendations: COMP 10, 11, or some programming experience.

JP de Ruiter
TR 10:30-11:45
Tisch Library 316
CS 134-01U
Computational Models in Cognitive Science

Scientific logic of using computational models for testing theories in cognitive science. Connectionist and Bayesian models; agent-based simulation. Emphasis upon using models in combination with empirical data to test theories. Appropriate use and critical evaluation of computational modeling as found in scientific publications. Recommendations: COMP 10, 11, or some programming experience.

JP de Ruiter
TR 10:30-11:45
Tisch Library 316
CS 135-M1
Introduction to Machine Learning

An overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine.

Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended).
Staff
R 7:30p-9:00p
Online (synchronous)
CS 135-01G
Introduction to Machine Learning

An overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine.

Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended).
Bert Huang
TR 12:00-1:15
Joyce Cummings Center 270
CS 135-01S
Introduction to Machine Learning

An overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine.

Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended).
Bert Huang
TR 12:00-1:15
Joyce Cummings Center 270
CS 135-01U
Introduction to Machine Learning

An overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine.

Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended).
Bert Huang
TR 12:00-1:15
Joyce Cummings Center 270
CS 137-01G
Deep Neural Networks

Deep neural networks and their applications including computer vision and natural language processing. Feed-forward, convolutional, and recurrent neural networks. Techniques for training deep neural networks, including optimization, regularization, and usage of related software.

Prerequisite: Recommendations: COMP 135, MATH 42, and MATH 70; or consent of instructor.
Liping Liu
TR 12:00-1:15
Joyce Cummings Center 160
CS 137-01S
Deep Neural Networks

Deep neural networks and their applications including computer vision and natural language processing. Feed-forward, convolutional, and recurrent neural networks. Techniques for training deep neural networks, including optimization, regularization, and usage of related software.

Prerequisite: Recommendations: COMP 135, MATH 42, and MATH 70; or consent of instructor.
Liping Liu
TR 12:00-1:15
Joyce Cummings Center 160
CS 137-01U
Deep Neural Networks

Deep neural networks and their applications including computer vision and natural language processing. Feed-forward, convolutional, and recurrent neural networks. Techniques for training deep neural networks, including optimization, regularization, and usage of related software.

Prerequisite: Recommendations: COMP 135, MATH 42, and MATH 70; or consent of instructor.
Liping Liu
TR 12:00-1:15
Joyce Cummings Center 160
CS 138-M1
Reinforcement Learning

"Reinforcement learning problems involve learning what to do — how to map situations to actions — so as to maximize a numerical reward signal." - Sutton and Barto ("Reinforcement Learning: An Introduction", course textbook)

This course will focus on agents that much learn, plan, and act in complex, non-deterministic environments. We will cover the main theory and approaches of Reinforcement Learning (RL), along with common software libraries and packages used to implement and test RL algorithms. The course is a graduate seminar with assigned readings and discussions. The content of the course will be guided in part by the interests of the students. It will cover at least the first several chapters of the course textbook. Beyond that, we will move to more advanced and recent readings from the field (e.g., transfer learning and deep RL) with an aim towards focusing on the practical successes and challenges relating to reinforcement learning.

There will be a programming component to the course in the form of a few short assignments and a final projects.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Students are expected to be proficient programmers in at least one of the following languages: C++, Java, or Python. Prior coursework (or experience) in Artificial Intelligence and/or Machine Learning is highly recommended, but not required.
Martin Allen
T 6:00p-7:30p
Online (synchronous)
CS 138-01G
Reinforcement Learning

"Reinforcement learning problems involve learning what to do — how to map situations to actions — so as to maximize a numerical reward signal." - Sutton and Barto ("Reinforcement Learning: An Introduction", course textbook)

This course will focus on agents that much learn, plan, and act in complex, non-deterministic environments. We will cover the main theory and approaches of Reinforcement Learning (RL), along with common software libraries and packages used to implement and test RL algorithms. The course is a graduate seminar with assigned readings and discussions. The content of the course will be guided in part by the interests of the students. It will cover at least the first several chapters of the course textbook. Beyond that, we will move to more advanced and recent readings from the field (e.g., transfer learning and deep RL) with an aim towards focusing on the practical successes and challenges relating to reinforcement learning.

There will be a programming component to the course in the form of a few short assignments and a final projects.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Students are expected to be proficient programmers in at least one of the following languages: C++, Java, or Python. Prior coursework (or experience) in Artificial Intelligence and/or Machine Learning is highly recommended, but not required.
Jivko Sinapov
TR 10:30-11:45
Science and Technology 135
CS 138-01S
Reinforcement Learning

"Reinforcement learning problems involve learning what to do — how to map situations to actions — so as to maximize a numerical reward signal." - Sutton and Barto ("Reinforcement Learning: An Introduction", course textbook)

This course will focus on agents that much learn, plan, and act in complex, non-deterministic environments. We will cover the main theory and approaches of Reinforcement Learning (RL), along with common software libraries and packages used to implement and test RL algorithms. The course is a graduate seminar with assigned readings and discussions. The content of the course will be guided in part by the interests of the students. It will cover at least the first several chapters of the course textbook. Beyond that, we will move to more advanced and recent readings from the field (e.g., transfer learning and deep RL) with an aim towards focusing on the practical successes and challenges relating to reinforcement learning.

There will be a programming component to the course in the form of a few short assignments and a final projects.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Students are expected to be proficient programmers in at least one of the following languages: C++, Java, or Python. Prior coursework (or experience) in Artificial Intelligence and/or Machine Learning is highly recommended, but not required.
Jivko Sinapov
TR 10:30-11:45
Science and Technology 135
CS 138-01U
Reinforcement Learning

"Reinforcement learning problems involve learning what to do — how to map situations to actions — so as to maximize a numerical reward signal." - Sutton and Barto ("Reinforcement Learning: An Introduction", course textbook)

This course will focus on agents that much learn, plan, and act in complex, non-deterministic environments. We will cover the main theory and approaches of Reinforcement Learning (RL), along with common software libraries and packages used to implement and test RL algorithms. The course is a graduate seminar with assigned readings and discussions. The content of the course will be guided in part by the interests of the students. It will cover at least the first several chapters of the course textbook. Beyond that, we will move to more advanced and recent readings from the field (e.g., transfer learning and deep RL) with an aim towards focusing on the practical successes and challenges relating to reinforcement learning.

There will be a programming component to the course in the form of a few short assignments and a final projects.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Students are expected to be proficient programmers in at least one of the following languages: C++, Java, or Python. Prior coursework (or experience) in Artificial Intelligence and/or Machine Learning is highly recommended, but not required.
Jivko Sinapov
TR 10:30-11:45
Science and Technology 135
CS 139-01
Ethics for AI, Robotics, and Human Robot Interaction

This course will provide an overview of the ethical problems and challenges prompted by current and future technological advances in AI, robotics, and human-robot interaction. It will start by reviewing the philosophical foundations of the main ethical theories (virtue ethics, deontology, utilitarianism) and link them to different algorithmic approaches in artificial agents (rule-based, utility-based, behavior-based, etc.). Explicating and contrasting the assumptions underlying each algorithmic approach (e.g., policy-based decision-making vs. rule-based reasoning), functional tradeoffs and implications for autonomous robots and AI systems will be discussed. The scope will then be widened to moral psychology and human-robot/human-technology interaction to move beyond individual autonomous systems into the realm of social interactions between humans and autonomous systems, discussing the societal implications of AI and robot technology. Social, economical, legal, and military ramifications will be considered, with the aim of exposing the unique challenges AI and robot technology pose for humanity, compared to other disruptive technologies, but also they unique opportunities these technologies enable for current and future generations.

Please note: for Spring 2022, the course will meet in person on Tuesdays from 6:00 - 6:50pm. In addition to this meeting time, there will also be virtual, asynchronous lectures.

Matthais Scheutz
TR 6:00p-7:15p
Joyce Cummings Center 402
CS 139-02
Ethics for AI, Robotics, and Human Robot Interaction

This course will provide an overview of the ethical problems and challenges prompted by current and future technological advances in AI, robotics, and human-robot interaction. It will start by reviewing the philosophical foundations of the main ethical theories (virtue ethics, deontology, utilitarianism) and link them to different algorithmic approaches in artificial agents (rule-based, utility-based, behavior-based, etc.). Explicating and contrasting the assumptions underlying each algorithmic approach (e.g., policy-based decision-making vs. rule-based reasoning), functional tradeoffs and implications for autonomous robots and AI systems will be discussed. The scope will then be widened to moral psychology and human-robot/human-technology interaction to move beyond individual autonomous systems into the realm of social interactions between humans and autonomous systems, discussing the societal implications of AI and robot technology. Social, economical, legal, and military ramifications will be considered, with the aim of exposing the unique challenges AI and robot technology pose for humanity, compared to other disruptive technologies, but also they unique opportunities these technologies enable for current and future generations.

Please note: for Spring 2022, the course will meet in person on Tuesdays from 6:00 - 6:50pm. In addition to this meeting time, there will also be virtual, asynchronous lectures.

Matthais Scheutz
TR 6:00p-7:15p
Joyce Cummings Center 402
CS 142-01G
Network Science

Mathematical foundations of the study of graphs and networks that arise as social, biological and Internet networks. Random graph models, community structure and inference problems, network dynamics, cascading. Example networks drawn from the application domains will be case studies as a companion to the general mathematical theory.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Recommendations: MATH 70 or 72 or CS 135 or 160
Lenore Cowen
TR 10:30-11:45
Joyce Cummings Center 160
CS 142-01S
Network Science

Mathematical foundations of the study of graphs and networks that arise as social, biological and Internet networks. Random graph models, community structure and inference problems, network dynamics, cascading. Example networks drawn from the application domains will be case studies as a companion to the general mathematical theory.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Recommendations: MATH 70 or 72 or CS 135 or 160
Lenore Cowen
TR 10:30-11:45
Joyce Cummings Center 160
CS 142-01U
Network Science

Mathematical foundations of the study of graphs and networks that arise as social, biological and Internet networks. Random graph models, community structure and inference problems, network dynamics, cascading. Example networks drawn from the application domains will be case studies as a companion to the general mathematical theory.

Approved as a category 2 elective in Data Science (analysis and interfaces).

Prerequisite: Recommendations: MATH 70 or 72 or CS 135 or 160
Lenore Cowen
TR 10:30-11:45
Joyce Cummings Center 160
CS 146-01
Computer Engineering with Lab

(Cross-listed w/ EE 126.) This course teaches advanced concepts of modern computer architecture, starting from the basic 5-stage pipelines and progressing to out-of-order superscalar processors. This course introduces the techniques used to maximize single-thread performance within the constraints of memory technology, power consumption, and the inherent instruction-level parallelism of applications. Students will also gain hands on hardware experience by implementing a 5-stage MIPS processor in VHDL. Recommendations: EE 14 or COMP 40; and ES4.

Prerequisite: ES4 and either EE14 or COMP 40 with a ‘C’ or better This course assumes that undergraduate students have taken an undergraduate-level introduction to assembly programming (EE14 or COMP40) and are also proficient in digital logic design (ES4 recommended). In addition, this course (EE 126/COMP 46) will be required to take Advanced Computer Architecture (EE 156 and COMP 140) which is typically offered in the spring semester.
Mark Hempstead
MW 1:30-2:45
Halligan Hall 111B
CS 150-01G
Quantum Complexity Theory

This course is an introduction to the complexity theoretic foundations of quantum computing and centers around the question: “what classes of computational problems are (not) solvable on computational models with quantum mechanical information processing resources?”. We start off with a gentle introduction to quantum mechanics, quantum computing, models of computation and computational complexity. We then proceed to defining quantum complexity classes and their relationship to the complexity zoo. We then move to special topics such as Hamiltonian complexity, noisy intermediate-scale quantum complexity theory, quantum interactive proof systems, bosonic quantum complexity classes, the interface between physics and theoretical computer science, and more, depending on interest. The goal is to bring students to the research frontier.

Prerequisite: Completion of CS 170 and Introduction to Quantum Information Science or equivalent or permission of instructor.
Saeed Mehraban
TR 1:30-2:45
Halligan Hall 111B
CS 150-01S
Quantum Complexity Theory

This course is an introduction to the complexity theoretic foundations of quantum computing and centers around the question: “what classes of computational problems are (not) solvable on computational models with quantum mechanical information processing resources?”. We start off with a gentle introduction to quantum mechanics, quantum computing, models of computation and computational complexity. We then proceed to defining quantum complexity classes and their relationship to the complexity zoo. We then move to special topics such as Hamiltonian complexity, noisy intermediate-scale quantum complexity theory, quantum interactive proof systems, bosonic quantum complexity classes, the interface between physics and theoretical computer science, and more, depending on interest. The goal is to bring students to the research frontier.

Prerequisite: Completion of CS 170 and Introduction to Quantum Information Science or equivalent or permission of instructor.
Saeed Mehraban
TR 1:30-2:45
Halligan Hall 111B
CS 150-01U
Quantum Complexity Theory

This course is an introduction to the complexity theoretic foundations of quantum computing and centers around the question: “what classes of computational problems are (not) solvable on computational models with quantum mechanical information processing resources?”. We start off with a gentle introduction to quantum mechanics, quantum computing, models of computation and computational complexity. We then proceed to defining quantum complexity classes and their relationship to the complexity zoo. We then move to special topics such as Hamiltonian complexity, noisy intermediate-scale quantum complexity theory, quantum interactive proof systems, bosonic quantum complexity classes, the interface between physics and theoretical computer science, and more, depending on interest. The goal is to bring students to the research frontier.

Prerequisite: Completion of CS 170 and Introduction to Quantum Information Science or equivalent or permission of instructor.
Saeed Mehraban
TR 1:30-2:45
Halligan Hall 111B
CS 150-02
Surveillance

What does it mean to do data science in a society filled with competing economic, social, and political interests? In this course, we will draw from historical perspectives on present-day issues in computer science to develop a social and political understanding of what the problem is, how it came to be, and what we can do about it. Our topic of focus will be surveillance, a problem that intersects economics through capitalism, race through histories of the policing of Black and Brown people, and power through systems of control. Throughout the three arcs comprising the class – (1) defining surveillance and learning its history, (2) developing an ethical inquiry and critique of surveillance technology, and (3) applying this practice to present day related problems – we will build “muscles” of analysis and practice that will build a foundation for budding data scientists to navigate a social and political world.

Desen Ozkan, Nick Rabb
MW 4:30-5:45p
Joyce Cummings Center 170
CS 151-01
Introduction to Mobile Application Development on iOS and Swift

This course introduces the basics of contemporary mobile application development using Apple's iOS platform. The main requirement of the course is to build a functioning application in iOS. The course is divided into six modules, each of which covers a different aspect of development which is used in a final project. Module 1 begins with the major features of the Swift programming language and its standard library, along with use of the Xcode IDE for Swift development. Basic language features are covered lightly so that extensive discussion may be focused on differentiating features of the language including closures, optionals, the Swift type system (tuple/enum/struct/class/func), and generics. Module 2 focuses on elements of Functional Reactive Programming with Apple’s Combine library. Module 3 deals with correct application architecture, using a uni-directional dataflow model. Module 4 covers drawing, touch handling, layout and programming for devices of various sizes and aspect ratios, making extensive use of Apple's SwiftUI technology. Module 5 takes the student through a full animation cycle showing which elements of the UI can be smoothly animated and how. Module 6 finishes instruction with a discussion of navigation, tabular data presentation, and application state management. Frequent small assignments progress from basic programming to realistic app development with a focus on responsive device graphics and algorithms. Code design and architecture are emphasized. The course culminates in a final project which integrates all topics discussed into a single coherent whole.

Prerequisite: Completion of CS 15 or graduate standing.
Ronald Simmons
TRF 12:00-1:15
Online (synchronous)
CS 151-02
Privacy, Security, and Data

Organizations today collect and analyze massive amounts of information for important decision-making applications. However, these large-scale analytics often compromise sensitive user information, such as medical or financial records. In this course, we will survey and apply state of the art techniques in privacy-preserving data science, such as differential privacy and secure multi-party computation, to learn how to build systems that provide useful results while still respecting user privacy. Students will be expected to read research papers, give in-class presentations, and complete a final project utilizing real-world data.

Prerequisite: CS 115-level knowledge; some experience with Python, C++, and basic probability.
Johes Bater
MW 6:00p-7:15p
Joyce Cummings Center 260
CS 152-01G
Bayesian Deep Learning

The emerging research area of Bayesian Deep Learning seeks to combine the benefits of modern deep learning (scalable gradient-based training of flexible neural networks for regression and classification) with the benefits of modern Bayesian statistical methods to estimate probabilities and make decisions under uncertainty. The goal of this course is to bring students to the forefront of knowledge in this area through coding exercises, student-led discussion of recent literature, and an in-depth project. Covered topics include key modeling innovations (e.g. function approximation and deep generative models), learning paradigms (e.g. variational inference), and implementation using modern automatic differentiation frameworks. By completing a 2-month self-designed research project, students will gain experience with designing, implementing, and evaluating new contributions in this exciting research space.

Prerequisite: Completion of EE 104 or CS 136 or equivalent required
Michael Hughes
MW 10:30-11:45
Science and Technology 135
CS 152-01S
Bayesian Deep Learning

The emerging research area of Bayesian Deep Learning seeks to combine the benefits of modern deep learning (scalable gradient-based training of flexible neural networks for regression and classification) with the benefits of modern Bayesian statistical methods to estimate probabilities and make decisions under uncertainty. The goal of this course is to bring students to the forefront of knowledge in this area through coding exercises, student-led discussion of recent literature, and an in-depth project. Covered topics include key modeling innovations (e.g. function approximation and deep generative models), learning paradigms (e.g. variational inference), and implementation using modern automatic differentiation frameworks. By completing a 2-month self-designed research project, students will gain experience with designing, implementing, and evaluating new contributions in this exciting research space.

Prerequisite: Completion of EE 104 or CS 136 or equivalent required
Michael Hughes
MW 10:30-11:45
Science and Technology 135
CS 152-01U
Bayesian Deep Learning

The emerging research area of Bayesian Deep Learning seeks to combine the benefits of modern deep learning (scalable gradient-based training of flexible neural networks for regression and classification) with the benefits of modern Bayesian statistical methods to estimate probabilities and make decisions under uncertainty. The goal of this course is to bring students to the forefront of knowledge in this area through coding exercises, student-led discussion of recent literature, and an in-depth project. Covered topics include key modeling innovations (e.g. function approximation and deep generative models), learning paradigms (e.g. variational inference), and implementation using modern automatic differentiation frameworks. By completing a 2-month self-designed research project, students will gain experience with designing, implementing, and evaluating new contributions in this exciting research space.

Prerequisite: Completion of EE 104 or CS 136 or equivalent required
Michael Hughes
MW 10:30-11:45
Science and Technology 135
CS 152-02U
Statistical Bioinformatics

Students will learn to estimate probabilities of events through simulation; perform exploratory probabilistic data analysis to identify outliers, artifacts, and patterns; formulate and assess hypotheses about heterogeneous high dimensional data; appropriately visualize data to assess quality and support interpretation; present statistical data analyses clearly and contextually to specific audiences. These aims will be achieved through homework assignments, in class exercises and discussions, readings, and a course project. There will be weekly assignments throughout the term, alternating between problem sets in R and structured parts of the project.

Donna Slonim
MW 4:30-5:45p
Joyce Cummings Center 140
CS 152-02G
Statistical Bioinformatics

Students will learn to estimate probabilities of events through simulation; perform exploratory probabilistic data analysis to identify outliers, artifacts, and patterns; formulate and assess hypotheses about heterogeneous high dimensional data; appropriately visualize data to assess quality and support interpretation; present statistical data analyses clearly and contextually to specific audiences. These aims will be achieved through homework assignments, in class exercises and discussions, readings, and a course project. There will be weekly assignments throughout the term, alternating between problem sets in R and structured parts of the project.

Donna Slonim
MW 4:30-5:45p
Joyce Cummings Center 140
CS 152-02S
Statistical Bioinformatics

Students will learn to estimate probabilities of events through simulation; perform exploratory probabilistic data analysis to identify outliers, artifacts, and patterns; formulate and assess hypotheses about heterogeneous high dimensional data; appropriately visualize data to assess quality and support interpretation; present statistical data analyses clearly and contextually to specific audiences. These aims will be achieved through homework assignments, in class exercises and discussions, readings, and a course project. There will be weekly assignments throughout the term, alternating between problem sets in R and structured parts of the project.

Donna Slonim
MW 4:30-5:45p
Joyce Cummings Center 140
CS 160-M1
Algorithms

Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
A. Kofi Laing
W 7:00p-9:00p
Online (synchronous)
CS 160-01G
Algorithms

Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Karen Edwards, Martin Allen
MW 4:30-5:45p
Pearson 104
CS 160-01S
Algorithms

Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Karen Edwards, Martin Allen
MW 4:30-5:45p
Pearson 104
CS 160-01U
Algorithms

Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Karen Edwards, Martin Allen
MW 4:30-5:45p
Pearson 104
CS 163-01S
Computational Geometry

(Cross-listed as MATH 181.)Design and analysis of algorithms for geometric problems. Topics include proof of lower bounds, convex hulls, searching and point location, plane sweep and arrangements of lines, Voronoi diagrams, intersection problems, decomposition and partitioning, farthest-pairs and closest-pairs, rectilinear computational geometry.

Prerequisite: COMP 160, COMP 170, any 100+ MATH course, or permission of the instructor.
Diane Souvaine
MW 9:00-10:15
Joyce Cummings Center 140
CS 170-M1
Computation Theory

Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
A. Kofi Laing
R 6:00p-7:30p
Online (synchronous)
CS 170-01G
Computation Theory

Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Megan Monroe
TR 1:30-2:45
Joyce Cummings Center 270
CS 170-01S
Computation Theory

Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Megan Monroe
TR 1:30-2:45
Joyce Cummings Center 270
CS 170-01U
Computation Theory

Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Megan Monroe
TR 1:30-2:45
Joyce Cummings Center 270
CS 175-01G
Computer Graphics

This course explores the fundamentals of computer graphics, including representing digital images, 2D rasterization and anti-aliasing, 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of the C programming language.

Prerequisite: Recommendations: MATH 42 or 44, and MATH 70 or 72, or graduate standing.
Remco Chang
TR 1:30-2:45
Science and Technology 136
CS 175-01S
Computer Graphics

This course explores the fundamentals of computer graphics, including representing digital images, 2D rasterization and anti-aliasing, 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of the C programming language.

Prerequisite: Recommendations: MATH 42 or 44, and MATH 70 or 72, or graduate standing.
Remco Chang
TR 1:30-2:45
Science and Technology 136
CS 175-01U
Computer Graphics

This course explores the fundamentals of computer graphics, including representing digital images, 2D rasterization and anti-aliasing, 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of the C programming language.

Prerequisite: Recommendations: MATH 42 or 44, and MATH 70 or 72, or graduate standing.
Remco Chang
TR 1:30-2:45
Science and Technology 136
CS 182-01
Cyber in the Civilian Sector

There is a myth that the Internet erases borders. But as Internet companies' ability to place localized ads show, that's false. What's more accurate is that the Internet complicates a nation's ability to control of the flow of information within its borders. (This is not a new challenge for sovereign nations; consider the telegraph.) This fluidity has created great economic opportunity and simplified trans-border access, the latter potentially threatening security and other basic state functions. With bits increasingly controlling the world around us, the Digital Revolution poses a highly disruptive threat. In this course, well explore cyber clashes in the civilian sector: from jurisdictional issues and the challenges posed by new technologies to criminal activities and impacts on civil infrastructures. While several of the topics are also covered in International Cyber Conflict: An Introduction to Power and Conflict in Cyberspace, DHP P249, the intersection between the two courses will be relatively minimal. Cyber in the Civilian Sector will have a greater focus on technology and, naturally enough, on the civilian, as opposed to national-security, side of the house.

Josephine Wolff
TR 1:30-2:50
Cabot Auditorium 206
CS 184-01
Cyberlaw and Cyberpolicy

This course is an introduction to the legal issues of cyberspace. Legal issues in this domain are complex. Technology has been evolving faster than the law's ability to handle the changes, so partially this course will be an education in the legislating and policy making of moving targets. It will also be an education in jurisdiction, privacy, surveillance, and copyright as it relates to the Internet. The perspective will be from US law and jurisprudence, although there will be periodic forays into international issues. Topics covered will include cyberlaw and cybergovernance, the Digital Revolution and its impact on First, Fourth, and Fifth Amendment issues, copyright in the Digital Age, and the Computer Fraud and Abuse Act.

Susan Landau
TR 3:00-4:15
Halligan Hall 111B
CS 184-01G
Cyberlaw and Cyberpolicy

This course is an introduction to the legal issues of cyberspace. Legal issues in this domain are complex. Technology has been evolving faster than the law's ability to handle the changes, so partially this course will be an education in the legislating and policy making of moving targets. It will also be an education in jurisdiction, privacy, surveillance, and copyright as it relates to the Internet. The perspective will be from US law and jurisprudence, although there will be periodic forays into international issues. Topics covered will include cyberlaw and cybergovernance, the Digital Revolution and its impact on First, Fourth, and Fifth Amendment issues, copyright in the Digital Age, and the Computer Fraud and Abuse Act.

Susan Landau
TR 3:00-4:15
Halligan Hall 111B
CS 201-01
Cyber for Future Policymakers

Relevance of computer technologies to policy development. Internet architecture and basic networking, the Web, cloud architectures, cryptography, security and privacy, AI and machine learning, and open-source systems. Developing technologies, including quantum computing and post-quantum cryptography. A recitation and graduate-level assignments are required. Four credit hours. Prerequisites: Graduate standing in a discipline other than Computer Science, Data Science, Bioinformatics, Cognitive Science, or Human-Robot Interaction.

Prerequisite: Recommendations: COMP 10 or COMP 11.
David Lillethun
MWF 10:30-11:45
Joyce Cummings Center 280
CS 202-01
How Systems Work

Graduate version of COMP13. How computing systems work: bits, bytes, the representation of information, the CPU, assembly language, programming languages. Networking: including peering, packets, and the Internet. Algorithms and the fundamental limitations of computing. Prerequisites: Graduate standing in a discipline other than Computer Science, Data Science, Bioinformatics, Cognitive Science, or Human-Robot Interaction.

Prerequisite: Recommendation: COMP 10 or COMP 11.
Mark Sheldon
TRF 12:00-1:15
Barnum/Dana Hall 104
CS 204-01
Programming for Data Science

Algorithms for data manipulation, cleaning, and preparation. Design of data manipulation programs. Coding standards and practices. Use and creation of software libraries. Techniques for improving program performance. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis. Co-located with CS 30. Students enrolled in CS 204 are expected to meet requirements for CS 30, along with an additional term project.

Prerequisite: Recommendations: a course in data structures that is roughly equivalent to CS 15, and a course in linear algebra roughly equivalent to Math 70.
Alva Couch
MWF 10:30-11:20
Joyce Cummings Center 160
DS 97-01
Senior Capstone Project in Data Science I

Application of data science and analytic principles to the solution of a real-world problem in a group setting. Requirements analysis, review of available data sources, and proposal of a solution strategy to the problem.

Prerequisite: Senior standing
Alva Couch
TR 1:30-2:45
Online (synchronous)
DS 143-01
Data Science for Sustainability

Crosslisted as ME 193. This course explores emerging topics in data science and statistical learning with applications to the three pillars of sustainability (environmental, economic, and social). Students learn to build, estimate, and interpret models that describe phenomena in the broad area of energy and environmental decision-making with an emphasis on social justice. Students leave the course as both critical consumers and responsible producers of data-driven analysis. The objectives of this class include i) learning a suite of data-driven modeling and prediction tools, ii) building the programming and computing expertise to use those tools, and iii) developing the ability to formulate an analysis to answer sustainability questions of interest to industry and/or government partners.

Prerequisite: This course uses Python. Prior experience with statistics and programming is required.
Deborah Sunter
W 6:00p-9:00p
Anderson Hall 208
DS 153-01
Surveillance

What does it mean to do data science in a society filled with competing economic, social, and political interests? In this course, we will draw from historical perspectives on present-day issues in computer science to develop a social and political understanding of what the problem is, how it came to be, and what we can do about it. Our topic of focus will be surveillance, a problem that intersects economics through capitalism, race through histories of the policing of Black and Brown people, and power through systems of control. Throughout the three arcs comprising the class – (1) defining surveillance and learning its history, (2) developing an ethical inquiry and critique of surveillance technology, and (3) applying this practice to present day related problems – we will build “muscles” of analysis and practice that will build a foundation for budding data scientists to navigate a social and political world.

Desen Ozkan, Nick Rabb
MW 4:30-5:45p
Joyce Cummings Center 170
DS 154-01
Statistical Bioinformatics

Students will learn to estimate probabilities of events through simulation; perform exploratory probabilistic data analysis to identify outliers, artifacts, and patterns; formulate and assess hypotheses about heterogeneous high dimensional data; appropriately visualize data to assess quality and support interpretation; present statistical data analyses clearly and contextually to specific audiences. These aims will be achieved through homework assignments, in class exercises and discussions, readings, and a course project. There will be weekly assignments throughout the term, alternating between problem sets in R and structured parts of the project.

Donna Slonim
MW 4:30-5:45p
Room To Be Announced
EN 1-04
The Craft of Computer Science

While it might be obvious why we need research in biology or history, Computer Science research is necessary to reinvent the field and to drive discoveries across many disciplines. This course will teach you the foundations of research. Students will work with a faculty mentor and a student group on a research project. Research topics include machine learning, computer security, quantum computing, human-robotics interaction, computational biology, computational geometry, and others. The course will cover topics including identifying and formulating research problems, reading and evaluating research papers, literature searching, self-guided learning, designing research studies, and data analysis. Students will practice working in a team, goal setting, activity logging, and communicating with others. This is a non-coding class. No prior coding or CS experience is required. Student groups are expected to develop a research proposal by the end of the semester and to be well-prepared to participate in future Computer Science research experiences.

Soha Hassoun
MW 3:00-4:15
Joyce Cummings Center 180
EN 1-08
Simple Robotics

Introduction to robot construction, programming, computer vision, event-based programming, artificial intelligence, and elementary controls. Basic principles of robotics for students with minimal or no prior programming/building background. In-class competition-based laboratories and hands-on group projects using the LEGO MINDSTORMS platform.

Ethan Danahy
MW 10:30-11:45
Bromfield-Pearson 005