Skip to Content (Press Enter)

 California State University, Fullerton



Text Size: Small Text Medium Text Large Text

Bachelor of Science in Computer Science

The B.S. degree program in Computer Science is accredited by the Computing Accreditation Commission of ABET, . The B.S. degree in Computer Science requires 124 units of course work in the following categories:

  • Computer Science Core (46 units)

  • Computer Science Technical Electives (15 units)

  • Mathematics and Science (30 units)

  • General Education (33 units)

The core courses cover topic areas of both theoretical and practical interest to all Computer Science majors. These courses are divided into the lower division core and the upper division core.

Lower Division Core

  • CPSC 120 (Introduction to Programming)

  • CPSC 121 (Programming Concepts)

  • CPSC 131 (Data Structures Concepts)

  • CPSC 223 (Object-Oriented Programming Language)

  • CPSC 240 (Computer Organization and Assembly Language)

  • CPSC 253U or 254 (UNIX or Open Source Systems)

Upper Division Core

  • CPSC 311 (Technical Writing for Computer Science)

  • CPSC 315 (Social and Ethical Issues in Computing)

  • CPSC 323 (Programming Languages and Translation)

  • CPSC 332 (File Structures and Database Systems)

  • CPSC 335 (Problem Solving Strategies)

  • CPSC 351 (Operating Systems Concepts)

  • CPSC 362 (Foundations of Software Engineering)

  • CPSC 440 (Computer System Architecture)

  • CPSC 471 (Computer Communications)

  • CPSC 481 (Artificial Intelligence)

Basic Programming Course Exemption

Computer Science 120 (Introduction to Programming) can be waived if you have already taken an equivalent course or passed the Computer Science Placement Exam. If this course is waived, you will need to take an elective course to meet the 124 unit degree requirements.

Object-Oriented Programming Language

You must take 3 units of a modern object-oriented programming language course other than C++. Computer Science 223J (Java Programming), 223H (Visual Basic Programming), or 223N (C# Programming) meets this requirement.

UNIX or Open Source Systems

You must take at least 1 unit of UNIX or Open Source Systems. If you take CPSC 253U (UNIX Workshop), you must take 2 additional units of elective courses.

Examination in Programming Proficiency (EPP)

You must pass the Examination in Programming Proficiency (EPP) before taking most of the 300-level and 400-level Computer Science courses except for CPSC 440 (Computer System Architecture). This examination determines whether you have the basic programming skills needed to succeed in upper division courses. It focuses on the concepts and skills covered in CPSC 121 and CPSC 131.

The EPP is given as part of CPSC 301 (Programming Lab Practicum). You must register in CPSC 301 and attend the first two weeks of the course.

Upper Division Writing Requirement

The University requires every bachelor degree candidate to take an upper division writing course and the English Writing Proficiency (EWP) examination. The EWP has two parts: a test of Standard Written English and a written essay. CPSC 311 (Technical Writing for Computer Science) meets the writing course requirement.

You cannot take the EWP until you reach upper division standing and you should take it before your senior year. You may retake the examination until you pass it. If you fail two or more times, you may take English 199 (Intensive Writing Review) to satisfy this requirement. This course does not count towards graduation and it does not satisfy the writing course requirement, but passing it is equivalent to the EWP.

Elective Track Requirements

Computer Science is a very broad field and the technologies in each area change rapidly. Elective tracks provide you with flexible choices of elective courses so you can quickly adapt to rapid technology advancements and meet the professional goals.

You must select an elective track aimed at your specific career goals. There are five tracks to choose from:

  • Multimedia and Digital Games

  • Internet and Enterprise Computing

  • Software Engineering

  • Scientific Computing

  • Customized

More information about the program can be found in the Undergraduate Handbook.