Courses

Undergraduate Courses

No prerequisites

3 units
An introduction to computer programming for non majors. Topics include interdisciplinary computing applications, computer systems, algorithm design, and programming language control structures. Programming projects in the Python programming language.
Equivalent Quarter Course: CS 1160
Grading: A-F or CR/NC

No prerequisites; Co-requisites: CS 100

1 unit
This course develops foundational skills in mathematics and quantitative reasoning to support successful completion of CS 100: Programming For Everyone.
Equivalent Quarter Course: None
Grading: A-F or CR/NC

Prerequisite: Mathematics/QR Placement QR Category I or II, or successful completion of GE area B4

4 units
An introduction to computer programming for computer science majors. Topics include problem solving, algorithms, basic control structures, and program design. Programming projects in Python or other high level programming language.
Equivalent Quarter Course: CS 2360
Grading: A-F only

No prerequisite

3 units
Introduction to computer applications and the role of computer technology in society. Introduction to word processing, spreadsheet applications, presentation software, basic database management, and website development.
Equivalent Quarter Course: CS 1020
Grading: A-F or CR/NC

Prerequisite: CS 100

3 units
Further development of programming and problem solving skills, debugging techniques and testing. Topics include elementary data structures, object oriented design, and searching, sorting, and graph algorithms. Programming projects in the Python programming language.
Equivalent Quarter Course: None
Grading: A-F or CR/NC

Prerequisite: CS 101 w/ C- or better

4 units
Further development of programming and problem solving skills in the C++ programming language. Topics include Abstract Data Types (ADTs), data structures (stacks, queues, trees), and object oriented design. Sorting and searching algorithms.
Equivalent Quarter Course: CS 2370
Grading: A-F

Prerequisite: Math 130 w/ C- or better

3 units
Propositional logic and predicate calculus, set theory, inference, induction, recursion, divide-and-conquer, enumeration, graphs and topology, trees, binary trees and traversals, Boolean algebra, logic gates, asymptotic notation and algorithm analysis, combinatorics, cryptography, discrete probability, computational modeling.
Equivalent Quarter Course: Math 2150
Grading: A-F

Prerequisite: CS 100 or CS 101, w/ grade C- or better

3 units
Propositional logic and predicate calculus, set theory, inference, induction, recursion, divide-and-conquer, enumeration, graphs and topology, trees, binary trees and traversals, Boolean algebra, logic gates, asymptotic notation and algorithm analysis, combinatorics, cryptography, discrete probability, computational modeling.
Equivalent Quarter Course: CS 2430
Grading: A-F

Prerequisite: None

3 units; G.E./G.R. Area D1-3
Social impact and ethical aspects of computing, information privacy, security, social networking, software piracy, system reliability, human-computer interaction, net neutrality, workforce displacement, the Digital Divide, societal dependence on computing, the Internet as a democratic instrument of social change, and cyberethics.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: None

3 units
Technology and design of web systems and services for non majors. Human factors issues, computer-human interfaces design, web system design, development and testing.  Website development using multimedia graphics, image, and animation tools. Topics include e-commerce solutions and networking fundamentals.
Equivalent Quarter Course: CS 2020
Grading: A-F or CR/NC

Prerequisites: CS 100, CS 200 & G.E. Areas A1, A2, A3, and B4 with C- or better

3 units; G.E./G.R. Area B6
Further development of programming and problem solving skills with emphasis on data structures. Topics include stacks, queues, doubly-linked/circularly-linked lists, trees, heaps, priority queues and graphs. Algorithmic analysis and asymptotic notation; binary search, heapsort, merge sort, quicksort, and radix sort.
Equivalent Quarter Course: None
Grading: A-F or CR/NC

Prerequisites: CS 201 and CS 211

3 units
Design and implementation of abstract data structures including stacks, queues, doubly-linked and circularly-linked lists, binary search trees, heaps, priority queues and graphs; algorithmic analysis and asymptotic notation; binary search, heapsort, merge sort, quicksort, and radix sort.
Equivalent Quarter Course: CS 3240
Grading: A-F

