Computer Science Major Degree Requirements, 2020 and earlier

This page describes the 2020 (or earlier) catalog requirements. See Fall 2021 New CS Major FAQs for recent changes (applicable to newer students) This page describes the degree requirements for a bachelor’s of science degree in Computer Science at San Diego State University. In addition to the requirements listed here, students must also satisfy the university-wide graduation requirements listed in the 2020-21 Graduation Requirements section of the General Catalog. The 2020-21 Computer Science Section of the General catalog describes the degree requirements and courses offered by the department.

The General Catalog is published each year and is the official SDSU document describing degree requirements for students entering the university that year. See the Graduation Requirements for the rules determining which year of the catalog sets your graduation requirements. There are special rules for California community college students and CSU transfer students. This page describes the computer science major requirements for students starting SDSU any time from 1996 to present.

The degree requirements are divided into four areas:


Lower Division Requirements

The following courses are required for computer science majors.  Each of these courses must be completed with a C or better grade.

  • CS 107 Introduction to Computer Programming (3 units)
  • CS 108 Intermediate Computer Programming (3 units)
  • CS 237 Machine Organization and Assembly Language (3 units; equivalent to the new CS240)
  • MATH 150 Calculus I (4 units)
  • MATH 151 Calculus II (4 units)
  • MATH 245 Discrete Mathematics (3 units)
  • STAT 250 Basic Statistical Methods (3 units) OR STAT 119 Elementary Statistics (3 units)
  • MATH 254 Introduction to Linear Algebra (3 units)

Science Requirements

Computer science majors must take one of the yearlong sequences of science listed below.  You must take a year sequence in the same subject. The Physics sequence is preferred (and is indeed REQUIRED for students who must follow the 2021 or later catalogs). In addition computer science majors must take additional science course(s) to complete a total of 12 units, selected with approval of a computer science adviser (see the IMPORTANT restrictions below).

Yearlong Science Sequences

Computer science majors must take

  • PHYS 195 Principle of Physics (3 units)
  • PHYS 195L Principles of Physics (1 unit)
  • PHYS 196 Principles of Physics (3 units)
  • PHYS 196L Principles of Physics (1 unit)

or

  • CHEM 200 General Chemistry (5 units)
  • CHEM 201 General Chemistry (5 units)

or

  • BIOL 203 Principles of Cell and Molecular Biology (3 units)
  • BIOL 203L Principles of Cell and Molecular Biology Lab (1 units)
  • BIOL 204 Principles of Organismal Biology (3 units)
  • BIOL 204L Principles of Organismal Biology Lab (1 units)

Additional Science Coursework

Additional science courses to complete 12 units with approval of a computer science adviser. These must be science courses intended for science or engineering majors with a strong emphasis on quantitative methods.  The following courses are approved, with the restrictions given at the bottom of this section.

ANTH 101, 301, 402
ASTR 101, 109, 201
BIOL 100, 100L, 101, 101L, 307, 315, 319, 324, 326, 335, 336
CHEM 100, 102, 300
ENV S 100, 301
GEOG 101, 101L, 103
GEOL 100, 101, 104, 200, 221, 300, 301, 302, 304, 305
NAT SCI 100
OCEAN 100, 320
PHYSICS 180A, 180B, 182A, 182B

You need 12 units of science, including the year-long sequence with labs, which in certain cases can involve 3 rather than 4 courses. If you take Chem 200/201 you need only one additional science course. If you take Biol 203, 203L, 204, 204L and the Chem 200 prerequisite you do not need a fourth course. The additional science courses must be from a department different from the main year-long science sequence.   (These statements refer to the requirements for the CS major, not General Education requirements.)

Lower division courses taken to satisfy major requirements may also be used to satisfy general education requirements.  If you satisfy the science requirements of the Computer Science B.S. degree without satisfying Gen. Ed. IV.A (such as with the Biology or Chemistry sequence, or by taking an extra lower division science elective), then you need not satisfy Gen. Ed. IV.A. In this case you must substitute an additional course from areas IV.B or IV.C


Upper Division Required Courses

Computer science majors must take the following courses.

  • CS 310 Data Structures — starting in Fall2021, this is replaced by a CS496 course
  • CS 320 Programming Languages
  • CS 370 Computer Architecture
  • CS 440 Social, Legal and Ethical Issues in Computing
  • CS 490 Senior Seminar
  • CS 530 Systems Programming
  • CS 560 Algorithms and Their Analysis (equivalent to the new CS460)
  • CS 570 Operating Systems (equivalent to the new CS480)

Computer science majors must take one of the following courses.

  • STAT 350A Statistical Methods
  • MATH 340 Intro to Numerical Analysis and Computing (formerly Math 541)
  • STAT 550 Probability — this is preferred (and is indeed REQUIRED for students who must follow the 2021 or later catalogs).
  • STAT 551A Mathematical Statistics
  • MATH 579 Combinatorics

Upper Division Electives

Computer Science majors must take 12 units of electives with the approval of a computer science major advisor. Possible electives are listed below, and areapproved.  All courses listed are 3 units. See the 2020-21 catalog for course descriptions (pdf).

  • CS 450 Introduction to Artificial Intelligence
  • CS 470 UNIX System Administration
  • CS 503 Scientific Database Techniques
  • CS 514 Database Theory and Implementation
  • CS 520 Advanced Programming Languages (equivalent to the new CS 420)
  • CS 524 Compiler Construction (a valid elective, but no longer offered)
  • CS 532 Software Engineering
  • CS 535 Object Oriented Programming and Design (a valid elective, but no longer offered)
  • CS 537 Programming for GIS
  • CS 540 Software Internationalization
  • CS 545 Introduction to Web Application Development (extra-cost, through Global Campus)
  • CS 546 Human Computer Interfaces (extra-cost, through Global Campus)
  • CS 547 Programming and Scripting Languages for Web Applications (extra-cost, through Global Campus)
  • CS 549 Machine Learning
  • CS 550 Artificial Intelligence
  • CS 553 Neural Networks
  • CS 556 Robotics: Math Programming and Control
  • CS 558 Computer Simulation
  • CS 559 Computer Vision
  • CS 561 Deep Learning for Natural Language Processing
  • CS 562 Automata Theory
  • CS 572 Microprocessor Architecture
  • CS 574 Computer Security
  • CS 576 Computer Networks and Distributed Systems
  • CS 577 Principles and Techniques of Data Science
  • CS 578 Wireless Networks
  • CS 580 Client-Server Programming (a valid elective, but no longer offered)
  • CS 581 Computational Linguistics — also taught as Ling581
  • CS 582 Introduction to Speech Processing
  • CS 583 3D Game Programming
  • CS 596 Advanced Topics in Computer Science (Topics vary each semester)

The student cannot earn credit for both CS 503 and CS 514; they are too similar.

The student cannot earn credit for both CS 450 and CS 550; they are too similar.

You can infer from the above list that CS 301, CS 501, CS 496 and CS 499 are not appropriate CS major electives.

Most CS 496 topics are not appropriate major electives. Check with an advisor (ahead of time!) to be sure.

One appropriate elective may be taken outside the CS department, with PRIOR approval of a CS adviser.

The statements found on this page are for informational purposes only. While every effort is made to ensure that this information is up to date and accurate, official information can be found in the university publications.


CS Prerequisite Structure

CS 2016 Required Course Outcomes Mapping

CS Program Required Course Mapping to Program SLOs