Updated 12/17/2020
This is an older version of the pathways, retained for students following the older requirements. Here are the current pathways.
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 two courses such that each is either a core course or a graduate course. 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), Deep Learning in Genomics (1850), Introduction to Robotics (1951R)
-
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), Autonomous Agents and Computational Market Design (2951C), Learning and Sequential Decision Making (2951F), Computer Vision for Graphics and Interaction (2951I), 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), The Design and Analysis of Trading Agents (2955)
-
Related Courses: Probabilistic Methods (1550), Data Science (1951A), Designing Humanity Centered Robots (1951C), Algorithmic Game Theory (1951K), Image Understanding (ENGN 1610)
-
Intermediate Courses: probability and statistics, linear algebra
Faculty: Bach, Charniak, Felzenszwalb, Greenwald, Konidaris, Littman, Pavlick, Ritchie, Singh, 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)
-
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: 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: Real Time and Embedded Software (1600), Multiprocessor Synchronization (1760), Design of VLSI Systems (ENGN 1600)
-
Intermediate Courses: 330
Faculty: Bahar, Herlihy, Reda
Data
Description: Studies the management and use of large data collections
-
Core Courses: Database Management Systems (1270), Machine Learning (1420), Data Science (1951A)
-
Graduate Courses: Topics in Database Management (2270), 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), Big Data (ECON 1660)
-
Intermediate Courses: probability and statistics, (320 or 330), linear algebra
Faculty: Cetintemel, Littman, Pavlick, Upfal, Zdonik
Design
Description: Studies the design, construction, and analysis of processes at the interface between humans and systems
-
Core Courses: UI/UX (1300), Virtual Reality Design for Science (1370), Designing Humanity Centered Robots (1951C)
-
Graduate Courses: Human-Computer Interaction Seminar (2300)
-
Related Courses: Computer Graphics (1230), Creating Modern Web and Mobile Applications (1320), Real Time and Embedded Software (1600), Data Science (1951A), CSCI Startup (1900), CS for Social Good (1951I), Physical Computing (VISA 1720), Virtual Reality Software Review (1951S), Surveying VR Data Visualization Software for Research (1951T), Design of Robotic Systems (ENGN 1931I)
-
Intermediate Courses: (320 or 330), probability and statistics
Faculty: Huang, Laidlaw, Ritchie, Tompkin
Security
Description: Studies the design, construction, analysis, and defense of techniques to protect systems, data, and communications
-
Core Courses: Cryptography (1510), Software Security and Exploitation (1650), Computer Systems Security (1660)
-
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), Distributed Systems (1380), Operating Systems (1670), Computer Networks (1680), Programming Languages (1730), Cybersecurity and International Relations (1800), Computer Freedom and Privacy: Current Topics in Law and Policy (1805), Logic for Systems (1950Y)
-
Intermediate Courses: (220 or probability and statistics), 330, 1010
Faculty: Kamara, Kemerlis, Krishnamurthi, Lysyanskaya, 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), Real-Time and Embedded Software (1600), Programming Languages (1730), Logic for Systems (1950Y)
-
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)
-
Intermediate Courses: 220, 320, 330
Faculty: Fisler, Krishnamurthi, Nelson, Reiss, Woos
Systems
Description: Studies the design, construction, and analysis of modern, multi-faceted computing systems.
-
Core Courses: Distributed Computer Systems (1380), Operating Systems (1670), 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 (CSCI 2952J)
-
Related Courses: Database Management Systems (1270), Fundamentals of Computer Systems (1310), 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 (1950Y), Blockchains & Cryptocurrencies (1951L), Design of Computing Systems (ENGN 1640)
-
Intermediate courses: 330, (220 or 320)
Faculty: Bahar, Benson, Cetintemel, Doeppner, Fonseca, Herlihy, Kemerlis, Nelson, Schwartzkopf, Woos
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)
-
Graduate Courses: Advanced Algorithms (2500A), Optimization Algorithms for Planar Graphs (2500B), Approximation Algorithms (2510), Advanced Probabilistic Methods in Computer Science (2540), Topics in Parallel & Distributed Computing (2750), Stochastic Optimization (2950E), Special Topics in Computational Linguistics (2950K), Topics in Advanced Algorithms (2951Q)
-
Related Courses: Computational Biology (1810, 1820), Computational Topology (1950H), Logic for Systems (1950Y), Optimization Methods in Finance (1951G), Algorithmic Game Theory (1951K)
-
Intermediate Courses: probability and statistics, 1010, linear algebra
Faculty: Istrail, Klein, Lysyanskaya, Tamassia, Upfal, Valiant
Visual Computing
Description: Studies the creation, interaction, and analysis of images and visual information, including animation and games
-
Core Courses: Computer Graphics (1230), 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), 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)
-
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)
-
Intermediate Courses: (320 or 330), linear algebra
Faculty: Huang, Hughes, Laidlaw, Meier, Ritchie, Tompkin, van Dam
In addition, there is the alternative pathway:
Self-Designed
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 or graduate studies, as appropriate. 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, for undergraduates, and by the end of shopping period of the student’s second semester, for master’s students.