Updated 2023-09-12
Pathways are a means for organizing our courses into areas. Undergraduates doing an AB must complete one pathway; those doing an ScB, two. Master’s students must complete one pathway. The courses allowed for undergraduate pathways are somewhat different from those allowed for master’s pathways, as explained below.
For each pathway we specify core courses, graduate courses, related courses, and intermediate courses. Core courses are 1000-level courses that satisfy both undergraduate and master’s pathways. Graduate courses are 2000-level courses that may be used by undergraduates only if they’re also using a core course in the pathway. Related courses are 1000-level courses that may be used by undergraduates (but not master’s students) as part of the pathway if they’ve also used a core course. The intermediate courses are required of undergraduates completing a pathway, but are not required of master’s students.
Instructions For Undergraduates
To complete a pathway as an undergraduate, you must take one of its core courses and one other course from any of the core, graduate, and related lists. In addition, you must take the intermediate courses that are listed for the pathway. Note that it’s perfectly fine and, in fact, encouraged, for undergraduates to take 2000-level courses for which they satisfy the prerequisites. But you’re definitely not required to take any 2000-level courses.
For the intermediate courses, note that probability and statistics is satisfied only by one of CSCI 1450, APMA 1650, and APMA 1655. Linear algebra is satisfied only by one of CSCI 530, MATH 520, and MATH 540.
Instructions For Master’s Students
To complete a pathway as a Master’s student, you must take one course that is a core course for the pathway and a second that is either a core course or a graduate course in the pathway. You don’t need to take the intermediate courses. Taking a related course won’t count as being part of the pathway.
The current pathways are:
Artificial Intelligence/Machine Learning
Description: Studies the theory and application of algorithms for making decisions and inferences from rules and data
-
Core Courses: Artificial Intelligence (1410), Machine Learning (1420), Computer Vision (1430), Computational Linguistics (1460), Deep Learning (1470 or 2470), Deep Learning in Genomics (1850), Introduction to Robotics (1951R), Algorithmic Aspects of Machine Learning (1952Q) [Note: DATA 2060 may be substituted for 1420 during Fall 2023 only]
-
Graduate Courses: Statistical Models in Natural-Language Understanding (2410), Probabilistic Graphical Models (2420), Topics in Game-Theoretic Artificial Intelligence (2440), Deep Learning (2470), Advanced Probabilistic Methods in Computer Science (2540), Special Topics in Computational Linguistics (CSCI 2950K), Autonomous Agents and Computational Market Design (2951C), Learning and Sequential Decision Making (2951F), Computer Vision for Graphics and Interaction (2951I), Topics in Collaborative Robotics (2951K), Creative Artificial Intelligence for Computer Graphics (2951W), Reintegrating AI (2951X), Advanced Algorithmic Game Theory (2951Z), Learning with Limited Labeled Data (2952C), Computational Semantics (2952D), Deep Learning in Genomics (2952G), Topics in 3D Computer Vision and Deep Learning (2952K), Robotics and Choreography (2952L), Topics in Advanced Deep Learning (2952N), A Practical Introduction to Advanced 3D Robot Perception (2952O), Coordinated Mobile Robotics (CSCI 2952P/ENGN 2912U), The Design and Analysis of Trading Agents (2955)
-
Related Courses: Algorithmic Game Theory (1440), Probabilistic Methods (1550), Data Science (1951A), Designing Humanity Centered Robots (1951C), Fairness in Automated Decision Making (1951Z), Language Processing in Humans and Machines (1952I/CLPS 1850), Recent Applications of Probability and Statistics (APMA 1740), Deep Learning for Scientists and Engineers (APMA 2070), Image Understanding (ENGN 1610)
-
Intermediate Courses: probability and statistics, linear algebra
Faculty: Ayanian, Bach, Cheng, Felzenszwalb, Greenwald, Konidaris, Littman, Pavlick, Ritchie, Singh, Sridhar, Sun, Tellex, Tompkin
Computational Biology
Description: Studies the foundations and applications of algorithms for analyzing biological data and processes
-
Core Courses: Computational Molecular Biology (1810), Algorithmic Foundations of Computational Biology (1820), Deep Learning in Genomics (1850)
-
Graduate Courses: Advanced Algorithms in Computational Biology and Medical Bioinformatics (2820), Deep Learning in Genomics (2952G)
-
Related Courses: Machine Learning (1420), Computer Vision (1430), Deep Learning (1470), Data Science (1951A), Computational Vision (CLPS 1520) [Note: DATA 2060 may be substituted for 1420 during Fall 2023 only]
-
Intermediate Courses: 220, probability and statistics, 1010
Faculty: Istrail, Ramachandran, Singh
Computer Architecture
Description: Studies the design, construction, and analysis of computer architecture and hardware
-
Core Courses: Computer Architecture (CSCI 1952Y), Digital Electronics System Design (ENGN 1630), Design of Computing Systems (ENGN 1640), Embedded Microprocessor Design (ENGN 1650)
-
Graduate Courses: Introduction to Quantum Computing (ENGN 2912M), Low Power VLSI System Design (ENGN 2912E), Topics in Computing with Emerging Technologies (CSCI 2952J)
-
Related Courses: Design of Robotic Systems (CSCI 1951O), Real Time and Embedded Software (1600), Multiprocessor Synchronization (1760), Design of VLSI Systems (ENGN 1600)
-
Intermediate Courses: 330
Faculty: Herlihy, Zizyte
Data
Description: Studies the management and use of large data collections
-
Core Courses: Database Management Systems (1270), Machine Learning (1420), Data Science (1951A) [Note: DATA 1050 may be substituted for 1270 only if taken in Fall 2022; DATA 2060 may be substituted for 1420 during Fall 2023 only]
-
Graduate Courses: Topics in Database Management (2270), Privacy-Conscious Computer Systems (2390), Advanced Probabilistic Methods in Computer Science (2540), Algorithms for Big Data (2951H), Foundations of Prescriptive Analytics (2951O)
-
Related Courses: Probabilistic Methods (1550), Information Retrieval (1580)
-
Intermediate Courses: probability and statistics, (300 or 320 or 330), linear algebra
Faculty: Cetintemel, De Stefani, Littman, Pavlick, Upfal, Venkatasubramanian
Design
Description: Studies the design, construction, and analysis of processes at the interface between humans and systems
-
Core Courses: Computer Graphics (1230 or 2230), UI/UX (1300), Virtual Reality Design for Science (1370), Designing Humanity Centered Robots (1951C), Hypertext/Hypermedia Seminar (1951V) [Note: 1230/2230 and 1951V are temporarily core courses for 2021-2022 and 2023-2024 since neither 1300 nor 1320 were offered those years]
-
Graduate Courses: Human-Computer Interaction Seminar (2300), Algorithms for the People (2952V)
-
Related Courses: Computer Graphics (1230), Creating Modern Web and Mobile Applications (1320) [unlikely to be offered again soon], Human Factors in Cybersecurity (1360), Real Time and Embedded Software (1600), Data Science (1951A), CSCI Startup (1900), CS for Social Good (1951I), Design of Robotic Systems (1951O), Hypertext/Hypermedia Seminar (1951V), Physical Computing (VISA 1720), Virtual Reality Software Review (1951S), Surveying VR Data Visualization Software for Research (1951T), Responsible Computer Science in Practice (1952B), Design of Robotic Systems (ENGN 1931I)
-
Intermediate Courses: (300 or 320 or 330), probability and statistics
Faculty: Huang, Laidlaw, Ritchie, Tompkin, Zizyte
Security
Description: Studies the design, construction, analysis, and defense of techniques to protect systems, data, and communications
-
Core Courses: Cryptography (1510), Applied Cryptography (1515), Software Security and Exploitation (1650), Computer Systems Security (1660 or 2660)
-
Graduate Courses: Advanced Topics in Cryptography (2590), Topics in Applied Cryptography (2950V), Topics in Computer System Security (2951E), Topics in Software Security (CSCI 2951U)
-
Related Courses: Creating Modern Web and Mobile Applications (1320), Human Factors in Cybersecurity (1360), Distributed Systems (1380), Basics of Cryptography (1040), Operating Systems (1670), Computer Networks (1680), Logic for Systems (1710/1950Y), Programming Languages (1730), Cybersecurity and International Relations (1800), Computer Freedom and Privacy: Current Topics in Law and Policy (1805), Cybersecurity Law and Policy (1860), Cybersecurity Ethics (1870), Blockchains & Cryptocurrencies (1951L)
-
Intermediate Courses: (220 or probability and statistics) and (300 or 330)
Faculty: DeMarinis, Doeppner, Kemerlis, Krishnamurthi, Lysyanskaya, Miao, Tamassia
Software Principles
Description: Studies the design, construction, and analysis of modern software systems
-
Core Courses: Compilers and Program Analysis (1260), Creating Modern Web and Mobile Applications (1320) [unlikely to be offered again soon], Real-Time and Embedded Software (1600), Programming Languages (1730), Logic for Systems (1710/1950Y), Software Engineering of Large Systems (CSCI 1951U)
-
Graduate Courses: Programming Environments (2330), Software Engineering (2340), Programming Language Theory (2730), Topics in Programming Languages & Systems (2950X), Topics in Software Security (CSCI 2951U)
-
Related Courses: Database Management Systems (1270), Distributed Systems (1380), Software Security and Exploitation (1650), Computer Networks (1680), CS for Social Good (1951I), Virtual Reality Software Review (1951S), Surveying VR Data Visualization Software for Research (1951T), Formal Proof and Verification (1951X) [Note: DATA 1050 may be substituted for 1270 only if taken in Fall 2022]
-
Intermediate Courses: 220, 320, (300 or 330)
Faculty: Fisler, Krishnamurthi, Lewis, Nelson, Reiss, Zizyte
Systems
Description: Studies the design, construction, and analysis of modern, multi-faceted computing systems.
-
Core Courses: Distributed Computer Systems (1380), Operating Systems (1670 or 2670), Computer Networks (1680)
-
Graduate Courses: Privacy-Conscious Computer Systems (2390), Special Topics on Networking and Distributed Systems (2950U), Topics in Network Management: Data-driven and Programmable Networks (2952E), Distributed Systems at Scale: Infrastructure for Online Web Services (2952F), Topics in Computing with Emerging Technologies (2952J)
-
Related Courses: Compilers and Program Analysis (1260), Database Management Systems (1270), Creating Modern Web and Mobile Applications (1320), Real-time and Embedded Software (1600), Software Security and Exploitation (1650), Computer Systems Security (1660), Programming Languages (1730), Multiprocessor Synchronization (1760), Logic for Systems (1710/1950Y), Design of Computing Systems (ENGN 1640), Hypertext/Hypermedia Seminar: The Web Was Not the Beginning and the Web Is Not the End (CSCI 1951V) [Note: DATA 1050 may be substituted for 1270 only if taken in Fall 2022], Computer Architecture (CSCI 1952Y),
-
Intermediate courses: (220 or 320), (300 or 330)
Faculty: Cetintemel, DeMarinis, Doeppner, Herlihy, Kemerlis, Nelson, Schwarzkopf, Vasilakis, Zizyte
Theory
Description: Studies the foundations of models and algorithms for computing in various contexts
-
Core Courses: Cryptography (1510), Probabilistic Methods (1550), Design and Analysis of Algorithms (1570), Multiprocessor Synchronization (1760), Sublinear Algorithms for Big Data (1951W), Formal Proof and Verification (1951X)
-
Graduate Courses: Advanced Algorithms (2500A), Optimization Algorithms for Planar Graphs (2500B), Approximation Algorithms (2510), Advanced Probabilistic Methods in Computer Science (2540), Programming Languages Theory (2730), Topics in Parallel & Distributed Computing (2750), Stochastic Optimization (2950E), Special Topics in Computational Linguistics (2950K), Topics in Advanced Algorithms (2951Q), The Works that Made and Changed Machine Learning (2952M)
-
Related Courses: Algorithmic Game Theory (1440), Computational Biology (1810, 1820), Computational Topology (1950H), Logic for Systems (1710/1950Y), Optimization Methods in Finance (1951G), Algorithmic Aspects of Machine Learning (1952Q)
-
Intermediate Courses: probability and statistics, 1010, linear algebra
Faculty: Cheng, Hershkowitz, Istrail, Klein, Krishnamurthi, Lewis, Lysyanskaya, Miao, Tamassia, Upfal
Visual Computing
Description: Studies the creation, interaction, and analysis of images and visual information, including animation and games
-
Core Courses: Computer Graphics (1230 or 2230), Introduction to Computer Animation (1250), Intermediate Computer Animation (1280), Computational Photography (1290), UI/UX (1300), Virtual Reality Design for Science (1370), Computer Vision (1430), Advanced Animation (1950T), Virtual Reality Software Review (1951S), Surveying VR Data Visualization Software for Research (1951T)
-
Graduate Courses: Interactive Computer Graphics (2240), Human-Computer Interaction Seminar (2300), Interdisciplinary Scientific Visualization (2370), Cognition, Human-Computer Interaction and Visual Analysis (2950J), Topics in Computer Vision (2950Q), Computer Vision for Graphics and Interaction (2951I), Creative Artificial Intelligence for Computer Graphics (2951W), A Practical Introduction to Advanced 3D Robot Perception (2952O)
-
Related Courses: Deep Learning (1470), Game Engines (1950U, 1950N), Image Understanding (ENGN 1610) (this course may not be used in addition to CSCI 1430, which covers similar material), Computational Vision (CLPS 1520), Hyperreality Design (DATA 1200, only if taken in the 2019/2020 academic year; it will be reevaluated for subsequent years), Hypertext/Hypermedia (CSCI 1951V)
-
Intermediate Courses: (300 or 320 or 330), linear algebra
Faculty: Huang, Hughes, Laidlaw, Meier, Ritchie, Sridhar, Tompkin, van Dam
Self-Designed (for undergraduates only)
This pathway is modeled after the Brown programs for designing one’s own concentration. Students electing this pathway must write a proposal for their pathway and have it approved by an advisor and the director of undergraduate studies. The proposal must meet the breadth and overall course requirements. This must be done by the end of shopping period of the student’s seventh semester.