Prerequisites: CS 201 and CS 221

3 units
Survey and comparison of a variety of computer languages and their use in particular domains. Topics include formal descriptions of syntax and semantics, control structures, data representation, design and implementation of imperative and functional languages. Programming projects in several languages.
Equivalent Quarter Course: CS 3120
Grading: A-F

Prerequisites: CS 211 and CS 221 with grade C- or better

3 units
Logical design of digital computers. Boolean algebra, combinational and sequential circuits, computer arithmetic, memories, integrated circuits, control processors, input/output.
Equivalent Quarter Course: CS 3430
Grading: A-F

Prerequisites: CS 100

3 units
Website development with an emphasis on data collection, data visualization, real-time data interpretation, and online dashboards. Topics covered include HTML, CSS, web scripting, web content management systems, accessing online data sources, and web visualization tools such as D3, chart.js, and plotpy.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: CS 301

3 units
Website development emphasizing presentation layer with client side and server side technologies. Topics covered include HTML, CSS, media, JavaScript, CGI server-side programming.
Equivalent Quarter Course: CS 3520
Grading: A-F

Prerequisites: CS 200

3 units
Relational and hierarchical data models, database system architecture, and approaches for managing large volumes of social and health sciences data.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: Department consent and minimum GPA of 2.0

1-3 units
Introduction to the internship experience; integration of the academic program with career aspirations; emphasis on internship readiness and preparation for professional success.
Equivalent Quarter Course: None
Grading: CR/NC

Prerequisites: Math 130

3 units
An introduction to programming for science majors. Emphasis on scientific applications and data manipulation using Python and associated scientific libraries.
Equivalent Quarter Course: None
Grading: A-F or CR/NC

Prerequisites: CS 301 with C- or better

3 units
Concepts and issues in the development of large software projects. Approaches to requirements, analysis, design, implementation, testing, and maintenance of high-quality software. Systems for software design, management, documentation and testing such as UML, GIT, Javadoc and Junit. Programming in Java. 
Equivalent Quarter Course: CS 4310
Grading: A-F

Prerequisites: CS 211 and Math 225, both with C- or better

3 units
Formal models of computation, languages and computability, deterministic and non-deterministic finite automata, regular expressions, pushdown automata, context-free languages, Pumping Lemmas, Turing machines, decidability, reducibility, and undecidable problems.
Equivalent Quarter Course: CS 4170
Grading: A-F

Prerequisites: CS/Math 211 and CS 301

3 units
Asymptotic notation, analysis framework, and efficiency classes, recurrence relations, algorithmic design methodology, searching and sorting algorithms, string matching, heaps and priority queues, doubly-linked and circularly-linked lists; trees and balancing; graph algorithms including breath-first and depth-first search, and hashing.
Equivalent Quarter Course: CS 4245
Grading: A-F

Prerequisites: CS 201 with C- or better

3 units
Principles of operating system design and implementation. Concurrent processes, interprocess communication, job and process scheduling, deadlock. Issues in memory management (virtual memory, segmentation, paging) and auxiliary storage management (file systems, directory structuring, protection mechanisms). Performance issues. Programming projects.
Equivalent Quarter Course: CS 4560
Grading: A-F

Prerequisites: CS 301 with C- or better

3 units
Data models, data description and data manipulation languages. Schemas, query processing, database system architecture. Integrity, concurrency, and security techniques. Implementation of data models in a real database.
Equivalent Quarter Course: CS 4660 or CS 4665
Grading: A-F

Prerequisites: CS 301

3 units
Computer network analysis and design. Fundamentals of data communications: media, transmission, encoding, error detection and handling, link control, packet switching. Network architecture and topology. Network, Transport, and Application layer protocols, services, design issues and performance. Programming assignments using TCP/IP.
Equivalent Quarter Course: CS 3590 or CS 4590
Grading: A-F

Prerequisites: CS 301 with C- or better

