Degree Programs

Programs offered by the Computer Science Department:

Related programs offered by other departments include:


Bachelor of Science in Computer Science

Computer science is the scientific study of computing devices, the software that drives them, and the computational tasks they are capable of performing. Computer science studies both hardware and software; as with all sciences, each of these possesses both theoretical and applied components. Computing theory shares knowledge and techniques with the fields of mathematics, physics, engineering, philosophy, psychology and linguistics. Its applications span the range of human endeavors: the physical, life and social sciences; the literary, visual and performing arts; law, government, recreation, and virtually every sector of the commercial world. Thus, computer science is by its very nature an interdisciplinary subject that offers both a solid, unifying foundation for a liberal arts education and valuable career skills.

The curriculum consists of a rigorous course of study in computer science and mathematics, and provides the student with a thorough grounding in programming, fundamentals of computer organization, data structures and algorithm design. It is designed to prepare students for careers in the computer industry and graduate work in computer science.

All courses submitted toward either major or minor requirements in the Computer Science Department must be taken for a letter grade (A-F). This includes electives in CS and all other courses taken to satisfy the major. This does not apply to courses that are challenged. Only those classes for which the student has received a C- or better may be used to satisfy prerequisite requirements. An instructor may require the student to provide evidence of having met prerequisite requirements.

Degree Requirements

General Education (50 units, 6 covered by major requirements)44 units
Computer Science Core49 units
Computer Science Electives9 units
Computer Science Capstone Requirement3 units
Required Supporting Courses10 - 16 units
General Electives 3 - 5 units
Total needed for graduation120 units

Major Core Requirements

CourseUnits
CS 115 Programming I (GE Area B3)4
CS 210 Introduction to Unix1
CS 215 Programming II4
CS 242 Discrete Structures for Computer Science4
CS 252 Introduction to Computer Organization4
CS 315 Data Structures4
CS 351 Computer Architecture4
CS 355 Database Management Systems Design4
CS 370 Software Design and Development4
CS 415 Analysis of Algorithms4
CS 450 Operating Systems4
CS 454 Theory of Computation4
CS 460 Programming Languages4

Major Electives

Choose 9 units of upper-division CS electives (see list below). No more than 3 units can be satisfied by a combination of CS 349, CS 390, CS 495, and CS 497.

CourseUnits
CS 330 Game Programming3
CS 340 Computer Security and Malware3
CS 349 Problem Solving in a Team Environment1
CS 360 Object-Oriented Programming3
CS 365 Computer Networking and the Internet3
CS 375 Computer Graphics3
CS 385 Selected Topics in Computer Science1 - 4
CS 386 Selected Topics in Computer Science with Lab3
CS 390 Computer Science Colloquium1
CS 425 Parallel Computing3
CS 452 Compiler Design and Construction3
CS 465 Data Communications3
CS 480 Artificial Intelligence3
CS 495 Special Studies1 - 4
CS 497 Internship2

Capstone Experience Requirement

Students must take either CS 470 (Advanced Software Design Project) or CS 496 (Senior Research Project).

Total units in capstone requirement: 3

Required Supporting Courses

Students must take three supporting courses from the list below: MATH 161 or 161X, plus two additional courses of the student's choice.

CourseUnits
MATH 161 or 161X Differential and Integral Calculus 1 (required)4 or 6
MATH 165 or 165X Elementary Applied Statistics4 or 6
MATH 211 Differential and Integral Calculus II4
MATH 222 Elementary Applied Linear Algebra3
MATH 241 Linear Algebra with Applications in Differential Equations4
MATH 306 Number Theory4
MATH 316 Graph Theory and Combinatorics4
MATH 352 Numerical Analysis4
MATH 416 Graph Theory and Combinatorics4
MATH 430 Linear Systems Theory3
MATH 470 Mathematical and Statistical Modeling4
PHYS 214 Introduction to Physics II4
Other by arrangement with the CS Department

Total units in required supporting courses: 10 - 16


Minor in Computer Science

Students selecting this minor will be prepared for careers in business application programming, scientific application programming, computer equipment sales, as field engineers and as data processing managers, among the myriad job opportunities associated with the computing field. Approval of the minor curriculum should be obtained by the junior year at the latest in order that the minor may be properly planned.

All courses submitted toward either major or minor requirements in the Computer Science Department must be taken for a letter grade (A-F). This includes electives in CS and supporting courses in other departments. This does not apply to courses that are challenged.

Minor Requirements

CourseUnits
CS 115 Programming I (GE Area B3)4
CS 210 Introduction to Unix1
CS 215 Programming II4
CS electives, including 6 upper-division units and no more than 2 units from any combination of CS 349, CS 390, CS 495, and CS 497.11
Total units in the minor20