BS Concentration in Software Systems

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)  see substitutions
  • COMPSCI 250 (Computer Architecture)
  • COMPSCI 330 (Design & Analysis of Algorithms)
  • One of the following COMPSCI courses on systems:
    • COMPSCI 310 (Introduction to Operating Systems) or 510 (Advanced Operating Systems)
    • COMPSCI 316 (Introduction to Databases) or 516 (Database Systems)
    • COMPSCI 350 (Digital Systems, cross-listed as ECE 350) or 550 (Advanced Computer Architecture, cross-listed as ECE 552)
    • COMPSCI 351 (Computer Security) or 551 (Advanced Computer Security)*
    • COMPSCI 356 (Computer Network Architecture) or 514 (Computer Networks)
  • Two courses in MATH/STA:
    • 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):
    • Four electives from the list below, with at most one course from each bullet. The course you take for the Systems requirement above cannot count as one of the four courses.
      • COMPSCI 307 (Software Design and Implementation) or 308 (Advanced Software Design and Implementation) or 290 Mobile Software Design (last taught Spring 2018) or 290 Web Application Development (Spring 2018, Spring 2021)
      • COMPSCI 310 (Introduction to Operating Systems) or 510 (Advanced Operating Systems)
      • COMPSCI 316 (Introduction to Databases) or 516 (Database Systems)
      • CompSci 350 (Digital Systems) or CompSci 550 (Advanced Computer Architecture)
      • COMPSCI 351 (Computer Security) or 551 (Advanced Computer Security) or CS 290/590 Security equivalent or ECE 590 Computer and Info Security
      • COMPSCI 356 (Computer Network Architecture) or 514 (Computer Networks)
      • COMPSCI 408 (Delivering Software)
      • COMPSCI 512 (Distributed Systems)
      • COMPSCI 553 (Compiler Construction), cross-listed as ECE 553
    • One elective in COMPSCI (independent study possible), MATH, STA, or a related area approved by the Director of Undergraduate Studies

* Both courses have been offered as a 290 and 590 course with the same name, and will satisfy this requirement. 

** STA 111 will not be offered after Summer 2020. We recommend you take STA 199 or higher.

***MATH 212 does not count towards this requirement, but can count towards an elective.