3 units
Current practices and trends in software design, development, and deployment of mobile applications and systems. Topics include modern mobile device application development and related sensor and system technologies. 
Equivalent Quarter Course: CS 4521
Grading: A-F

Prerequisites: CS 301 with C- or better

3 units
Survey of computer graphics hardware, algorithms, techniques, and standards. Software development using current graphic frameworks.
Equivalent Quarter Course: CS 4840
Grading: A-F

Prerequisites: CS 301 with C- or better

3 units
Intelligence as computation, rational agent architecture, state spaces, breadth-first and depth-first search, heuristic search, A* algorithm, game playing, hill-climbing and optimization, neural networks, knowledge representation, production systems, machine learning techniques, introduction to Lisp and Scheme. Programming projects.
Equivalent Quarter Course: CS 4810
Grading: A-F
3 units
Intro to machine learning concepts and algorithms, supervised learning for classification and regression, unsupervised learning, reinforcement learning. Topics such as VC dimension, central limit theorem, gradient descent, SVM, deep neural networks, GANs, generative AI. Prerequisites: CS 401 or CS 413.
Grading: A-F
3 units
Introduction to Natural Language Processing and Deep Learning. Topics such as Natural Language Processing tasks; Fundamental concepts of Deep Learning; Deep Learning models for Natural Language Processing; Large Language Models. Applications such as text classification, machine translation, text generation. Prerequisites: STAT 316 and CS 311.
Grading: A-F

Prerequisites: CS 301 with C- or better

3 units
Fundamentals of network and computer security. Security services and mechanisms, models, cryptography, network and wireless security, digital forensics, security threats and vulnerabilities, risk analysis and management models, security attacks and policies, and legal and regulatory issues. Programming projects.
Equivalent Quarter Course: CS 4525 or CS 4526 or CS 4527
Grading: A-F

Prerequisites: Department consent and minimum of 2.0 GPA

1-4 units
Independent study in computer science under the supervision of a member of the department faculty.
Equivalent Quarter Course: CS 4900
Grading: A-F or CR/NC

Prerequisites: CS 301 with C- or better

3 units
Selected relevant subjects in Computer Science technologies and applications.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: Department consent, minimum 2.0 GPA, junior/senior standing and the following: CS 101, CS 201, CS 211, CS 221, CS 230, Math 130, Math 131, Math 225, PHYS 135

1-3 units
Supervised work experience in which student completes academic assignments integrated with off-campus paid or volunteer activities.
Equivalent Quarter Course: CS 3898
Grading: CR/NC

Graduate Courses

Prerequisites: CS 401 and CS 413; or M.S. Computer Science major

3 units
Design, analysis, and implementation of algorithms; asymptotic notation and efficiency classes; recurrence relations; advanced searching and sorting techniques; string matching; heaps and priority queues; linked structures; balanced and threaded trees; graph algorithms; heuristics; intractable problems; other advanced techniques. Programming projects.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: CS 401 and CS 601

3 units
Advanced concepts of object-oriented design; software development life-cycle models; software modeling; requirements gathering and analysis; pattern-based design of software; patterns as re-usable architecture; implementation of layered architecture code; software testing. Programming projects and review of literature.
Equivalent Quarter Course: CS 6310
Grading: A-F

Prerequisites: CS 301 or CS 601

3 units
The study of data coding and cryptography. Topics may include: information content, Markov models, data compression codes, error correction and detection codes, symmetric and asymmetric key exchange, and other cryptographic techniques. Programming assignments and review of literature.
Equivalent Quarter Course: CS 6715 and CS 6520
Grading: A-F

Prerequisites: CS 421 or CS 621

3 units
Parallel programming fundamental principles and programming techniques. Topics may include: parallel architectures, principles of parallel algorithm design, programming shared-address space systems and scalable systems, non-numerical and numerical algorithms, GPU Programming, Visualization tools. Programming projects and review of literature.
Equivalent Quarter Course: CS 6575
Grading: A-F

Prerequisites: CS 411 or M.S. Computer Science major

