COMPUTER SCIENCE (CS)

CS 001  INTRODUCTION TO COMPUTERS AND PROGRAMMING  
3 unit  

Transfer Credit: CSU; UC

C-ID: COMP 112

Entry-level programming, designed for students with no prior programming experience. History of computing, basic computer operation, the notion of an algorithm, variable definitions, expressions, input/output, branches, loops, functions, parameters, selection, iterative techniques, arrays, strings. For non-engineering and non-science majors or for students considering taking CS 002 but needing additional preparation. Total of 36 hours lecture and 54 hours laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 002  FUNDAMENTALS OF COMPUTER SCIENCE I  
4 unit  

Transfer Credit: CSU; UC

C-ID: COMP 122

Prerequisite(s): MATH 008 or MATH 009

Problem solving through structured computer programming of algorithms using the basics of the C++ object-oriented language. Topics include: variables, expressions, input/output (I/O), branches, looping constructs, functions, argument passing, single and double dimensional arrays, strings, file I/O, C++ vectors, software design principles, testing, and debugging techniques. Programming projects, at least 600 lines of code. For STEM Majors, but open to all qualified students. Total of 54 hours lecture and 72 hours laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 003A  FUNDAMENTALS OF COMPUTER SCIENCE II (C++)  
4 unit  

Transfer Credit: CSU; UC

Prerequisite(s): CS 002

Second programming course in the series of Introduction to Computer Science courses. Continuation of the C++ language including: classes, structures and unions, overloaded operators and friend functions, pointers and dynamic arrays, function pointers, functors, abstract data types and container objects polymorphisms, inheritance and multiple inheritance, templates and the Standard Template Library, exception handling, namespaces and separate compilation, recursion, creation of libraries, advanced software design, testing, and debugging techniques. May be taken concurrently with CS 003B. For STEM Majors: Computer Science, Computer Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 72 hours laboratory.

Grade Mode: Audit, Letter Grade
CS 003B  FUNDAMENTALS OF COMPUTER SCIENCE (JAVA)  
4 unit  

Transfer Credit: CSU; UC

C-ID: COMP 122

Recommended Preparation: CS 001

Programming course in JAVA. Topics include Data types, variables, control structures, GUI and Object-Oriented Design, user-defined methods, method overloading, user-defined classes, and abstract data types, accessor and mutator methods, collections, single and multidimensional arrays, polymorphisms, inheritance, exception handling, recursion, searching and sorting algorithms, creation of libraries, advanced software design, testing, and debugging techniques web-based applets. May be taken concurrently with CS 002 or CS 003A or CS 003C. For STEM Majors: Computer Science, Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 54 hours laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 003C  FUNDAMENTALS OF COMPUTER SCIENCE (PYTHON)  
4 unit  

Transfer Credit: CSU; UC

Recommended Preparation: CS 001

Programming course in Python. Topics include data types, variables, control structures, Python Objects and Oriented Design, standard and advanced mathematical libraries, tool-chain use and Python Frameworks, user-defined classes, and abstract collections, single and multidimensional arrays, Python lists, tuples, collections, and dictionaries. Recommended for STEM Majors: Computer Science, Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 54 hours laboratory.

Grade Mode: Letter Grade, Pass/No-Pass
CS 006  INTRODUCTION TO APPLIED LOGIC DESIGN  
4 unit  

Transfer Credit: CSU; UC

Prerequisite(s): CS 002

Characteristics of digital systems, truth functions, Boolean algebra, switching devices, minimization of Boolean functions, single and multiple output circuits, Mealy and Moore networks. Karnaugh maps, state tables. Design and optimization of combinational circuits and sequential circuits. Recommended completion of or concurrent enrollment in MATH 022. For Computer Science, Computer Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 54 hours laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 008  FUNDAMENTALS OF COMPUTER SCIENCE III - DATA STRUCTURES  
4 unit  

Transfer Credit: CSU; UC

C-ID: COMP 132

Prerequisite(s): CS 003A
Recommended Preparation: Proficiency in the C++ programming language at the intermediate/advanced level

Third programming course in the series of introduction to computer science courses. Data structure concepts in designing and implementing algorithms taught in the C++ programming language. Topics include: recursion, lists, arrays, binary trees, b-trees, AVL trees, heaps, stacks, queues, priority queues, hashing and graphs. Searching, sorting and merging algorithms. Advanced concepts and manipulation of C++ pointers, pointers to functions in C++ class members, functors and advanced pointer arithmetic. At least two programming assignments of 1,500 to 2,500 lines of C++ code will be required of each individual student. At least one two-student team project of 3,000 to 4,000 lines of code will be required. For STEM Majors: Computer Science, Computer Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 72 hours laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 018  UNIX SCRIPTING WITH BASH  
4 unit  

Transfer Credit: CSU; UC

Prerequisite(s): CS 002

Shell scripting, script parameters, looping, piping, background processing, pattern manipulation, functions, subroutines, process forking, major BASH utilities, AWK scripting. For Computer Science, Computer Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 72 hours laboratory.

