Curriculum

The Computer Science Division offers undergraduate and graduate courses in computer science and related disciplines. These courses support a B.S. degree program in Computer Science, an undergraduate minor in Computer Science, and an M.S. degree program in Systems Engineering.
  • The B.S. degree is awarded upon successful completion of the undergraduate major field curriculum. Department criteria for graduation include completion of all courses in the curriculum with a minimum grade point average of C (2.0) in the upper division requirements.
  • minor in Computer Science is fulfilled by completing CMSI 185, CMSI 186, CMSI 281, CMSI 282 or 284, and two upper division CMSI electives.
  • Students interested in graduate-level computer science are encouraged to consider a Master of Science in Systems Engineering with a technical focus on Computer Science.

To request an application or to apply online, please visit Admissions.

Bachelor of Science in Computer Science Requirements

The B.S. degree program in Computer Science consists of classroom and laboratory experiences in algorithms and data structures, software engineering and development, the theory of computation, operating systems, programming languages and translation, computer graphics and interaction design, distributed systems, network programming, and the organization and design of microprocessor-based computer systems. One hundred twenty-four (124) semester hours of credit from the following areas are required.

Lower Division Requirements

Twenty-nine (29) semester hours, as follows: CMSI 185, 186, 281, 282, 284; ELEC 281; MATH 131, 132, 248.

Upper Division Requirements

Thirty-eight (38) semester hours, as follows: CMSI 370, 371, 385, 386, 387, 401, 402, 486, 488; ELEC 385; MATH 360, 366.

University Core

A minimum of twenty-six units from University Core, as follows:

Seven required core courses: First year seminar (3-4 units), Rhetorical arts (3 units), Philosophical inquiry (3-4 units), Theological inquiry (3-4 units), American diversity (3-4 units), Faith and reason (3-4 units), and Ethics and justice (3-4 units). 

If necessary, additional core courses to satisfy the 26-unit minimum, from: Historical analysis (3-4 units), and Interdisciplinary connections (3-4 units)

(Note that the required courses CMSI 370 and CMSI 371 are part of the university core - Human behavior and Creative experience, respectively, so the effective number of core units is 32.)  

Electives

Students must take a sufficient number of electives to reach the minimum requirement of 124 units. These electives must contain:

    1. One additional course (3 units or more) in upper division Computer Science;
    2. One course (3 units) in a laboratory or natural science;
    3. (Approximately) Twenty-five (25) hours of free and unrestricted electives. Students are encouraged to use the electives to pursue a minor or second major.

Students will normally prepare a coherent program of electives and related core courses with a faculty advisor. The following tracks are recommended:

  • Business and Information Management: Satisfaction of social science requirements of the core with economics (ECON) courses, the CMSI elective requirement with Electronic Markets, and the following four courses in Applied Information Management Systems (AIMS) together with their prerequisites from Business:
    • AIMS 3720 Systems Analysis and Design
    • AIMS 4760 Business Intelligence and Data Mining
    • AIMS 4770 Information Security
    • AIMS 4780 IT and Supply Chains
  • Scientific Computing: Three suitable science courses and two suitable math courses, with the CMSI elective fulfilled with an interdisciplinary course such as CMSI 367 Biological Databases.
  • Games and Animation: CMSI 375 (Game design) or an independent studies in game design or game programming (focusing on C++ or C#, Unreal or Unity engines), three suitable animation (ANIM) courses (plus prerequisites), and one physics (PHYS) course, preferably PHYS 101 (Mechanics). One or more of the lower division ANIM courses may be used to satisfy core curriculum requirements; the PHYS course can satisfy the science requirement.
  • Mathematics: Five or more courses selected from Calculus 3, Differential Equations, Abstract Algebra, Methods of Applied Math, Real Variables, Complex Variables, Topology, or any upper division mathematics course.
  • Cognitive Science: CMSI 485 Artificial Intelligence, PSYC 251 Brain and Behavior (with appropriate PSYC prerequisites), PSYC 401 Cognition (with appropriate prerequisites). CMSI 485 can be used for the CMSI elective and one or more lower division PSYC prerequisites can be used for the Core requirements. One or more courses in linguistics are recommended.

Students should consider one or more units of CMSI 390 as a way to gain experience through an internship or a research practicum leading to publication.

Curriculum Structure for the B.S. Degree

The following diagram shows the prerequisite structure among the courses required for the B.S. degree in Computer Science.


Sample Four-Year Plan for the B.S. Degree

A typical course sequence for the completion of the B.S. degree is as follows.

FRESHMAN YEAR

Fall Semester Units
15
CMSI 185 Computer Programming 3
MATH 131 Calculus I 4
____ ___ Core (First year seminar) 4
____ ___ Core (Phil. Inquiry) 4

 
Spring Semester Units
16
CMSI 186 Programming Laboratory 3
MATH 132 Calculus II 4
____ ___ Core (Rhetorical Arts) 3
____ ___ Elective 3
____ ___ Elective 3

SOPHOMORE YEAR

Fall Semester Units
16
CMSI 281 Data Structures 3
MATH 248 Methods of Proof 3
____ ___ Core (Diversity)4
____ ___ Elective3
____ ___ Elective 3
Spring Semester Units
16
CMSI 282 Algorithms 3
CMSI 284 Systems Programming 3
ELEC 281 Logic Design 3
MATH 366 Discrete Methods 3
____ ___ Core (Theo. Inquiry) 4

JUNIOR YEAR

Fall Semester Units
16
CMSI 370 Interaction Design 3
CMSI 385 Theory of Computation 3
CMSI 386 Programming Languages 3
____ ___ Core (Ethics and Justice) 4
____ ___ Elective 3
Spring Semester Units
16
CMSI 371 Computer Graphics 3
CMSI 387 Operating Systems 3
CMSI 488 Language Translation 4
ELEC 385 Computer Systems Design 3
____ ___ Elective 3

SENIOR YEAR

Fall Semester Units
16
CMSI 401 Software Engineering Lab 3
CMSI 486 Database Systems 3
MATH 360 Probability and Statistics 3
____ ___ Core (Faith and Reason) 4
____ ___ Elective 3
Spring Semester Units
13
CMSI 402 Senior Project 4
____ ___ Elective 3
____ ___ Elective 3
____ ___ Elective 3



Computer Science Minor Field Requirements

A minor in Computer Science is fulfilled by completing (1) CMSI 185, 186, 281, (2) CMSI 282 or 284, and (3) two upper division CMSI electives.

Graduate Courses in Computer Science

The division offers graduate-level computer science courses in software engineering and modeling, artificial intelligence and knowledge representation, distributed systems, computer graphics, computer networks, and other fields of interest to both computer scientists and practicing engineers, which can satisfy Master's Degree requirements for Systems Engineering, Electrical Engineering and other engineering fields.