CS 101 Introduction to Computers for Non-CS Majors (4)
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.
Data types, evaluation of expressions, control statements, functions and subroutines, interactive and file I/O. Program development, documentation, 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)
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 grades of C or better, or consent of instructor. Cannot be used for CS elective credit.
CS 130 Discrete Structures (4)
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: eligibility for MAT 112 or consent of instructor.
CS 140 Introduction to Computer Science (4)
Basic concepts of Computer Science, including hardware and software. Problem-solving methods. Programming in an object-oriented language. 4 lectures/problem-solving. Prerequisite: eligibility for MAT 114 or consent of instructor.
CS 141 Introduction to Programming and Problem-Solving (4)
Design, implementation, documentation and testing of programs in an object-oriented language. Modularization and reusability of software. File I/O and exception handling. 4 lectures/problem-solving. Prerequisites: CS 140 and MAT 114 with grades of C or better, or consent of instructor.
CS 200 Special Study for Lower Division Students (1-2)
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.
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)
Abstract data types and their implementations. Linked and array-based data structures. Lists, stacks, queues. Recursion. Hashing and searching. Analysis of algorithms. 4 lectures/problem-solving. Prerequisites: CS 130 and CS 141 with grades of C or better, or consent of instructor.
CS 241 Data Structures and Algorithms II (4)
Trees, priority queues, graphs, sets, and maps. Sorting algorithms. Random access, indexed and direct files. Indexing techniques. 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)
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. Prerequisite: CS 141 with a grade of C or better, or consent of instructor.
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)
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. Prerequisites: 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)
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.
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)
Introduction to language translation. Regular expressions. Finite automata. Lexical analysis. Context-free grammars and push down automata. Syntax analysis. 4 lectures/problem-solving. Prerequisite: CS 241 with a grade of C or better, or consent of instructor.
CS 331 Design and Analysis of Algorithms (4)
Algorithm design techniques including divide-and-conquer, the greedy method, dynamic programming, backtracking, and branch-and-bound. Analysis of sorting and searching. Tractability. Complexity analysis using basic asymptotic notation. Prerequisites: CS 241 and MAT 208 with grades of C or better, or consent of instructor.
CS 352 Symbolic Programming (4)
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)
Elements of the object model. Abstraction, encapsulation, modularity and hierarchy. Structural and behavioral diagrams. Implementation and programming of system design. 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)
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 with a grade of C or better, or consent of instructor.
CS 370 Parallel Processing (4)
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. Prerequisites: CS 256 and CS 331 with grades of C or better, or consent of instructor.
CS 375 Computers and Society (4)
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, making 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 B5 or D4. Prerequisites: Completion of courses in GE areas B1-B4 and D1-D3.
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. Prerequisites: CS 241 and CS 264 with grades of C or better, or consent of instructor.
CS 400 Special Study for Upper Division Students (1-2)
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)
Concepts in programming languages. Virtual machines and abstraction. Syntax and semantics. Declarations and types. Scoping and binding. Data abstraction. Control abstraction. Run-time organization. Programming paradigms. 4 lectures/problem-solving. Prerequisites: CS 264 and CS 311 with grades of C or better, or consent of instructor.
CS 411 Compilers and Interpreters (4)
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)
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. 4 lectures/problem-solving. Prerequisite: CS 311 with a grade of C or better, or consent of instructor.
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. 4 lectures/problem-solving. Prerequisites: CS 241 and CS 365 with grades of C or better, or consent of instructor.
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. 4 lectures/problem-solving. Prerequisite: CS 241 with a grade of C or better, or consent of instructor.
Basic concepts in 2D and 3D graphics. Graphics hardware. Drawing concepts in 2D and 3D graphics. Geometric transformations. Windowing and clipping algorithms. Simple hidden line and surface removal. Color models and applications. 3D modeling. Animation. OpenGL libraries. 4 lectures/problem-solving. Prerequisites: CS 241 and CS 256 with grades of C or better, or consent of instructor.
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)
Public-key systems, digital signatures, ciphers, the Advanced Encryption Standard, access security, control of information flow. 4 lectures/problem-solving. Prerequisite: CS 241 with a grade of C or better, or consent of instructor.
CS 461, 462 Senior Project (2)(2)
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)
Technical presentations by students on current developments in computer science. Essays on seminar topics. 2 lecture discussions. Prerequisites: senior standing in computer science and a passing score on GWT.
CS 480 Software Engineering (4)
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)
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.
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)
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.