Major in Computer Science

Students who graduate with a Bachelor of Science (B.S.) degree in Computer Science will be prepared for both graduate school and for software development careers. The curriculum provides a solid base in computer science fundamentals that includes software design and development, problem solving and debugging, theoretical and mathematical foundations, computer systems, and system software.

Program Learning Outcomes

  • Theory: explain and analyze standard computer science algorithms and describe and analyze theoretical aspects of various programming languages
  • Application: apply problem-solving skills to implement medium- and large- scale programs in a variety of programming languages
  • Systems: describe the interactions between low-level hardware, operating systems, and applications
  • Project: demonstrate effective communication and organization as part of a team of software developers or researchers collaborating on a large computer program


20 units of lower division courses, 20 units of upper division courses, and 12 units of mathematics

Students majoring in Computer Science must earn a grade of C or better in all of the mathematics and computer science courses fulfilling requirements for the major. A student can repeat no more than two Mathematics or Computer Science courses required in the major, and a course can be repeated only one time. A withdrawal counts as an attempt at a course without passing or earning a minimum grade required in the course.

Lower Division (20 units)

  • CS 110 Introduction to Computer Science I (4 units)
  • CS 112 Introduction to Computer Science II (4 units)
  • CS 212 Software Development (4 units)
  • CS 220 Introduction to Parallel Programming
    CS 221 C and Systems Programming
  • CS245 Data Structures and Algorithms (4 units)

Upper Division (20 units)

One course from each of the following areas:

Systems Area (8 units - 2 courses)

  • CS 326 Operating Systems
  • CS 315 Computer Architecture

Theory and Languages Area (4 units - 1 course)

  • CS 345 Programming Languages
  • CS 411 Automata Theory
  • CS 414 Compilers

Applications Area (4 units - 1 course)

  • Any 300 or 400 level course except 398 or 498 (i.e., Directed Reading and Research may not be used to fulfill this requirement)

    Graduate classes can be taken to fulfill the Systems/Theory/Applications requirements with the approval of the department chair.

Project (4 units - 1 course)

  • CS 490 Senior Team Project

Math Requirement (12 units)

  • Math 109 Calculus and Analytic Geometry I
  • Math 201 Discrete Mathematics
  • Math 202 Linear Algebra and Probability Theory

Science Core Requirement

Computer Science students must take one of the following classes for Core B2:

  • BIOL 103
  • BIOL 105
  • BIOL 106
  • CHEM 106
  • CHEM 110
  • CHEM 111
  • CHEM 113
  • ENVS 100
  • ENVS 110
  • PHYS 100
  • PHYS 101
  • PHYS 110
  • PHYS 210

Contact Info

Department of Computer Science

Mon-Fri, 8:30a.m. - 4:30p.m.

Harney Science Center 402 (415) 422-6530 (415) 422-5800