BA Concentration in Software Engineering and Design

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