This page describes the Computer Science major requirements for students starting SDSU [or students declaring a new CS major] in the time period starting with Fall 2021 and on into the future. While the 2021 catalog requirements are described here, it is anticipated that it will apply to future catalog years as well. See Fall 2021 New CS Major FAQs for recent changes to the CS program (the 2021 rules will apply to all newer students).

To earn a Bachelor of Science degree in Computer Science at San Diego State University, students must also satisfy the university-wide graduation requirements listed in the 2021-22 Graduation Requirements section of the General Catalog. [But note that if you changed your major after arriving at SDSU, your catalog year for the major may be different than the catalog year for other requirements (such as General Education).] The 2021-22 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.

The 2021 degree requirements are divided into three areas:

Lower Division Requirements, Upper Division Required Courses, Upper Division Electives

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 150 Introduction to Computer Programming (3 units)
CS 150L Introduction to Computer Programming Laboratory (1 unit, taken concurrently; choose any convenient section)
CS 160 Intermediate Computer Programming (3 units)
CS 160L Intermediate Computer Programming Laboratory (1 unit, taken concurrently; choose any convenient section)
CS 210 Data Structures (3 units)
CS 240 Machine Organization and Assembly Language (3 units; equivalent to the older CS237)
CS 250 Introduction to Software Systems (3 units)
MATH 150 Calculus I (4 units)
MATH 151 Calculus II (4 units)
MATH 245 Discrete Mathematics (3 units)
MATH 254 Introduction to Linear Algebra (3 units)
PHYS 195 Principles of Physics (3 units)
PHYS 195L Principles of Physics Laboratory (1 unit)
PHYS 196 Principles of Physics (3 units)
PHYS 196L Principles of Physics Laboratory (1 unit)
STAT 250 Basic Statistical Methods (3 units) OR STAT 119 Elementary Statistics (3 units, acceptable but NOT RECOMMENDED)

Note: CS107/CS108 from community colleges or earlier SDSU catalogs (6 units) meets the requirement for CS150/160 and CS150L/160L (8 units)

Upper Division Required Courses

Computer Science majors must take the following courses (3 units each, 18 units total).

CS 370 Computer Architecture
CS 420 Advanced Programming Languages (Formerly CS 520)
CS 450 Introduction to Artificial Intelligence
CS 460 Algorithms (Formerly CS 560)
CS 480 Operating Systems (Formerly CS 570)
STAT 550 Applied Probability

Upper Division Electives

18 units of courses are required from courses listed under the following areas A, B, C and D with no more than six units from area D. (All courses are 3 units each, unless noted.)

A. Computer Systems

CS 470 UNIX System Administration
CS 530 Systems Programming
CS 532 Software Engineering
CS 545 Introduction to Web Application Development
CS 546 Human Computer Interfaces
CS 562 Automata Theory
CS 572 Microprocessor Architecture
CS 574 Computer Security
CS 576 Computer Networks and Distributed Systems
CS 578 Wireless Networks

B. Intelligent Systems

CS 549 Machine Learning
CS 553 Neural Networks
CS 556 Robotics
CS 559 Computer Vision
CS 561 Deep Learning for Natural Language Processing
CS 583 3D Game Programming

C. Data Sciences

CS 503 Scientific Database Techniques
CS 514 Database Theory and Implementation
CS 537 Programming for GIS
CS 558 Computer Simulation
CS 577 Principles and Techniques of Data Science
CS 581 Computational Linguistics
CS 582 Introduction to Speech Processing

D. Special Courses

CS 497 Undergraduate Research Seminar
CS 498 Undergraduate Honors Thesis
CS 596 Advanced Topics in Computer Science (1-4 units)

Note: If you happen to have taken (upper-division) CS courses that are no longer in the catalog, some of these might also be used as electives, so check with an advisor. Among the courses that would NOT qualify are: CS 301, CS 440, CS 501, CS 499, most CS 496 courses, and CS 310 (though CS 310 meets the requirement for CS 210.)

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

Credit cannot be earned for both CS 503 and CS 514; they are too similar.

Credit cannot be earned for both CS 450 and CS 550; they are too similar.

CS Prerequisite Structure

CS Undergraduate Curriculumn Fall 2021 diagram. Complex diagram with over 20 arrows and courses mapping to each other. Please contact the CS Department for more details.