3 units
Alphabets, strings and languages, regular languages and finite automata, context-free languages, grammars, context-sensitivity, Turing machines and Turing-Completeness, decidability, Church-Turing thesis, reducibility, time and space complexity classes, P versus NP, NP-Completeness and NP-Hard problems.
Equivalent Quarter Course: CS 6260
Grading: A-F

Prerequisites: CS 411 or CS 611

3 units
Overview of compilation, lexical analysis, regular expressions, context-free grammars, top-down parsing and bottom-up parsing, semantic analysis, attribute grammars, ASTs, type-checking, intermediate representations, and constructing simple compilers. Additional topics may include register allocation, optimization, and code generation. Programming projects.
Equivalent Quarter Course: CS 6110
Grading: A-F

Prerequisites: CS 421 or M.S. Computer Science major

3 units
Advanced concepts in operating systems theory and practice. Topics may include process synchronization, concurrency, resource management, security, performance evaluation, analytic models, human interfaces, and implementation issues. Programming assignments using open-source operating systems, and review of literature.
Equivalent Quarter Course: CS 6560
Grading: A-F

Prerequisites: CS 421 or CS 621

3 units
Cloud computing theory and protocols. Topics may include: Infrastructure/Platform/Software - as-a-service, cloud OS, architectures including Federated Clouds, principles of Virtualization platforms, security / privacy issues, Internet of things / data-intensive computing. Programming projects and review of literature.
Equivalent Quarter Course: CS 6593
Grading: A-F

Prerequisites: CS 421 or CS 621

3 units
Analysis and design of computer architecture. Topics may include: Processor: instruction set principles, building data path, Instruction Pipelining: data/control hazards, Memory Hierarchy: caches, virtual memory, data/thread-level parallelism, multicore and distributed processors.  Programming assignments and review of literature.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: CS 431 or CS 631

3 units
Design issues in current database systems. Topics may include: data models, storage management and access, distributed systems, query languages and query optimization, database integrity and security, encryption and decryption, concurrency control. Programming projects and review of literature.
Equivalent Quarter Course: CS 6660
Grading: A-F

Prerequisites: CS 441 or CS 621

3 units
Advanced concepts in computer network theory and practice. Specific emphasis on protocols, services, design issues and performance. Topics may include routing, software-defined networks, data-centers, overlay networks, and wireless technologies. Programming assignments using TCP/IP, and review of literature.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: CS 441 or CS 621

3 units
Distributed Systems theory and semantics. Topics may include: temporal logic, proof of program properties, time (logical clocks), state (distributed snapshots), fault-tolerance, replication, rollback recovery, processes and threads, Remote Procedure Calls, file systems. Programming projects and review of literature.
Equivalent Quarter Course: CS 6580
Grading: A-F

Prerequisites: CS 441 or CS 641

3 units
The practice of network analysis and design. Topics may include estimation of traffic demand, requirements specification, topology design, network cost analysis, routing, wired and wireless technologies, design tools, and fault tolerance. Programming assignments and review of literature.
Equivalent Quarter Course: CS 6591
Grading: A-F

Prerequisites: CS 351 and CS 401; or M.S. Computer Science major

3 units
Current practices and trends in software design, development, and deployment of web-based systems, with particular emphasis on e-commerce. Projects incorporating the latest technologies and techniques used by the Internet community. Review of literature.
Equivalent Quarter Course: CS 6320
Grading: A-F

Prerequisites: CS 411 or CS 611

3 units
Intelligence, rational agent design, state-spaces, search, heuristic functions and A*, game playing, knowledge representation, formal logic, reasoning, expert systems, machine learning paradigms including neural networks and genetic algorithms, introduction to Lisp and Scheme. Programming projects and review of literature.
Equivalent Quarter Course: CS 6810
Grading: A-F

Prerequisites: CS 401 or CS 601

3 units
Mathematical and algorithmic approaches to the problem of computing properties of the 3-D world from one or more digital images. Topics may include imaging, image processing, feature detection, calibration, stereopsis, motion, object recognition, tracking.  Programming projects and review of literature.
Equivalent Quarter Course: CS 6825
Grading: A-F

