There are two tracks available in the upper division program for Computer Science. The Computer Science (CS) track should be followed by the student who intends to continue on to graduate study in computer science. The Software Design and Development (SDD) track may be followed by the student who intends to pursue a software engineering career. This section explains the requirements for the Software Design and Development track.

Flowchart (Admitted starting from Fall 2023 to present)
Flowchart (Admitted between Spring 2022 and Summer 2023)
Flowchart (Admitted between Fall 2019 and Fall 2021)
Flowchart (Admitted between Fall 2012 and Summer 2019)
Plan of study

CS Prerequisites

Students should have completed the following courses (or equivalent) prior to starting the BA in Computer Science.

Students should have completed the following courses (or equivalent) prior to starting the B.S. in Computer Science. Only a programming course in Java will be accepted as transfer credit to satisfy COP2210.


  • COP2210 Computer Programming 1
  • MAC2311 Calculus 1
  • MAC2312 Calculus 2
Science Group 1
Choose one of the following courses with lab.

  • BSC2010 General Biology 1 w/ Lab
  • CHM1045 General Chemistry 1 w/ Lab
  • ESC1000 Intro to Earth Sciences 1 w/ Lab
  • PHY2048 Physics with Calculus 1 w/ Lab
Science Group 2
Choose one of the following courses with lab.

  • BSC2011 General Biology 2 w/ Lab
  • CHM1046 General Chemistry 2 w/ Lab
  • GEO3510 Earth Resources w/ Lab
  • GLY1010 Physical Geology w/ Lab
  • GLY3039 Environmental Geology w/ Lab
  • PHY2049 Physics with Calculus 2 w/ Lab

SDD Core Courses

  • CDA3103 Fundamentals of Computer Systems
  • CDA4101 Structured Computer Organization
  • CEN4010 Software Engineering I
  • CEN4021 Software Engineering II
  • CEN4072 Software Testing
  • CGS1920 Introduction to the Computing Field
  • CGS3095 Technology in the Global Arena
  • CIS3950 Capstone I
  • CIS4951 Capstone II
  • COP3337 Computer Programming II
  • COP3530 Data Structures
  • COP4338 Systems Programming
  • COP4610 Operating Systems Principles
  • ENC3213 Professional and Technical Writing or ENC 3249 Professional and Technical Writing for CS
  • COT3100 Discrete Structures or MAD2104 Discrete Math
  • STA3033 Introduction to Probability and Statistics for CS

SDD Elective Courses (7 Courses)

Choose one elective course from the Foundations group and one elective course from the Systems group. Remaining three elective courses can come from either group.


  • CAP4506 Intro to Game Theory
  • COP4534 Algorithm Techniques
  • COP4555 Programming Languages
  • COT3510 Applied Linear Structures
  • COT3541 Logic for CS
  • COT4521 Intro to Computational Geometry
  • COT4601 Fundamentals of Quantum Computing
  • MAD3301 Graph Theory
  • MAD3401 Numerical Analysis
  • MAD3512 Theory of Algorithms
  • MAD4203 Combinators
  • MHF4203 Math Logic


  • CAP4453 Robot Vision
  • CDA4625 Intro to Mobile Robotics
  • CEN4083 Cloud Computing
  • CEN4083 Fundamental Blockchain Technologies
  • CIS4203 Digital Forensics
  • CNT4713 Net Centric Computing
  • COP4520 Intro to Parallel Computing
  • COP4604 Advanced UNIX Programming
  • COP4710 Database Management
  • COP4751 Advanced Database Management
  • CTS4408 Database Administration
  • COT4408 Applied Parallel Computing


  • CAP4052 Game Design & Dev
  • CAP4104 Human Computer Interaction
  • CAP4612 Introduction to Machine Learning
  • CAP4630 Artificial Intelligence
  • CAP4641 Natural Language Processing
  • CAP4710 Computer Graphics
  • CAP4770 Intro to Data Mining
  • CAP4830 Modeling & Simulations
  • COP4226 Advanced Windows Programming
  • COP4655 Mobile App Development