Computer Science
COMSC 020 Introduction to Programming Concepts and Methodologies 3 Units
This course is an introduction to basic computer programming concepts using both the procedural and an object-oriented paradigm. It is intended for non-computer science majors, and for students interested in COMSC 075 who would like a more gradual entry into computing fundamentals. Topics include hands-on practice with software engineering tools, simple programs, variables, control structures, functions, input/output, and introduction to abstraction. Specifications, adherence to style guidelines, and the importance of testing to ensure that programs are usable, robust, and modifiable, will be addressed throughout the course. (C-ID COMP 112)
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Recommended: Basic knowledge of computer usage and keyboarding skills
Advisory Level: Read: 3 Write: 3 Math: 2
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 028 Foundations of Data Science 4 Units
This course introduces students to the field of Data Science through computational and inferential thinking. Given data arising from some real-world problem, students will learn the fundamental skills in computer programming and statistical inference needed to analyze that data so as to understand and solve that problem. The course also addresses social issues surrounding data analysis, such as privacy, security, and design.
Lecture Hours: 3 Lab Hours: 3 Repeatable: No Grading: L
Recommended: A working knowledge of Precalculus Algebra, equivalent to that covered in MATH 021 or MATH 025. Previous knowledge of computer programming (such as that covered in COMSC 020) is highly recommended.
Advisory Level: Read: 3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 041 Programming Concepts and Methodology I 3 Units
This course is an introduction to computer science using the C++ programming language. Students will write computer programs that include control structures, iteration, methods and argument passing, and classes. Problem solving, documentation, programming style, and program design and development are addressed throughout the course. (C-ID COMP 122)
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Prerequisite: MATH 021 and MATH 022, or MATH 025 all with C or better
Recommended: COMSC 020
Advisory Level: Read: 3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 042 Programming Concepts and Methodology II 3 Units
In this course, students will apply software engineering techniques to the design and development of large programming projects using C++. It includes coverage of data abstraction and structures, as well as associated algorithms, for linear lists, stacks, queues, trees, and other linked structures, arrays, strings, and hash tables. Searching and sorting algorithms are also covered. (C-ID COMP 132)
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Prerequisite: COMSC 041 with C or better
Advisory Level: Read:3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 075 Computer Science I: Introduction to Program Structures 3 Units
This course is an introduction to computer science using an object-oriented programming language. Students will write computer programs that include control structures, iteration, methods and argument passing, and classes. Problem solving, documentation, programming style, and program design and development are addressed throughout the course. (C-ID COMP 122)
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Prerequisite: MATH 021 and MATH 022, or MATH 025 all with C or better or placement by multiple measures
Recommended: COMSC 020
Advisory Level: Read: 3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 076 Computer Science II: Introduction to Data Structures 3 Units
This course covers data abstraction and structures as well as associated algorithms for linear lists, stacks, queues, trees, and other linked structures, arrays, strings, and hash tables. Software engineering techniques are applied to the design and development of large programming projects in an object-oriented environment. Searching and sorting algorithms are also covered. (C-ID COMP 132)
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Prerequisite: COMSC 075 with C or better
Advisory Level: Read: 3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 077 Introduction to Computer Systems 3 Units
This course covers the internal organization and operation of digital computers at the assembly language level. Topics include the mapping of high-level language constructs into sequences of machine-level instructions, assembly language and assemblers, linkers and loaders, internal data representations and manipulations, numerical computation, input/output (I/O) and interrupts, functions calls and argument passing, and the basic elements of computer logic design. (C-ID COMP 142)
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Prerequisite: COMSC 041 or COMSC 075 with C or better
Advisory Level: Read: 3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 078 Structure and Interpretation of Computer Programs 4 Units
This course covers the elements of the functional, object-oriented, and declarative programming paradigms. Topics include procedural abstraction; control abstraction using recursion, higher order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. Students will complete several significant programming projects using Python. The central idea in this course is the management of program complexity through abstraction.
Lecture Hours: 3 Lab Hours: 3 Repeatable: No Grading: L
Prerequisite: MATH 066 or MATH 071 with C or better
Corequisite: MATH 066 or MATH 071; Recommended: Programming experience equivalent to that gained from completing COMSC 020 or COMSC 075 or an Advanced Placement Computer Science Course A, with a score of 3 or higher is strongly recommended
Advisory Level: Read: 3 Write: 3 Math: None
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: None IGETC: None District GE: None
COMSC 079C Programming in C 3 Units
This course covers the C programming language for students who already know how to program. It includes computation, input and output, flow of control, functions, arrays, strings, pointers, linked structures, use of dynamic storage, and implementation of abstract data types. The course concludes with coverage of object-oriented programming in C++.
Lecture Hours: 2 Lab Hours: 3 Repeatable: No Grading: L
Recommended: Programming skills and knowledge comparable to those obtained in the Python or Java programming languages
Advisory Level: Read: 3 Write: 3 Math: 4
Transfer Status: CSU/UC Degree Applicable: AS
CSU GE: None IGETC: None District GE: None
COMSC 080 Discrete Structures 3 Units
This course is an introduction to the discrete structures used in computer science with an emphasis on their applications. Topics include basic logic; predicates and quantifiers; proof techniques; sets, functions, and relations; induction and recursion; counting techniques and discrete probability; and graphs and trees. (C-ID COMP 152)
Lecture Hours: 3 Lab Hours: None Repeatable: No Grading: L
Prerequisite: COMSC 041 or COMSC 075 with C or better
Recommended: Successful completion of MATH 025 or equivalence
Advisory Level: Read 4 Write: 4 Math: 5
Transfer Status: CSU/UC Degree Applicable: AA/AS
CSU GE: B4 IGETC: 2A District GE: B4