Prerequisites: CS 401 or CS 651

3 units
Human-centered software design, interface paradigms, prototyping, performance models, usability testing, software logging, user observation, interaction styles, aesthetics, diversity and engagement, HCI in multimedia systems, collaboration, and communication systems. Programming projects and review of literature.
Equivalent Quarter Course: CS 4835
Grading: A-F

Prerequisites: Math 230 and Math 310; or M.S. Computer Science major

4 units
Introduction to machine learning with an emphasis on the underlying mathematics. Topics such as VC dimension, central limit theorem, gradient descent. Applications such as SVM and neural nets.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: CS 471 or M.S. Computer Science major

3 units
Security principles, scope and vulnerabilities of Cyberspace, the problem of identity, privacy, malicious software, data security, cryptography, authentication in distributed systems, e-mail security, network security, wireless security, offensive security.  Programming assignments and review of literature.
Equivalent Quarter Course: CS 6525
Grading: A-F

Prerequisites: CS 401 or CS 601

3 units
Digital Signal Processing techniques and applications. Topics may include: Discrete Time Signals and Systems, Discrete Time Networks, Input-Output Relationships, Discrete Time Fourier Transform, Discrete Fourier Transform, IIR and FIR filter design, Power Spectrum Computation.  Programming projects and review of literature.
Equivalent Quarter Course: CS 6752
Grading: A-F

Prerequisites: CS 401 or CS 601

3 units
Introduction to construction and analysis of models by computer simulation. Study of discrete and/or continuous simulation languages. Applications to modeling technological, biological, industrial, and physical processes.  Programming projects and review of literature.
Equivalent Quarter Course: CS 6870
Grading: A-F

Prerequisites: Department consent and minimum 3.0 GPA

3 units
Selected research topics agreed on between the student and the faculty supervising the course. A plan of work completion must be approved prior to proceeding with the project. Progress reports, and a final report are required.
Equivalent Quarter Course: CS 6900
Grading: A-F

Prerequisites: Department consent, minimum 3.0 GPA, and advancement to candidacy

3 units
A synthesis of important areas of Computer Science, culminating in comprehensive examinations covering three required courses in the Master’s degree: Advanced Algorithms, Theory of Computation, and Operating System Design.
Equivalent Quarter Course: CS 6901
Grading: CR/NC

Prerequisites: Department consent, minimum 3.0 GPA, and advancement to candidacy

1-4 units
Implementation of a substantial project in an advanced area of computer science. Supervision by a departmental committee, at least one of whom must be a California State University Â鶹ÃÛÌÒAV Computer Science faculty member. Scientific literature research, a written report and an oral presentation is required.
Equivalent Quarter Course: CS 6899
Grading: CR/NC

Prerequisites: CS 401 or CS 601

3 units
Selected relevant subjects in Computer Science, either as a traditional course or as a survey of new literature.  Programming assignments required.
Equivalent Quarter Course: None
Grading: A-F

Prerequisites: CS 441 or CS 661

3 units
Selected relevant subjects in Computer Networks, either as a traditional course or as a survey of new literature.  Programming assignments required.
Equivalent Quarter Course: None
Grading: None

Prerequisites: Department consent, minimum 2.0 GPA., and post-baccalaureate standing.

1-3 units
Advanced supervised work experience in which student completes academic assignments integrated with off-campus paid or volunteer activities.
Equivalent Quarter Course: None
Grading: CR/NC

Prerequisites: Department consent, minimum 3.0 GPA, and advancement to candidacy

1-6 units
Development and completion of a formal research paper in an advanced area of computer science for submission to the department, which specifies its format. Supervision by a departmental committee, at least one of whom must be a California State University Â鶹ÃÛÌÒAV Computer Science faculty member. Scientific literature research, a written report and an oral presentation is required.
Equivalent Quarter Course: CS 6909
Grading: A-F