BS 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
  • Two courses in MATH/STA
    • One STA course at or above STA 111, including the cross-listed MATH 230
    • One of MATH 202, 216, 218, or 221
  • Five electives at 200-level or higher (beyond those counted towards the requirements above)

NOTE: Three out of the five 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 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
  • One elective from any of the three lists above
  • One elective in COMPSCI (independent study possible), MATH, STA, ECE, or a related area approved by the Director of Undergraduate Studies