The curriculum meets the needs of industry for computer science professionals trained in areas such as software engineering, mobile and web development, and databases.
- Students will take 60 credits of computer science courses in order to graduate.
Programming I, II (CS 161 & CS 162 or CS 165)
Discrete structures (CS 225)
Data structures (CS 261)
Analysis of algorithms (CS 325)
Introduction to Databases (CS 340)
Software Engineering I and II (CS 361 & CS 362)
Computer Systems and Networking
Computer Architecture and Assembly Language (CS 271)
Operating Systems (CS 344)
Software Projects (CS 467)
Electives (Pick 3 out of 8)
Introduction to Usability Engineering (CS 352)
Introduction to Security (CS 370)
Introduction to Computer Networks (CS 372)¹
Defense Against the Dark Arts (CS 373)²
Social and Ethical Issues in Computer Science (CS 391)³
Open Source Software Development (CS 464)
Parallel Programming (CS 475)
Cloud Application Development (CS 493)4
¹ Effective Summer 2019, CS 372 will be an elective for students admitted in Summer 2019 and beyond. Please contact your advisor if you need clarification.
² CS 373 requires CS 372 as a prerequisite, which is also an elective. If you plan to take CS 373, please also plan on using 1 of your 3 elective options on CS 372.
³ CS 391 is a 3 credit course, unlike the rest of our elective options and required courses which are 4 credits. As a result, if you choose to take CS 391 as an elective option, you will be 1 credit short of the 60 credit graduation requirement. You will need to make up this credit with one of our other electives (4 credit courses). Total you would need to take 4 electives, instead of the required minimum of 3 electives.
4 CS 493 requires CS 372 as a prerequisite, which is also an elective. If you plan to take CS 493, please also plan on using 1 of your 3 elective options on CS 372.
This program is very rigorous and requires you to take ownership of your learning and time. For more details, visit the Academic Plans page.
- The program includes one required math class. Discrete Structures in Computer Science provides the mathematical foundation for students planning to enter software development and related fields. This course includes topics in Boolean and relational algebra, graph theory, inductive proofs, and combinatorics.
- In computer science, math ability is often used as a demonstration of logical thinking. The discipline and ability to think through problems, break them down into simpler problems, and apply transformations and rules that are needed to succeed in math is the same as that required to be successful in computer science. Some sub-areas require advanced math courses (e.g. graphics, scientific computing, machine learning, etc.), but most developers do not need upper level math courses. If you plan to apply to graduate school in computer science or work in areas such as computer graphics, simulations, or game design, bioinformatics, etc. you may want to consider taking additional math and statistics courses.