Harvard SEAS logo

Tags for computer science courses

The following is the list of CS courses that satisfy the various tags. This list is continuously updated, but once a plan of study has been approved, it will remain valid even if the course no longer satisfies a certain tag. The SEAS 4 year course plan contains the most up-to-date plan for courses to be offered in the near future.

Course number Title Tags Notes
AC215 Topics in Applied Computation: Advanced Practical Data Science, MLOps corecs, advancedcs
AC221 Critical Thinking in Data Science corecs, computationandtheworld
AC295 / CS2871r (Fall 2021 only) Deep Learning for NLP corecs, computationandtheworld, advancedcs
AM21A Mathematical Methods in the Sciences
AM22A Solving and Optimizing linearalgebra
AM22B Integrating and Approximating
AM106 Applied Algebra corecs
AM107 Graph Theory and Combinatorics corecs, formalreasoning, discretemath, advancedcs
AM115 Mathematical Modeling corecs, computationandtheworld
AM120 Applicable Linear Algebra corecs
AM121 Introduction to Optimization: Models and Methods corecs
AM158 / ES158 Introduction to Optimal Control and Estimation corecs
AM207 Stochastic Methods for Data Analysis, Inference and Optimization corecs
AM220 Geometric Methods for Machine Learning corecs, formalreasoning, ai, advancedcs, secondary
CS1 Great Ideas in Computer Science corecs
CS10 / STAT10 Elements of Data Science corecs No longer offered
CS20 Discrete Mathematics for Computer Science corecs, formalreasoning, discretemath, secondary
CS32 Computational Thinking and Problem Solving corecs, programming1, secondary Mutually exclusive with CS50 and CSCI S-111
CS37 / ECON1071 Incentives in the Wild: from Tanking in Sports to Mining Cryptocurrencies corecs, computationandtheworld, secondary
CS50 Introduction to Computer Science corecs, programming1, secondary Mutually exclusive with CS32 and CSCI S-111
CS51 Abstraction and Design in Computation corecs, programming2, secondary
CS61 Systems Programming and Machine Organization corecs, programming2, systems, secondary
CS73 Code, Data, and Art corecs, secondary
CS79 Design of Useful and Usable Interactive Systems corecs, secondary
CS90NAR Applied Ethical and Governance Challenges in AI
CS90NBR Internet & Society: The Technologies and Politics of Control and CS
CS90NCR Law for Algorithms: A Research and Discussion Forum
CS90NDR Case Studies in Public and Private Policy Challenges of AI
CS91R Supervised Reading and Research corecs For MBB & Joint plans, counts as advancedcs
CS96 System Design Projects corecs, secondary
CS1050 (formerly CS105) Privacy and Technology corecs, advancedcs, secondary
CS1060 Software Engineering with Generative AI corecs, programming2, advancedcs, secondary
CS1070 / AC207 (formerly CS107) Systems Development for Computational Science corecs, programming1, advancedcs, secondary No longer offered
CS1090A / STAT109A / AC209A (formerly CS109A) Data Science 1: Introduction to Data Science corecs, programming1, computationandtheworld, advancedcs, secondary AKA STAT121A before 2022
CS1090B / STAT109B / AC209B (formerly CS109B) Data Science 2: Advanced Topics in Data Science corecs, programming1, computationandtheworld, advancedcs, secondary AKA STAT121B until 2022
CS1200 (formerly CS120) Introduction to Algorithms, Computability, and Complexity corecs, formalreasoning, complimitations, algorithms, advancedcs, secondary
CS1210 (formerly CS121) Introduction to Theoretical Computer Science corecs, formalreasoning, complimitations, advancedcs, secondary
CS1240 (formerly CS124) Data Structures and Algorithms corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary
CS1260 (formerly CS126) Fairness and Privacy: Perspectives of Law and Probability corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS1270 / CS2270 (formerly CS127) Cryptography corecs, formalreasoning, advancedcs, secondary
CS1280 / AM122 (formerly CS128) Convex Optimization and Applications in Machine Learning corecs, formalreasoning, advancedcs, secondary
CS1360 (formerly CS136) Economics and Computation corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS1410 (formerly CS141) Computing Hardware corecs, systems, advancedcs, secondary
CS1430 (formerly CS143) Computer Networks corecs, advancedcs, secondary
CS1450 (formerly CS145) Networking at Scale corecs, systems, advancedcs, secondary
CS1411 (formerly CS146) Computer Architecture corecs, systems, advancedcs, secondary
CS1480 (formerly CS148) Design of VLSI Circuits and Systems corecs, advancedcs, secondary
CS1520 (formerly CS152) Programming Languages corecs, formalreasoning, advancedcs, secondary
CS1530 (formerly CS153) Compilers corecs, programming2, systems, advancedcs, secondary
CS1610 (formerly CS161) Operating Systems corecs, programming2, systems, advancedcs, secondary
CS1650 (formerly CS165) Data Systems corecs, programming2, systems, advancedcs, secondary
CS1710 (formerly CS171) Visualization corecs, computationandtheworld, advancedcs, secondary
CS1750 (formerly CS175) Computer Graphics corecs, computationandtheworld, advancedcs, secondary
CS1780 (formerly CS178) Engineering Usable Interactive Systems corecs, programming2, computationandtheworld, advancedcs, secondary
CS179 Design of Useful and Usable Interactive Systems corecs, advancedcs, secondary 2022 and earlier
CS1810 (formerly CS181) Machine Learning corecs, computationandtheworld, ai, advancedcs, secondary
CS1820 (formerly CS182) Artificial Intelligence corecs, computationandtheworld, ai, advancedcs, secondary
CS1840 (formerly CS184) Reinforcement learning corecs, computationandtheworld, ai, advancedcs, secondary
CS1870 (formerly CS187) Introduction to Computational Linguistics and Natural-language Processing corecs, computationandtheworld, ai, advancedcs, secondary
CS1890 (formerly CS189) Autonomous Robot Systems corecs, advancedcs, secondary
CS1910 (formerly CS191) Classics of Computer Science corecs, advancedcs, secondary
CS1960 / EDU T217 (formerly CS196) Designing K–12 Computer Science Learning Experiences corecs, secondary
CS1970 (formerly CS197) AI Research Experiences corecs, computationandtheworld, ai, advancedcs, secondary
CS2050 (formerly CS205) Computing Foundations for Computational Science corecs, advancedcs, secondary
CS2080 (formerly CS208) Applied Privacy for Data Science corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS2210 (formerly CS221) Computational Complexity corecs, formalreasoning, complimitations, advancedcs, secondary
CS2241 (formerly CS222) Algorithms at the Ends of the Wire corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary
CS2242 (formerly CS223) Probabilistic Analysis and Algorithms corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary
(formerly CS224) Advanced Algorithms corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary
CS2243 Algorithms for Data Science corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary
CS2260 (formerly CS226R) Topics in Theory for Society: Fairness and Validity corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS2261 (formerly CS226R) Topics in Theory for Society: Algorithmic Fairness corecs, formalreasoning, complimitations, ai, advancedcs, secondary
CS2280 (formerly CS228) Computational Learning Theory corecs, formalreasoning, complimitations, ai, advancedcs, secondary
CS2281R (Fall 2024 only) Mathematical & Engineering Principles for Training Foundation Models corecs, computationandtheworld, advancedcs Unlike most classes numbered x2xx, this is not a theoretical CS class.
CS2281R (formerly CS229BR) (All but Fall 2024 only) Topics in Foundations of ML corecs, formalreasoning, advancedcs
CS229BR (Spring 2021 only) Advanced Topics in the Theory of Machine Learning corecs, computationandtheworld, advancedcs, secondary
CS229BR (Spring 2023 only) Advanced Topics in the Theory of Machine Learning corecs, formalreasoning, advancedcs, secondary
CS229CR (Spring 2023 only) High Dimensional Probability: Spectral Graph Theory in CS corecs, formalreasoning, advancedcs, secondary
CS229R (Spring 2023 only) Topics in Theoretical Computer Science: Biology and Complexity corecs, computationandtheworld, advancedcs, secondary
CS229R (Fall 2023 only) Essential Coding Theory corecs, formalreasoning, advancedcs, secondary
CS229R (Fall 2022 only) Topics in Theoretical Computer Science: Information Theory corecs, formalreasoning, advancedcs, secondary
CS2231 (formerly CS231) Quantum Computation and Quantum Complexity corecs, formalreasoning, advancedcs, secondary Mutually exclusive with QSE 210a
CS2340 (formerly CS234R) Topics on Computation in Networks and Crowds corecs, formalreasoning, advancedcs, secondary
CS2360r (formerly CS236R) Topics at the Interface between Computer Science and Economics corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS2370 (formerly CS237) Economic Analysis as a Frontier of Theoretical Computer Science corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS2380 (formerly CS238) Optimized Democracy corecs, formalreasoning, computationandtheworld, advancedcs, secondary
CS2420 (formerly CS242) Computing at Scale corecs, systems, advancedcs, secondary
CS2430 (formerly CS243) Advanced Computer Networks corecs, systems, advancedcs, secondary
CS2411 (formerly CS246) Advanced Computer Architecture corecs, systems, advancedcs, secondary
CS2470r (formerly CS247R) Advanced Topics in Computer Architecture corecs, systems, advancedcs, secondary
CS2490r (formerly CS249R) Tiny Machine Learning corecs, systems, computationandtheworld, advancedcs, secondary
CS2520r (formerly CS252R) Advanced Topics in Programming Languages corecs, advancedcs, secondary
CS2540 (formerly CS254) Formal Method for Computer Security corecs, formalreasoning, advancedcs, secondary
CS2600r (formerly CS260R) Projects and Close Readings in Software Systems corecs, advancedcs, secondary
CS2610 (formerly CS261) Research Topics in Operating Systems corecs, systems, advancedcs, secondary
CS2620 (formerly CS262) Introduction to Distributed Computing corecs, systems, advancedcs, secondary
CS2630 (formerly CS263) Systems Security corecs, systems, advancedcs, secondary
CS2650 (formerly CS265) Big Data Systems corecs, systems, advancedcs, secondary
CS2710 (formerly CS271) Topics in Data Visualization corecs, advancedcs, secondary
CS2760 (formerly CS276) Design, Technology, and Social Impact corecs, advancedcs, secondary
CS2780 Conceptualizing, Building, and Evaluating Usable Novel Interactive Systems corecs, advancedcs, secondary
CS2790r (formerly CS279R) Research Topics in Human-Computer Interaction corecs, advancedcs, secondary
CS2810 (formerly CS281) Advanced Machine Learning corecs, computationandtheworld, ai, advancedcs, secondary
CS2822r (formerly CS282R) Topics in Machine Learning corecs, computationandtheworld, ai, advancedcs, secondary
CS2821r (formerly CS282BR) Topics in Machine Learning: Interpretability and Explainability corecs, computationandtheworld, ai, advancedcs, secondary
CS2831 (formerly CS283) Computer Vision corecs, computationandtheworld, advancedcs, secondary
CS2860 (formerly CS286) Multi-Robot Systems: Control, Communication, and Security corecs, computationandtheworld, advancedcs, secondary
CS2871 (formerly CS287) corecs, advancedcs, secondary
CS2880 (formerly CS288) AI for Social Impact corecs, computationandtheworld, advancedcs, secondary
CS2890 (formerly CS289) Autonomous Robot Systems corecs, computationandtheworld, advancedcs, secondary
CS2901 (formerly CS290) PhD Grad Cohort Research Seminar
CS2990r (formerly CS299R) Special Topics in Computer Science
CS3330 (formerly CS333) Individual Risk
ECON 2070 A Computer Science Toolbox for Modern Economic Theory corecs, formalreasoning, computationandtheworld, advancedcs
ES50 Introduction to Electrical Engineering corecs Mutually exclusive with ES54
ES54 Electronics for Engineers corecs Mutually exclusive with ES50
ES143 Computer Vision corecs, computationandtheworld
ES150 Probability with Engineering Applications probability
ES170 Engineering Quantum Mechanics corecs
ES256 Informal Robotics corecs
MATHMA Introduction to Functions and Calculus I
MATHMB Introduction to Functions and Calculus II
MATH1A Introduction to Calculus
MATH1B Introduction to Calculus
MATH21A Multivariable Calculus
MATH21B Linear Algebra and Differential Equations linearalgebra
MATH22A Vector Calculus and Linear Algebra I linearalgebra
MATH23A Linear Algebra and Real Analysis I linearalgebra
MATH23B Linear Algebra and Real Analysis II linearalgebra
MATH23C Mathematics for Computation, Statistics, and Data Science discretemath
MATH25A Theoretical Linear Algebra and Real Analysis I linearalgebra
MATH25B Theoretical Linear Algebra and Real Analysis II
MATH55A Studies in Algebra and Group Theory linearalgebra
MATH55B Studies in Real and Complex analysis
MATH101 Sets, Groups and Topology corecs, formalreasoning, discretemath Class of 2026 and later: Mutually exclusive with CS20 and MATH152
MATH152 Discrete Mathematics corecs, formalreasoning, discretemath Mutually exclusive with CS20 and MATH101
MATH154 Probability Theory probability
Neuro140 / Neuro240 corecs
Neuro1401 Computational Cognitive Neuroscience: Building Models of the Brain corecs
PHY123b / ES153 Laboratory Electronics corecs, systems
PHY160 Introduction to Quantum Information corecs
PHY260b / QSE 210b Introduction to quantum information II
QSE 210a Quantum Information Science corecs, formalreasoning, advancedcs
STAT110 / STAT S-110 Introduction to Probability probability
STAT111 Introduction to Statistical Inference probability
STAT195 Statistical Machine Learning corecs, computationandtheworld
STAT210 Probability Theory and Statistical Inference I probability
STAT220 Bayesian Data Analysis probability
MIT 6.1040 / MIT 6.170 Software Studio corecs
MIT 6.1060 / MIT 6.172 Performance Engineering of Software Systems corecs, systems
MIT 6.4120 / MIT 6.804 / MIT 9.66 Computational Cognitive Science corecs
MIT 6.4550 / MIT 21M.385 / MIT 6.185 Interactive Music Systems corecs
MIT 6.5210 / MIT 6.854 Advanced Algorithms corecs, formalreasoning, algorithms, intermediatealgorithms
MIT 6.5310 / MIT 6.849 Computational Geometry corecs, formalreasoning
MIT 6.5410 / MIT 18.405 / MIT 6.841 Advanced Complexity Theory corecs, formalreasoning, complimitations
MIT 6.5610 / MIT 6.857 Computer and Network Security corecs
MIT 6.5620 / MIT 6.875 Cryptography and Cryptanalysis corecs, formalreasoning
MIT 6.5660 / MIT 6.858 Comp Systems Security corecs, systems
MIT 6.5940 TinyML and Efficient Deep Learning Computing corecs, computationandtheworld, ai
MIT 6.7320 / MIT 6.338j Parallel Computing and Scientific Machine Learning corecs
MIT 6.7900 / MIT 6.867 Machine Learning corecs, computationandtheworld, ai
MIT 6.7960 / MIT 6.S898 Deep Learning corecs, computationandtheworld, ai
MIT 6.8200 / MIT 6.484 Computational Sensorimotor Learning corecs, computationandtheworld, ai
MIT 6.8611 / MIT 6.8610 / MIT 6.806 Advanced Natural Language Processing corecs, computationandtheworld, ai Mutually exclusive with MIT 9.19. Also 6.864.
MIT 8.370 / MIT 18.435 / MIT 2.111 Quantum Computation corecs
MIT 9.19 Computational Psycholinguistics corecs, computationandtheworld Mutually exclusive with MIT 6.806/6.864
MIT 21M.387 / MIT 6.S197 Fundamentals of Music Processing corecs, computationandtheworld
AIT Deep learning (Study Abroad) corecs, computationandtheworld, ai, advancedcs
AIT Algorithms and Data Structures (Study Abroad) corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs

Tag Definitions

Core CS

Courses that count towards the Computer Science core requirements.

Programming 1 and 2

A Programming course must include significant software construction and good engineering practice (e.g., invariants, assertions, testing).

Formal Reasoning

A Formal Reasoning course should include significant formal reasoning about computer science as an integral part of the course material and student work. Such a course should define properties of some computational entities (e.g., computers, functional programming languages, auctions) and prove statements that apply to every entity with those properties. Formal reasoning courses instill in students the formal habits of mind that are central to academic computer science.

Computational Limitations

A Computational Limitations course covers basic computability and complexity theory. It exposes students to the beautiful results concerning the fundamental limits of universal (Turing-complete) model of computation, the equivalence of different computational models, and the impossibility or infeasibility of computing certain functions.

All Computational Limitations courses are also Formal Reasoning courses. The prototypical Computational Limitations courses are CS 1200 and CS 1210.

Algorithms

An Algorithms course covers introductory algorithms, algorithmic analysis, and data structures. It exposes students to fundamental algorithms for problems involving topics such as sorting, searching, and graphs, and to the basic toolkit for algorithmic analysis, such as recurrences for runtime.

All Algorithms courses are also Formal Reasoning courses. The prototypical Algorithms courses are CS 1200 and CS 1240.

Intermediate Algorithms