Grade Mode: Audit, Letter Grade
CS 020  INDEPENDENT STUDY  
1 unit  

Transfer Credit: CSU

Prerequisite(s): Completion of any three other CS courses

Individual projects; problem formulation, design, documenting, programming and testing. Total of 54 hours laboratory.

Grade Mode: Letter Grade, Pass/No-Pass
CS 021  INTRODUCTION TO PROGRAMMING CONCEPTS AND METHODOLOGIES  
3 unit  

Transfer Credit: CSU

C-ID: COMP 112

Entry-level programming, designed for students with no prior programming experience. History of computing, basic computer operation, the notion of an algorithm, variable definitions, expressions, input/output, branches, loops, functions, parameters, selection, iterative techniques, arrays, strings. For non-engineering and non-science majors or for students considering taking CS 002 but needing additional preparation. Total of 36 hours lecture and 54 hours laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 031  INTRODUCTION TO DATA SCIENCE  
4 unit  

Transfer Credit: CSU; UC

Basic concepts and computer programming skills and mathematical inference , in combination with the hands-on study of real-world datasets, including economic data, document collections, spatial data, and social networks, using Python language. Discussion of the social problems surrounding data processing, and design. Total of 54 hours of lecture and 54 hours of laboratory.

Grade Mode: Audit, Letter Grade, Pass/No-Pass
CS 033  ADVANCED JAVA PROGRAMMING AND ALGORITHM WITH DATA STRUCTURES  
3 unit  

Transfer Credit: CSU; UC

C-ID: COMP 132

Prerequisite(s): CS 003B

Builds on the topics covered in the fundamentals computer science course and offers practical experience in writing larger computational systems using Java across many major programming projects. Students can research advanced programming techniques like encapsulation, abstract data types, interfaces, algorithms, and complexity and data structures including stacks, queues, priority queues, heaps, linked lists, binary trees, and hash tables. Total of 36 hours lecture and 54 hours laboratory.

Grade Mode: Letter Grade, Pass/No-Pass
CS 034  ADVANCED PYTHON PROGRAMMING AND BASIC DATA STRUCTURES  
3 unit  

Transfer Credit: CSU; UC

C-ID: COMP 132

Prerequisite(s): CS 031 or CS 003C or CS 002 or CIS 012

Builds on the computational concepts covered in the Fundamentals of computer science course and introduces students to abstraction techniques. Provides advanced topics and algorithms in Python language, such as recursion, higher-order functions, function composition, object-oriented programming, interpreters, classes, and elementary data structures such as arrays, lists, and linked lists will all be covered in Python. Total of 36 hours of lecture and 54 hours of laboratory.

Grade Mode: Letter Grade, Pass/No-Pass
CS 038  INTRODUCTION TO SOFTWARE ENGINEERING  
5 unit  

Transfer Credit: CSU; UC

Prerequisite(s): CS 008

Introduction to the concepts, methods, and current practice of software engineering and the software life cycle. Study of large-scale software production; software life cycle models as an organizing structure; principles and techniques appropriate for each stage of production. Laboratory work involves a group project illustrating these elements. Total of 90 hours lecture.

Grade Mode: Audit, Letter Grade
CS 045  DISCRETE STRUCTURES WITH COMPUTER SCIENCE APPLICATIONS  
5 unit  

Transfer Credit: CSU; UC

Prerequisite(s): CS 002

Specification, development and analysis of algorithms. Sets, relations and functions. Logic and mathematical structures used in computer science. Introduction to combinatorics. Programming projects to exemplify these concepts. For Computer Science, Computer Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 72 hours lecture 54 hours laboratory.

Grade Mode: Audit, Letter Grade
CS 066  ASSEMBLY LANGUAGE PROGRAMMING FOR THE SCIENCES AND MATHEMATICS  
4 unit  

Transfer Credit: CSU; UC

Prerequisite(s): CS 002

Number systems and their rules for arithmetic; basic computer organization concepts; register manipulation, pseudocode development; instruction formats, addressing modes, parameter passing using a stack frame; assemblers and linkage editors; modular program design and development. For Computer Science, Computer Engineering, Mathematics, and Science majors, but open to all qualified students. Total of 54 hours lecture and 54 hours laboratory.

Grade Mode: Audit, Letter Grade
CS 080  SEMINAR IN COMPUTER SCIENCE AND COMPUTER ENGINEERING  
2 unit  

Transfer Credit: CSU

Introduces students to current topics, career paths, and current research topics within Computer Science and Computer Engineering disciplines. For Computer Science, Computer Engineering, Mathematics, and Science majors but open to all qualified students. Total of 36 hours lecture.

Grade Mode: Audit, Pass/No-Pass
CS 137  R PROGRAMMING FOR DATA SCIENCE  
2 unit  

Introduction to computer programming with a focus on data science tools and techniques using the R programming language. Topics include basic data types, variables, control flow, functions, vectors, matrices, lists, data frames, data importing, functional programming, version control, data wrangling, data visualization, and data modeling. Programming projects. Total of hours 18 lecture and 54 hours laboratory.

Grade Mode: Letter Grade, Pass/No-Pass