
CS 101 Introduction
to Computers for Non-CS Majors (4 units)
Basic concepts of computer hardware and
software. Computer literacy. Detailed instruction in the
use of a microcomputer software package including word processor,
spreadsheet and database manager. Computer applications,
impact of computers on society, responsibilities of the
user. 4 lectures/problem-solving. Cannot be used for CS
elective credit.
CS 125 FORTRAN
(4)
Data types, evaluation of expressions,
control statements, functions and subroutines, interactive
and file I/O. Program development, documenta-tion, and testing.
Problem analysis and algorithm design. Applications to numeric
problems and character-processing. 4 lectures/problem-solving.
Prerequisites: MAT 105 and MAT 106 with grades of C or better,
or consent of instructor.
CS 128 Introduction
to C++ (4 units)
Basic concepts of computer software and
programming. Data types, expressions, control structures,
functions, file and stream I/O. Use of pointers and dynamic
storage allocation. Structured and abstract data types.
Problem-solving techniques. 4 lectures/problem-solving.
Prerequisites: MAT 105 and 106 with grade of C or better,
or consent of instructor. Cannot be used for CS elective
credit.
CS 130 Discrete Structures
(4 units)
Fundamental topics for Computer Science,
such as logic, proof techniques, sets, basic counting rules,
relations, functions and recursion, graphs and trees. 4
lectures/problem-solving. Prerequisite: MAT 105 with a grade
of C or better, or consent of instructor.
CS 140 Introduction
to Computer Science (4 units)
Basic concepts of Computer Science, including
hardware and software. Ethical and social impacts of computing.
Problem-solving methods. Programming in an object-oriented
language. Written essay required. 4 lectures/problem-solving.
Prerequisite: Eligibility for MAT 114 or consent of instructor.
CS 141 Introduction
to Programming and Problem-Solving (4 units)
Design, implementation, documentation
and testing of programs in an object-oriented language.
Modularization and reusability of software. File I/O, graphic
user interfaces, and exception handling. lectures/problem-solving.
Prerequisite: CS 140 and MAT 114 with grades of C or better,
or consent of instructor.
CS 200 Special Problems
for Lower Division Students (1-2 units)
Individual or group investigation, research,
studies or surveys of selected problems. Total credit limited
to 4 units, with a maximum of 2 units per quarter.
CS 210 Computer Logic
(4 units)
Boolean algebra with applications to computers
and logic design. The Arithmetic Logical Unit, logical properties
of flip-flops and sequential machines. Applied projects.
4 lectures/problem-solving. Prerequisite: CS
130 with a grade of C or better, or consent of instructor.
CS 240 Data Structures
and Algorithms I (4 units)
Abstract data types. Searching and sorting.
Linked lists, stacks, queues, priority queues. Hashing and
searching. Introduction to tree structure. Analysis of algorithms.
Sequential files. 4 lectures/problem-solving. Prerequisite:
CS 130 and CS 141
with grades of C or better, or consent of instructor.
CS 241 Data Structures
and Algorithms II (4 units)
Trees, graphs, hash tables. Random access
and indexed files. 4 lectures/problem-solving. Prerequisite:
CS 240 with a grade of C or better,
or consent of instructor.
CS 245 Programming Graphical User Interfaces (4 units)
Computer interfaces. Usability of interactive systems. GUI development processes. GUI components. Input and viewing devices. Event-handling. Animation use in GUIs. Problem-solving techniques. 4 lectures. Prerequisites: CS 141 with grade of C or better, or consent of instructor.
CS 256 C++ Programming
(4 units)
Class encapsulation, inheritance, polymorphism,
object storage management, and exception handling. Standard
template library including template classes and generic
algorithms. Software reuse and object-oriented programming.
4 lectures/problem solving. Prerequisite: CS
128 or CS 141 with a grade of C
or better, or consent of instructor.
CS 264 Computer Organization
and Assembly Programming (4 units)
Von Neumann machine. Instruction set architecture.
Addressing modes. Assembly programming. Arrays and records.
Subroutines and macros. I/O and interrupts. Interfacing
and communication. 4 lectures/problem-solving. Prerequisite:
CS 210 and CS 240
with grades of C or better, or consent of instructor.
CS 299/299A/299L Special
Topics for Lower Division Students (1-4 units)
Group study of a selected topic, the title
to be specified in advance. Total credit limited to 8 units,
with a maximum of 4 units per quarter. Instruction is by
lecture, laboratory or a combination. Prerequisite: consent
of instructor.
CS 301 Numerical Methods
(4 units)
Error analysis, zeros of a function, systems
of linear equations, interpolation, Chebyshev approximation,
least squares approximation, numerical integration and differentiation,
random processes. 4 lectures/problem-solving. Prerequisites:
MAT 208 and MAT 214 and either CS 125
or CS 240 with grades of C or better,
or consent of instructor.
CS 311 Language
Translation and Automata (4 units)
Introduction to language translation. Regular
expressions. Finite automata. Lexical analysis. Context-free
grammars and push down automata. Syntax analysis. 4 lectures/problem-solving.
Prerequisites: CS241 and CS264
with grades of C or better, or consent of instructor.
CS 331 Design and Analysis
of Algorithms (4 units)
Algorithm design techniques including divide-and-conquer,
the greedy method, dynamic programming, backtracking, and
branch-and-bound. Sorting and searching. Tractability. Complexity
analysis using basic asymptotic notation. Prerequisite:
CS 241 and MAT 208 with grades of C
or better, or consent of instructor.
CS 352 Symbolic Programming
(4 units)
Languages for processing symbolic data
with emphasis on applications in artificial intelligence.
4 lectures/problem-solving. Prerequisite: CS
241 with a grade of C or better, or consent of instructor.
CS 356 Object-Oriented
Design and Programming (4 units)
Elements of the object model. Abstraction,
encapsulation, modularity and hierarchy. Algorithmic decomposition
vs. object-oriented decomposition. Class diagrams, object
diagrams, module diagrams, and process diagrams. Comprehensive
examples using a case study approach. 4 lectures/problem-solving.
Prerequisite: CS 241 with a grade of
C or better, or consent of instructor.
CS 365 Computer Architecture
(4 units)
Data representations. Computer arithmetic. Data path and control unit design.
Pipelining. Memory technology and hierarchy. I/O devices and interfacing. Multiprocessing and alternative
architectures. 4 lectures/problem-solving. Prerequisite:
CS 264 and PHY 133 with grades of C
or better, or consent of instructor.
CS 370 Parallel Processing
(4 units)
The taxonomy of concurrent and parallel
systems. Communication and synchronization, multicomputer
and multiprocessor systems. Shared-memory and message passing
programming paradigms; parallel problem solving. 4 lectures/problem-solving.
Prerequisite: CS 256 and CS 331 with a grade of
C or better, or consent of instructor.
CS 375 Computers and Society (4 units)
Impact of computers on individuals and on society. Various current uses of computers, how these have evolved, and
what the future might bring. Benefits and dangers of information technology. How the Internet and computers have fundamentally changed the way we work,
play, and interact with others. Consequent rise of new social and legal issues, makiing it essential for everyone to acquire a working understanding of
the role of computers in our daily lives. 4 lecture-discussions. Fulfills GE Synthesis requirement in Area B4 or D4. Prerequisites: Completion of
courses in GE areas B1-B3 and D1-D3.
CS 380 Computer Networks
(4 units)
Network architectures and standards. Layers
and protocols. Circuit switching, packet switching and routing.
Client-server concepts. Network security. Web computing.
Privacy, intellectual property rights and acceptable use.
4 lectures/ problem-solving. Prerequisite: CS
241 and CS 264 with grades of C
or better, or consent of instructor.
CS 400 Special Problems
for Upper Division Students (1-2 units)
Individual or group investigation, research,
studies or surveys of selected problems. Total credit limited
to 4 units, with a maximum of 2 units per quarter.
CS 408 Programming
Languages (4 units)
Concepts in programming languages. Virtual
machines and abstraction. Language processing. Declarations
and types. Data abstraction. Control abstraction. Concurrent
programming. Programming paradigms. 4 lectures/problem-solving.
Prerequisite: CS 264 and
CS 311 with grades of
C or better, or consent of instructor.
CS 411 Compilers
and Interpreters (4 units)
Language translation systems. Parsing techniques.
Run-time environments. Syntax-directed translation. Intermediate
code generation and optimization. 4 lectures/problem-solving.
Prerequisite: CS 311 with a grade of C or better,
or consent of instructor.
CS 420 Artificial Intelligence
(4 units)
Overview of the different application areas of AI. Introduction to basic AI concepts and techniques such as
heuristic search, knowledge representation, automated reasoning. In-depth discussion of several AI application areas: their specific problems, tools
and techniques. Consideration of ethical and social dilemmas posed by AI.
4 lectures/problem-solving. Prerequisite: STA
326 and CS
311 with grades of C or better, or consent of instructor.
CS 431 Operating Systems
(4 units)
Overview of operating systems. Operating
system structures. Process management. Concurrency and synchronization.
Deadlock. Processor management. Scheduling and dispatch.
Memory management. Virtual memory. Device management. File
systems. Security, privacy and acceptable use. Technical
paper required. 4 lectures/problem-solving. Prerequisite:
CS 241 and CS 365
with grades of C or better, or consent of instructor.
CS 435 Database Systems
(4 units)
Database system fundamentals. System components
and architecture. Data models, including Entity-Relationship
model, relational model, and object oriented model. Theory
of database design and data manipulation processes using
relational algebra and calculus. SQL in programming language environments. Introduction to concurrency, security, recovery, and
transaction handling. Ethical and social issues. 4 lectures/problem-solving. Prerequisite:
CS 241 with a grade of C or better,
or consent of instructor.
CS 445 Computer
Graphics (4 units)
Basic concepts in 2D and 3D graphics. Graphics hardware. Drawing concepts in 2D and 3D graphics. Geometric transformations.
Windowing and clipping algorithms. Simple hidden lines and surface removal. Color
models and applications. 3D modeling.
Animation. OpenGL libraries. 4 lectures/problem-solving. Prerequisite: CS
241 and CS256 with a grade of C or better, or consent of instructor.
CS 450 Computability
(4 units)
Abstract models of computation, including Turing machines. Church-Turing thesis. Decidability. Theoretical and
practical capabilities and limitations of computing machines. 4 lectures/problem-solving.
Prerequisite: CS
311 with a grade of C or better, or consent of instructor.
CS 460 Secure Communication
(4 units)
Public-key systems, digital signatures,
ciphers, the Data Encryption Standard, access security,
control of information flow. 4 lectures/problem-solving.
Prerequisite: senior standing in Computer Science and CS
301 with a grade of C or better, or consent of instructor.
CS 461, 462 Senior
Project (2 units)(2 units)
Selection and completion of a project under
faculty supervision. Projects typical of problems which
graduates must solve in their fields of employment. Project
results are presented in a formal report. Minimum of 120
hours total time.
CS 463 Undergraduate
Seminar (2 units)
Technical presentations by students on
current developments in computer science. Seminar discussions
of ethical, social and economic impacts of technology. Essays
on seminar topics. 2 lecture discussions. Prerequisite:
senior standing in computer science and a passing score
on GWT.
CS 480 Software Engineering
(4 units)
Models of the software development process
and metrics. Software requirements and specifications. Methodologies,
tools and environments. Human-computer interaction. Software
design and architecture. Project management. Cost estimation.
Testing and validation. Maintenance and evolution. 4 lectures/problem-solving.
Prerequisite: CS 331 with a grade of
C or better, or consent of instructor.
CS 481 Software
Engineering Practice (4 units)
Team and project-oriented software engineering.
Practice in the hands-on process of software production
and quality control. Coverage of advanced topics such as
embedded systems, real-time systems, and usage-oriented
software design. Documentation and management methods for
analysis, design, implementation and testing phases of software
production. Survey and usage of CASE tools. Focus on issues
of system integration and engineering, testing, and maintenance.
Prerequisites: CS 435 and CS
480 with grades of C or better, or consent of instructor.
CS 490 Honors (4 units)
In-depth study of a topic of current interest to computer
science. Students will be expected to perform individual
research and projects and present their results in class.
Enrollment is limited. 4 lectures/problem-solving. Prerequisite:
consent of instructor.
CS 499/499A/499L Special
Topics for Upper Division Students (1-4 units)
Group study of a selected topic, the title
to be specified in advance. Total credit limited to 8 units,
with a maximum of 4 units per quarter. Instruction is by
lecture, laboratory or a combination. Prerequisite: consent
of instructor.
To Top