| CS 4-01 |
Teaching Computer ScienceThis 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. |
|
| CS 5-01 |
Preparing for Career SuccessThis course is focused on helping Computer Science students prepare for finding roles in the technology industry. It covers topics such as strategic thinking about opportunities, skills assessment, marketing your skills, resume and marketing materials preparation, interview and practice, improving presentation skills, and career networking. Most class sessions will be virtual, with some class meetings in person. Prerequisite: Students interested in registering for this class should fill out the form emailed to CS and DS students. |
T 4:30-6:30p Eaton Hall 201 |
| CS 10-01 |
Computer Science for AllComputers 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.
|
MW 1:30-2:45 Room To Be Announced |
| CS 11-M1 |
Introduction to Computer ScienceThe 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. |
T 5:30p-7:00p Online (synchronous) |
| CS 11-01 |
Introduction to Computer ScienceThe 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. |
TR 10:30-11:45 Room To Be Announced |
| CS 11-02 |
Introduction to Computer ScienceThe 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. |
TR 12:00-1:15 Room To Be Announced |
| CS 14-01 |
Emerging Scholars in Computer ScienceWeekly, 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. |
|
| CS 15-M1 |
Data StructuresA 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. |
R 5:30p-7:00p Online (synchronous) |
| CS 15-01 |
Data StructuresA 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. |
MW 10:30-11:45 Room To Be Announced |
| CS 15-02 |
Data StructuresA 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. |
MW 3:00-4:15 Room To Be Announced |
| CS 20-01 |
Web ProgrammingAn 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. |
TR 12:00-1:15 Room To Be Announced |
| CS 21-01 |
Concurrent ProgrammingWhen we learn to program, we specify problem solutions as a single sequence of computations in a fixed, determined order. But the world isn’t like that. Deer run into the woods, people talk on their phones, it rains. Nothing forces these things to happen one at a time, in a fixed order. They happen concurrently. We want to write concurrent programs, because we want to model the real world, because our computer systems actually have concurrent activities, and also to improve the performance or usability of our programs. The ubiquity of distributed applications and modern, multicore processors makes concurrent programming an essential skill. This course explores different models of concurrent programming: students will gain competence in conventional shared-memory threads programming, and at least one natively concurrent programming model (actors or CSP). Time permitting, we may look at other models. We’ll look at classic problems (like deadlock) and synchronization mechanisms (semaphores, locks, barriers). Students will complete a substantial team programming project using these tools and techniques, and they will present their work to the class. Prerequisite: CS 15, or graduate/postbac standing |
TR 4:30-5:45p Room To Be Announced |
| CS 23-01 |
Game DesignPrinciples, 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. |
T 6:00p-9:00p Room To Be Announced |
| CS 27-01 |
How Systems FailFailure of computer systems within the larger context of complex systems, including the power grid and aviation. Failures of algorithms and protocols, engineering and implementation, systems and applications, people and culture. Attacks, attack recovery, security, privacy, and attribution. Case studies of failures and attacks, including distributed denial of service, Meltdown, Spectre, and spear-phishing attacks. Prerequisite: COMP 13 or consent of instructor. |
TR 10:30-11:45 Room To Be Announced |
| CS 28-01 |
Cyber Security and Cyber WarfareInterdisciplinary analysis of cybersecurity in the United States and other countries, intended to introduce engineering students to policymaking and intelligence aspects of cybersecurity and liberal arts students to the technical constraints of computer networks and software. Hands-on activities including packet analysis, exploiting a vulnerable system, password cracking, social engineering, reconnaissance, and malware analysis. Examination of state and non-state actors engaged in cyber-espionage, counterintelligence, deterrence, and offensive cyber operations. Guest speakers from private sector, civil liberties groups, and intelligence community. Prerequisite: PS 61: Introduction to International Relations (for PS and IR majors) or COMP 15: Data Structures (for CS majors in A&S or SOE) |
TR 1:30-2:45 Room To Be Announced |
| CS 30-M1 |
Programming for Data ScienceFundamentals 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. |
W 6:00p-7:30p Online (synchronous) |
| CS 40-01 |
Machine Structure & Assembly-Language ProgrammingIn 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.
|
TR 1:30-2:45 Room To Be Announced |
| 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. |
T 7:00p-8:30p Online (synchronous) |
| CS 61-01 |
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. |
MWF 9:30-10:20 Room To Be Announced |
| 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. |
MWF 10:30-11:20 Room To Be Announced |
| CS 93-01 |
Directed StudyGuided study of an approved topic. Credit as arranged. Prerequisite: Consent. |
|
| CS 98-01 |
Senior Capstone Project IIImplementation and testing of the project designed in CS 97. Implementation tools, strategies, and platforms. Testing and debugging methodologies. Maintenance and release management. Legal, ethical, and social impacts of computing. Prerequisite: CS 97 |
F 12:00-2:45 Room To Be Announced |
| CS 99-01 |
Internship Computer SciencePrerequisite: Consent. |
|
| CS 105-01 |
Programming LanguagesPrinciples 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). |
MW 3:00-4:15 Room To Be Announced |
| CS 111-M1 |
Operating Systems(Crosslisted as EE 128). Fundamental issues in operating system design. Concurrent processes: synchronization, sharing, deadlock, scheduling. Relevant hardware properties of uniprocessor and multiprocessor computer systems. Prerequisite: Recommendations: COMP 15 and either CS 40 OR EE 14. |
T 7:00p-8:30p Online (synchronous) |
| CS 111-01 |
Operating Systems(Crosslisted as EE 128). Fundamental issues in operating system design. Concurrent processes: synchronization, sharing, deadlock, scheduling. Relevant hardware properties of uniprocessor and multiprocessor computer systems. Prerequisite: Recommendations: COMP 15 and either CS 40 OR EE 14. |
TR 4:30-5:45p Joyce Cummings Center 170 |
| CS 114-01 |
Network SecurityVulnerabilities, attacks, and mitigations at all layers of the network stack. Public and private key cryptography, confidentiality and authentication protocols, botnets, firewalls, intrusion detection systems, and communication privacy and anonymity. Prerequisite: Prerequisites: Computer Science 15 or graduate standing. Recommendations: Computer Science 40. |
TR 12:00-1:15 Room To Be Announced |
| CS 115-M1 |
Database SystemsFundamental 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. |
T 7:00p-8:30p Online (synchronous) |
| CS 115-01 |
Database SystemsFundamental 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. |
M 7:00p-8:30p Room To Be Announced |
| CS 116-M1 |
Introduction to SecurityA 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. |
W 5:30p-7:00p Online (synchronous) |
| CS 116-01 |
Introduction to SecurityA 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. |
TR 4:30-5:45p Room To Be Announced |
| CS 119-M1 |
Big Data "Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.
|
M 5:30p-7:00p Online (synchronous) |
| CS 119-01 |
Big Data "Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.
|
MW 10:30-11:45 Room To Be Announced |
| CS 120-M1 |
Web Programming and EngineeringWeb 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. |
T 5:30p-7:00p Online (synchronous) |
| CS 121-M1 |
Software EngineeringSoftware 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. |
W 7:30p-9:00p Online (synchronous) |
| CS 122-01 |
Parallel Computing(Cross-listed w/ EE 155) Programming modern parallel computer architectures, especially GPUs and multi-core CPUs. Rationale for modern multi-core CPUs. Challenges of multi-threaded programming. High-performance software taking advantage of hardware caches, cache coherency, memory systems and parallel computation. Prerequisite: Recommendations: EE 126 or COMP 40. |
MW 1:30-2:45 Room To Be Announced |
| CS 125-01 |
Numerical AnalysisAnalysis of algorithms involving computation with real numbers. Interpolation, methods for solving linear and nonlinear systems of equations, numerical integration, methods for ordinary differential equations. Prerequisite: Recommendations: MATH 51 and programming ability in a language such as C, C++, Fortran, Pascal, or Matlab. |
MW 1:30-2:45 Joyce Cummings Center 265 |
| CS 131-M1 |
Artificial IntelligenceHistory, 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. |
M 7:30p-9:00p Online (synchronous) |
| CS 131-01 |
Artificial IntelligenceHistory, 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. |
MW 6:00p-7:15p Room To Be Announced |
| CS 132-01 |
Computer VisionIntroduction to low and intermediate levels of classic and modern Computer Vision. How to design algorithms that process visual scenes to automatically extract information. Fundamental principles and important applications of computer vision, including image formation, processing, detection and matching features, image segmentation, and multiple views. Basics of machine learning and deep learning for computer vision. Prerequisite: Recommendations: CS 160 and Math 165 |
MW 4:30-5:45p Room To Be Announced |
| CS 135-M1 |
Introduction to Machine LearningAn 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). |
F 5:30p-7:00p Online (synchronous) |
| CS 135-01 |
Introduction to Machine LearningAn 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). |
TR 12:00-1:15 Room To Be Announced |
| 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)
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. |
R 7:00p-8:30p Online (synchronous) |
| CS 138-01 |
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)
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. |
MW 3:00-4:15 Room To Be Announced |
| CS 142-01 |
Network ScienceMathematical 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 |
MW 4:30-5:45p Room To Be Announced |
| CS 144-01 |
Iterative Methods in Machine Learning(Cross-listed as EE 143) Design and analysis of modern machine learning methods with emphasis on convex and nonconvex problems, and centralized, federated, and distributed computational architectures. Topics include convergence, complexities, contractions, fixed point theorems, and perturbation techniques; gradient descent and stochastic gradient descent in addition to accelerated methods including Polyak and Nesterov momentum, minibatching, and variance reduction. State of the practice methods will be covered including Adagrad, Autogard, Adam, sgdm with applications in image classification and document clustering. Prerequisite: MATH 70 and CS 11 |
T 1:30-4:00 Room To Be Announced |
| CS 150-01 |
HCI for DisabilityThis is a graduate-level course for research-oriented students (including seniors and MS students who are considering research careers). Through readings, discussion, and a substantial course project we will explore the variety of ways that the human-computer interaction (HCI) research community has addressed the needs of disabled users, both from the perspective of assistive technology, which develops tech to support disabled people in their daily lives, and from the perspective of accessibility, which considers how disabled people can access computers and computing technologies. We will read and discuss academic papers from the HCI community (especially papers from ASSETS and CHI) in parallel with personal narratives from disabled people themselves and readings from the disability studies literature. By the end of the course, students will:
|
TR 9:00-10:15 Room To Be Announced |
| CS 150-02 |
Algorithmic Music Composition |
MW 10:30-11:45 Room To Be Announced |
| CS 150-04 |
Generative AI for Social Impact |
MW 10:30-11:45 Room To Be Announced |
| CS 150-05 |
Multi-Agent Systems |
TF 12:00-1:15 Room To Be Announced |
| CS 150-06 |
MITRE eCTFMITRE's Capture the Flag challenge |
|
| CS 150-07 |
Entrepreneurship for Computer Scientists(Cross listed with ELS 194-02) 150 ECS is an introductory entrepreneurship course for Computer Science students. The course provides an overview of entrepreneurship, develops an entrepreneurial perspective, and provides a framework for learning the fundamentals of the essential elements of entrepreneurial ventures, specifically directed toward software-related industries and products. Students learn how to develop their technical ideas into potential business opportunities, and to explore their likelihood of becoming viable businesses. They learn how to do market research, to develop go-to-market strategies, value propositions and to differentiate their products or services from actual or potential competitors. The course consists of a balance of lectures, projects, case studies and interaction with entrepreneurs and computer scientists who participate in entrepreneurial organizations. |
T 5:15p-8:15p Room To Be Announced |
| CS 150-08 |
Topics in Computational ComplexityIn this course we will study the computational complexity in concrete computational models. The main focus will be on various techniques to prove lower and upper bounds on the computational complexity in these models. We will mostly consider decision trees, communication complexity and Boolean circuit complexity. We will also briefly discuss proof complexity and algebraic computation models. Prerequisite: CS 61 and a course on probability (MATH 165 or EE 104) are required to take this class. MATH 70 and CS 170 are recommended. CS 160 would be helpful. |
TR 12:00-1:15 Room To Be Announced |
| CS 151-01 |
Addressing Cyber Threats, VulnerabilitiesComputer and information security can be understood as a discipline dealing with risk to computer and information systems and the data they process. This class will cover the analysis, assessment, understanding and management of risk and its components (threat, threat actor, vulnerability, impact, likelihood) from a technical perspective as well as a managerial one: • Understanding the concepts of threat, threat actor, vulnerability, likelihood and impact in the context of risk. • Key technical and non-technical threats, vulnerabilities and risks: • Hardware vulnerabilities (e.g. Spectre & Meltdown) and mitigations • Software vulnerabilities (OWASP Top 10) and mitigations • Network and Architecture vulnerabilities and mitigations • Threats, vulnerabilities, and risks related to physical factors, human factors, and human-computer interaction • The real world: where resources are limited and all the above factors interact • Risk in an organizational context • Quantitative and qualitative methodologies (e.g. FAIR, threat modeling) to collect data on, and understand, risk and its components. • How to decide what (and how) to fix or address vulnerabilities, threats, and risks • How to manage threats, vulnerabilities, and risks. How to deal with risks, e.g. how to mitigate technical issues. Prerequisite: CS 201, CS 203, CS 15, or CS graduate standing |
TR 10:30-11:45 Room To Be Announced |
| CS 151-02 |
Cybersecurity ClinicStudents are placed in interdisciplinary teams to work on a cybersecurity project with non-profit organizations in the Medford, Somerville, Cambridge, and Greater Boston communities. Prerequisite: Department consent required. |
M 5:30p-7:00p Joyce Cummings Center 402 |
| CS 151-03 |
Privacy, Security, and DataOrganizations 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. |
TR 4:30-5:45p Room To Be Announced |
| CS 151-04 |
Anonymous Communications TheoryWe know how to communicate a message so that only the recipient can read the message. (We can just encrypt the message.) But how can we communicate over the Internet without anyone learning *who* we are communicating with? Anonymous channels can help the Iranian protester who wishes to inform the world what is happening in the streets of Tehran by tweeting videos and the netizen in Moscow who wants to read the BBC news (currently banned in Russia). We could use Tor (i.e., “The onion router,” inspired by Chaum's onion routing idea) or VPN, but both are easily blocked, and neither guarantees privacy from the adversary with full view of the network traffic (e.g., a standard model for a resourceful ISP- or AS-level adversary). In this course, we present cryptography-style definitions of anonymity and study state-of-the-art techniques for achieving provable anonymity. Prerequisite: Prerequisites: Math 21 and CS 170 or graduate standing. |
TR 1:30-2:45 Room To Be Announced |
| CS 151-05 |
Quantum Computer ScienceThe universe at the sub-atomic scale is governed by quantum mechanical laws, which fundamentally differ from classical laws of motion. What is the nature of computation in such scales? Can we use quantum mechanical particles to perform computations? These are the core questions of the field of quantum computing. In this course, we present an elementary-level introduction to the computer science foundations of quantum computing. Topics include Hilbert spaces, quantum entanglement, quantum measurements, quantum circuits, quantum protocols and algorithms, Hamiltonians and the ground state problem, and quantum error-correcting codes. Students from different areas of engineering and sciences, such as computer science, physics, electrical engineering, mathematics, or chemistry, who wish to learn about the computer science foundations of quantum computers can benefit from this class. The main focus of this course is on the theoretical foundations of quantum computing; mathematical enthusiasm and knowledge in areas such as linear algebra, algorithms, discrete mathematics, and calculus are required. Prerequisite: Math 34 and Math 70 and one of (CS 61 or Math 61 or Math 65) |
MW 1:30-2:45 Room To Be Announced |
| CS 151-06 |
Debugging Cloud ComputingCloud computing, which is the practice of renting software and hardware services from providers who run large-scale data centers, has become critical to modern society. We rely on software running within cloud data centers when shopping (e.g., at Amazon), when conducting financial transactions (e.g., at an online broker), when collaborating at work (e.g., using Google Docs), and even when playing games (e.g., Fortnite). Failures or performance problems within these data centers or the software running on them can have widespread effects and be devastating. In this course, we will examine failures in cloud environments and discuss important research on tools that use systems knowledge, machine learning, and statistics to help engineers diagnose them. To provide students with necessary background, we will start with a brief introduction to cloud computing and the software systems that make cloud computing possible. The course will involve reading research papers, homework assignments, and coding-based projects. It is recommended for graduate students and advanced upper-level undergraduates. Prerequisite: CS 15 and CS 40 or graduate standing required; CS 111 recommended. |
MW 4:30-5:45p Room To Be Announced |
| CS 151-07 |
Sustainable ComputingData centers require enormous amounts of electricity to operate and cool, so understanding sustainable computing practices for improving energy efficiency can significantly reduce environmental impact. This course delves into cutting-edge research in system-level power, energy, and thermal management. We will explore techniques at the operating system, network, and application levels to optimize power consumption and thermal efficiency while maintaining performance and reliability. Prerequisite: CS 40 or Graduate Standing |
TR 9:00-10:15 Room To Be Announced |
| CS 160-M1 |
AlgorithmsIntroduction 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. |
W 7:00p-9:00p Online (synchronous) |
| CS 160-01 |
AlgorithmsIntroduction 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. |
MW 9:00-10:15 Room To Be Announced |
| CS 167-01 |
Computational BiologyComputational challenges in molecular biology, including sequence alignment and comparison, genomic annotation, micro array data analysis, and proteomics. Underlying computational techniques such as dynamic programming, hidden Markov models, statistical analyses, and search and optimization procedures. Prerequisites: Comp15 and at least one CS course numbered 100 or higher. Prerequisite: Comp15 and at least one CS course numbered 100 or higher. |
TR 10:30-11:45 Room To Be Announced |
| CS 170-M1 |
Computation TheoryModels 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. |
R 5:30p-7:00p Online (synchronous) |
| CS 170-01 |
Computation TheoryModels 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. |
TR 1:30-2:45 Room To Be Announced |
| CS 171-01 |
Human-Computer InteractionIntroduction to human-computer interaction, or how computers communicate with people. Methodology for designing and testing user interfaces, interaction styles (command line, menus, graphical user interfaces, virtual reality), interaction techniques (including use of voice, gesture, eye movement), design guidelines, and user interface management software system. Students will design a small user interface, program a prototype, and test the result for usability. Prerequisite: COMP 15 |
MW 1:30-2:45 Room To Be Announced |
| CS 178-01 |
Visual AnalyticsVisual analytics is the science of combining interactive visual interfaces with automatic data science, machine learning, and AI algorithms to support analytical reasoning. Modern visual analytics tools help users synthesize information and derive insight from large, dynamic, ambiguous, and often conflicting data, and to communicate their findings effectively for decision-making. This course will serve as an introduction to the topic of visual analytics that will include lectures on both theoretical foundations and application methodologies. The goals of this course are for students to: (1) learn about using visual analytics tools (e.g. Tableau), (2) become proficient in generating visualizations within popular data science tools (e.g. R, Python and scikit-learn), (3) develop their own visual analytics tools (in Javascript and D3), and (4) design evaluation methods to assess the effectiveness of these tools. |
TR 1:30-2:45 Room To Be Announced |
| CS 183-01 |
Privacy in the Digital AgeThis course will provide an introduction to the legal and regulatory protections for personal data and the evolving nature of digital surveillance and online privacy. The class will cover public and private sector threats to privacy and look at how different countries have implemented both privacy protections and surveillance regimes that affect individual Internet users and govern the collection of their personal data. Topics to be covered include encryption policy, law enforcement access to data, intelligence agency access to data, the European General Data Protection Regulation, the Electronic Communications Privacy Act, domestic and international lawful interception of data, protections for geolocation data and other forms of metadata, and facial recognition technology. This course will primarily focus on law and policy measures related to privacy but it will also cover some basic technical material related to cryptography and networking that is relevant to understanding the impacts of different policies. |
MTWRF 12:00a-12:00a Room To Be Announced |
| CS 185-01 |
Computing for Developing RegionsAn interdisciplinary approach to the role of computing technologies in developing regions. Low-cost communication infrastructure; socially relevant technologies for education, healthcare, and governance; and the use of technology by underserved communities and populations in developing regions. Problems and existing solutions covered through case studies. Group projects on designing, implementing, and evaluating a solution. Recommendations: CS10 or CS11 or some background in computer science and/or technology. Prerequisite: Completion of COMP 15 or graduate standing |
R 6:30p-9:00p Room To Be Announced |
| CS 191-01 |
ResearchResearch on a topic in Computer Science or a related discipline, culminating in a final paper describing accomplishments, with the goal of advancing the state of the art. Topic is proposed by a faculty sponsor in Computer Science. Faculty consent required. Students sign up for a section that corresponds to a faculty member. Prerequisite: Consent |
|
| CS 193-01 |
Directed StudyGuided study of an approved topic. Credit as arranged. Prerequisite: Consent. |
|
| CS 193-02 |
Geometric Folding AlgorithmsTBD Prerequisite: Consent of department |
|
| CS 193-03 |
MS CoreCompTBD Prerequisite: Consent of department |
|
| CS 197-01 |
Honors ThesisHonors Thesis Computer Science. |
|
| CS 203-01 |
How Systems FailFailure of computer systems within the larger context of complex systems, including the power grid and aviation. Failures of algorithms and protocols, engineering and implementation, systems and applications, people and culture. Attacks, attack recovery, security, privacy, and attribution. Case studies of failures and attacks, including distributed denial of service, Meltdown, Spectre, and spear-phishing attacks. A recitation and graduate-level assignments are required. Four credit hours. Prerequisite: Graduate standing in a discipline other than Computer Science, Data Science, Bioinformatics, Cognitive Science, or Human-Robot Interaction. |
TR 10:30-11:45 Room To Be Announced |
| CS 239-01 |
Ethics for AI, Robotics, and Human Robot InteractionTechnical challenges of endowing autonomous artificial agents with normative principles that will allow them to operate successfully in human societies. Algorithmic approaches in artificial agents (rule-based, utility-based, behavior-based, etc.) and their links to philosophical foundations of the main ethical theories (virtue ethics, deontology, utilitarianism). Conceptual and mathematical analysis of assumptions underlying each algorithmic approach as well as implementation in agent-based simulations. Functional and performance tradeoffs of the algorithms and their implications for autonomous robots and AI systems. Mathematical and computational challenges of the different proposals for "implicit" and "explicit" ethical agents, including inverse reinforcement learning, verification-based approaches, and model checking. Prerequisite: CS MS or PhD or DS MS or HRI MS |
MW 9:00-10:15 Room To Be Announced |
| CS 260-1 |
Advanced AlgorithmsIf you loved your algorithms class and can't wait for more, this is the class for you. In this pleasant and fun class, we will look at some more modern algorithms, some beautiful algorithms gems, and some areas of current research in algorithms. Topics will include using randomness in the design and analysis of algorithms, approximation algorithms, and online algorithms. Prerequisite: Comp 160 or permission of the instructor. |
MW 3:00-4:15 Room To Be Announced |
| CS 288-M1 |
Master of Science Capstone Project IPart one of a two-course, hands-on, and project-based culmination to the Master of Science in Computer Science Online program. Application of principles, strategies, methods, and tools for requirements analysis and design of a programming project, including project planning, project management, and proof of concept prototyping. Formulation of a project plan, including estimation of project completion requirements and timeline. To be taken in the second-to-last term of the Master of Science in Computer Science Online degree. Not available to students outside that program. Prerequisite: CS 180 or 121, and enrollment in the Master of Science in Computer Science Online program. |
R 6:00p-7:00p Online (synchronous) |
| CS 289-M1 |
Master of Science Capstone Project IIPart two of a two-course, hands-on, project-based culmination experience for the Master of Science in Computer Science Online program. Implementation of the project defined in part one, including use of principles, tools, and strategies for implementation, debugging, testing, documentation, maintenance, and release management. Presentation of final project results and documentation. To be taken in the last term of the Master of Science in Computer Science Online degree. Not available to students outside that program. Prerequisite: CS 288, and enrollment in the Master of Science in Computer Science Online program. |
R 7:00p-8:00p Online (synchronous) |
| CS 291-01 |
Seminar in Computer ScienceA weekly seminar with guest speakers discussing research challenges and recent advances in Computer Science. Pass/fail only. To receive credit, students must attend and provide feedback for at least 50% of the seminars. Prerequisite: Ph.D. standing in Computer Science |
seminar: R 3:00-4:15 Joyce Cummings Center 270 |
| CS 291-02 |
Seminar in Computer ScienceA weekly seminar with guest speakers discussing research challenges and recent advances in Computer Science. Pass/fail only. To receive credit, students must attend and provide feedback for at least 50% of the seminars. Prerequisite: Ph.D. standing in Computer Science |
seminar: F 1:30-2:30 Robinson Hall 253 |
| CS 293-01 |
Graduate Special Topics / Master's ProjectGuided individual study of an approved topic suitable for a master's design project. Credit to be arranged. Members of the Department. Prerequisite: Permission of the instructor. |
|
| CS 296-01 |
Master's ThesisGuided research on a topic which has been approved as a suitable subject for a master's thesis. Credit as arranged. Supervision and advising by faculty of the Department. Please see the Registrar for appropriate section numbers. |
|
| CS 297-01 |
Graduate ResearchGuided research on a topic suitable for a doctoral dissertation. |
|
| CS 299-01 |
Internship in Computer ScienceStudy of approved topics in Computer Science in concert with an internship in computing or a related field outside the University. Prerequisite: Permission of instructor |
|
| CS 401-PT |
Master's Continuation Part-Time |
|
| CS 402-FT |
Master's Continuation Full-Time |
|
| CS 404-01 |
Graduate Engineering Co-op |
|
| CS 405-TA |
Graduate Teaching Assistant |
|
| CS 406-RA |
Graduate Research Assistant |
|
| CS 501-PT |
Doctoral Continuation Part-Time |
|
| CS 502-FT |
Doctoral Continuation Full-Time |
|
| DS 93-01 |
Directed StudyDirected study, as approved by professor and department. |
|
| DS 98-01 |
Senior Capstone Project in Data Science IIA continuation of COMP 87. Analysis of the problem proposed in COMP 87 is completed and a final paper summarizes data gathered, analytic results, lessons learned, and opportunities for future study. Prerequisite: COMP 87 |
TR 1:30-2:45 Online (synchronous) |
| DS 143-01 |
Data Science for SustainabilityCrosslisted 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. |
T 1:20-4:20 Bromfield-Pearson 005 |
| DS 143-02 |
Data Science for SustainabilityCrosslisted 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. |
M 6:00p-9:00p Anderson Hall 108 |
| DS 153-02 |
Computer VisionThis course is an introduction to low and intermediate level Computer Vision. We will learn how to design algorithms that process visual scenes to automatically extract information. The course will cover fundamental principles and important applications of computer vision, including image formation, processing, detection and matching features, image segmentation, and multiple views. |
MW 6:00p-7:15p Eaton Hall 201 |
| DS 153-03 |
Generative AI for Social ImpactPrerequisite: Completion of CS 15 or graduate standing. |
MW 10:30-11:45 Collaborative Learning and Innovation Complex 401 |
| DS 153-04 |
Multi-Agent SystemsPrerequisite: Prior completion of CS 131 |
TF 12:00-1:15 Tisch Library 316 |
| DS 193-01 |
Directed StudyDirected study, as approved by professor and department. |
|
| DS 288-M1 |
Master of Science Capstone Project IPart one of a two-course, hands-on, and project-based culmination to the Master of Science in Data Science Online program. Application of principles, strategies, methods, and tools of Data Science to analyze data and justify real-world decisions based upon those data. The first term includes creation of a proof of concept prototype of a chosen data analysis project. To be taken in the second-to-last term of the Master of Science in Data Science Online degree. |
T 7:00p-9:00p Online (synchronous) |
| DS 289-M1 |
Master of Science Capstone Project IIPart two of a two-course, hands-on, and project-based culmination to the Master of Science in Data Science Online program. A continuation of the work started in DS 288, culminating in a complete analysis of the problem chosen in DS 288 as well as a final paper describing the analytic process and decisions and/or recommendations indicated by the data. To be taken in the last term of the Master of Science in Data Science Online degree. |
T 8:00p-9:00p Online (synchronous) |
| DS 293-01 |
Masters Project in Data ScienceGuided individual study of an approved topic suitable for a master's project in Data Science. |
|
| DS 299-01 |
Internship In Data ScienceStudy of approved topics in Computer Science in concert with an internship in computing or a related field outside the University. Prerequisite: Permission of instructor |
|
| DS 404-01 |
Graduate Engineering Co-op |
|
| ES 2-01 |
Introduction to Computing in EngineeringAn introduction to engineering problem-solving with the aid of computational software. Scientific computing concepts will be introduced including number representation, arrays, structured programming techniques, and good coding practices. Basic numerical and data analysis methods will be introduced including numerical differentiation and integration, matrix operations, descriptive statistics, curve fitting, and optimization. Examples drawn from a variety of engineering disciplines will give students extensive practice in coding solutions and applying them to data. Prerequisite: MATH 32 recommended |
MWF 10:30-11:45 Anderson Hall 112 |
fall 2024