An Intermediate Algorithms course, like an Algorithms course, covers algorithms, algorithmic analysis, data structures, and algorithmic analysis, but at a greater level of sophistication and covering more ground.

Intermediate Algorithms courses are also Formal Reasoning courses and Algorithms courses. The prototypical Intermediate Algorithms course is CS 1240. Our honors requirements mention Intermediate Algorithms instead of Algorithms. We assume that a good fraction of honors students will take CS 1200 and CS 1240, and a good fraction will take CS 1210 and CS 1240.

Systems

A systems course should feature significant computer system development, i.e., the development of systems where interaction with and adaptation to other software or hardware interfaces is an important concern. Systems courses require that students complete extensive programming or computer system development assignments on their own or in small groups. These assignments must be in part open-ended and require the design of software or hardware components. Assignments must involve adapting to existing interfaces, and concern for performance, robustness, and/or security. Many systems courses will also satisfy a Programming tag.

Computation and the World

A Computation and the World course should introduce rigorous methods for developing and evaluating computational models and systems that encapsulate, interact with, and adapt to aspects of the empirical world. This often involves computational modeling, or the distilled expression of properties of the complex world—of natural, human, social, and informational systems—in terms amenable to computation, and the formulation of computational objectives to capture positive interventions in that world. Ideally, Computation and the World courses should give students tools and metrics for constructing their own models and objectives, as well as specific ones that apply to specific phenomena. Discretion, selection, and design are fundamental to these courses (modeling complex systems in computation, or designing systems that interact with humans or the world, rarely has one right answer).

Artificial Intelligence

An Artificial Intelligence course should introduce, motivate, and analyze tools and techniques to model or replicate behaviors that in humans are thought of as requiring or exhibiting intelligence. These behaviors include representation of knowledge, reasoning, planning, language use, and sensory interpretation.

Most Artificial Intelligence courses are also Computation and the World courses, human behaviors being aspects of the empirical world. However, some AI courses that do not focus on the discretion, selection, design, and interaction fundamental to Computation and the World might not fulfill the corresponding tag. (Such courses might focus, instead, on mathematical foundations.)

Advanced Computer Science

An Advanced Computer Science course should correspond to computer science courses at an advanced undergraduate level or above (typically corresponding to courses with a course number CS 1000 or above).