Prerequisites
- One of the following introductory COMPSCI courses or equivalent:
- COMPSCI 101L - Introduction to Computer Science
- COMPSCI 102 - Interdisciplinary Introduction to Computer Science
- COMPSCI 116 - Foundations of Data Science
- MATH 111L - Introductory Calculus I or equivalent
- MATH 112L - Introductory Calculus II or equivalent
Requirements
- COMPSCI 201 - Data Structures and Algorithms
- COMPSCI 230 - Discrete Math for Computer Science or 232 - Discrete Mathematics and Proofs see substitutions
- COMPSCI 210D - Introduction to Computer Systems or 250D - Computer Architecture
- COMPSCI 330 - Design & Analysis of Algorithms
- One of COMPSCI 316 - Introduction to Databases or 516 - Database Systems
- Three electives at 200-level or higher (beyond those counted towards the requirements above)
NOTE: One out of the three electives must be COMPSCI courses.
- One elective in software engineering /design from this list:
- COMPSCI 290 - Human Skills for Software Engineering
- COMPSCI 307 - Software Design and Implementation
- COMPSCI 308 - Advanced Software Design and Implementation
- COMPSCI 390 - Special Topics on the following subjects (some may not be offered regularly):
- Human Skills For Software Engineering (Fall 2025)
- One elective in web, app/mobile, human-centered engineering/design from this list:
- COMPSCI 207 - Introduction to Mobile Application Development in iOS
- COMPSCI 226 - User Research Methods
- COMPSCI 390 - Special Topics on the following subjects (some may not be offered regularly):
- Server-Side Web (Spring 23, Spring 24)
- Computer Game Design (Fall 2025)
- COMPSCI 408 - Delivering Software or 390 - Modern Software Development and Deployment (Fall 2025)
- COMPSCI 507 - Mobile App Development
- COMPSCI 586 - Human Centered Security and Privacy
- COMPSCI 590 Advanced Web Application Development (Spring 24)
- ECE 653 - Human-Centered Computing
- One elective from either of the two lists above or in software systems from this list:
- COMPSCI 310 - Introduction to Operating Systems or 510 - Advanced Operating Systems
- COMPSCI 345 - Graphics Software Architecture or 350 - Digital Systems (cross ECE 350) or 550 - Advanced Computer Architecture (cross ECE 552) or 590 - Computer Architecture and Hardware Acceleration
- COMPSCI 351 - Computer Security or 581 - Computer Security or 390 - Software Reverse Engineering
- COMPSCI 356 - Computer Network Architecture or 514 - Computer Networks
- COMPSCI 512 - Distributed Systems