Some courses displayed may not be offered every year. For actual course offerings by quarter, please consult the Quarterly Class Search
or GOLD (for current students). To see the historical record of when a particular course has been taught in the past, please visit the Course Enrollment Histories.
CMPSC 1. Seminar on the Field of Computer Science
(1)
FRANKLIN
Overviews the potential of, and opportunities available from, the field of computer science. Topics include an overview of how computers work and the interesting ways in which computers can be applied to solve important and high-impact technological, social, and cutting-edge research problems.
CMPSC 2. Computational Thinking for Scientists
(4)
EGECIOGLU
Prerequisite: Math 4A with a grade of C or better.
Introduction to the central concepts of computer science as they apply to a wide variety of human endeavors, including natural and physical sciences. Topics that interrelate central ideas from algorithms, performance and complexity, data structures, concurrency, languages and abstractions will be studied.
CMPSC 4. Computer Science Boot Camp
(4)
KOC
An introduction to computational thinking, computing, data management, and problem solving using computers, for non-majors. Topics include coding basics, representing code and data using a computer, and applications of computing that are important to society.
CMPSC 5A. Introduction to Data Science 1
(4)
STAFF
Enrollment Comments: Not open for credit to students who have completed Computer Science 8, Computer Science 16, Engineering 3, ECE 3, or equivalent (including AP CS A with a score of 4 or higher).
Introduction to data science methods and Python programming language for students with little to no experience in the subjects. Topics include foundational programming concepts, problem-solving strategies and code design, and data science concepts as table operations, exploratory data analysis, basic probability.
CMPSC 5B. Introduction to Data Science 2
(4)
STAFF
Prerequisite: Computer Science 5A or Computer Science 8 or ECE 3 with a grade of C or better.
Students explore the data science lifecycle, including question formulation, data collection and cleaning, exploratory data analysis and visualization, statistical inference and prediction, and decision-making. The course focus is on transforming and analyzing data; machine learning methods including regression, classification and clustering; principles behind data visualizations; concepts of measurement error and prediction; and techniques for scalable data processing.
CMPSC 8. Introduction to Computer Science
(4)
MIRZA
Enrollment Comments: Not open for credit to students who have completed Computer Science 16 or Engineering 3 or ECE 3.
Introduction to computer program development for students with little to no programming experience. Basic programming concepts, variables and expressions, data and control structures, algorithms, debugging, program design, and documentation.
CMPSC 9. Intermediate Python Programming
(4)
R WANG
Prerequisite: Computer Science 8 or Engineering 3 with a grade of C or better.
Intermediate topics in Computer Science using the Python programming language. Topics include object oriented programming, runtime analysis, data structures, and software testing methodologies.
CMPSC 11AAZZ. Programming Language Laboratory
(1)
STAFF
Prerequisite: Knowledge of at least one programming language.
Enrollment Comments: Different sections may be repeated. Sections not always offered.
A self-paced course to allow a student who already possesses a working knowledge of at least one programming language an opportunity to learn other languages of interest. Each section studies a different programming language.
CMPSC 11AD. Programming Language Laboratory: ADA
CMPSC 11AP. Programming Language Laboratory: APL
CMPSC 11C. Programming Language Laboratory
CMPSC 11CO. Programming Language Laboratory: COBOL
CMPSC 11FO. Programming Language Laboratory: Fortran
CMPSC 11JA. Programming Language Laboratory
CMPSC 11LI. Programming Language Laboratory: LISP
CMPSC 11PA. Programming Language Laboratory: Pascal
CMPSC 11PL. Programming Language Laboratory: PL/1
CMPSC 11SN. Programming Language Laboratory: SNOBOL
CMPSC 16. Problem Solving with Computers I
(4)
MIRZA, KHARITONOVA
Prerequisite: Mathematics 3A or 2A with a grade of C or better (may be taken concurrently), CS 8 or Engineering 3 or ECE 3 with a grade of C or better, or significant prior programming experience.
Repeat Comments: Legal repeat of CMPSC 10.
Fundamental building blocks for solving problems using computers. Topics include basic computer organization and programming constructs: memory CPU, binary arithmetic, variables, expressions, statements, conditionals, iteration, functions, parameters, recursion, primitive and composite data types, and basic operating system and debugging tools.
CMPSC 24. Problem Solving with Computers II
(4)
COSTANZO
Prerequisite: Computer Science 16 with a grade of C or better; and Mathematics 3B or 2B with a grade of C or better (may be taken concurrently).
Enrollment Comments: Not open for credit to students who have completed Computer Science 20.
Repeat Comments: This is a legal repeat of CMPSC 24A.
Intermediate building blocks for solving problems using computers. Topics include intermediate object-oriented programming, data structures, object-oriented design, algorithms for manipulating these data structures and their run-time analyses. Data structures introduced include stacks, queues, lists, trees, and sets.
CMPSC 24A. Problem Solving with Computers II
(4)
WANG, RICHERT
Prerequisite: Computer Science 16 with a grade of C or better; and Mathematics 3B or 2B with a grade of C or better (may be taken concurrently).
Enrollment Comments: Not open for credit to students who have completed Computer Science 20.
Repeat Comments: This is a legal repeat of CS 24.
Intermediate building blocks for solving problems using computers. Topics include data structures, object-oriented design and development, algorithms for manipulating these data structures and their runtime analyses. Data structures introduced include stacks, queues, lists, trees, and sets.
CMPSC 32. Object Oriented Design and Implementation
(4)
HOLLERER
Prerequisite: Computer Science 24 with a grade of C or better
Repeat Comments: Computer Science 32 is a legal repeat for Computer Science 60
Advanced topics in object-oriented computing. Topics include encapsulation, data hiding, inheritance, polymorphism, compilation, linking and loading, memory management, and debugging; recent advances in design and development tools, practices, libraries, and operating system support.
CMPSC 40. Foundations of Computer Science
(5)
SU, VAN DAM
Prerequisite: Computer Science 16 with a grade of C or better and Mathematics 4A with a grade of C or better.
Introduction to the theoretical underpinnings of computer science. Topics include propositional predicate logic, set theory, functions and relations, counting, mathematical induction and recursion (generating functions).
CMPSC 64. Computer Organization and Logic Design
(4)
ZHENG, FRANKLIN
Prerequisite: Computer Science 16 with a grade of C or better; and Mathematics 3C or 4A with a grade of C or better.
Enrollment Comments: Not open for credit to students who have completed ECE 15 or ECE 15B or Computer Science 30.
Repeat Comments: Course counts as a legal repeat of CMPSC 30.
Assembly language programming and advanced computer organization; Digital logic design topics including gates, combinational circuits, flip-flops, and the design and analysis of sequential circuits.
CMPSC 90AAZZ. Special Topics in Computer Science
(4)
STAFF
Prerequisite: Consent of instructor.
Enrollment Comments: May be repeated for credit to a maximum of 32 units provided letter designations are different.
Provides for the study of topics of current interest in computer science: A. Foundations; B. Software Systems; C. Programming Languages and Software Engineering; D. Information Management; E. Architecture; F. Networking; G. Security; H. Scientific Computing; I. Intelligent and Interactive Systems; N. General.
CMPSC 90DA. Special Topics in Computer Science
CMPSC 90DB. Special Topics in Computer Science
CMPSC 95. Undergraduate Seminar in Computer Science
(1-4)
STAFF
Prerequisite: Open to computer science and computer engineering majors only; consent of instructor.
Provides an overview of the history, technology, applications, and impact in various areas of computer science, including: A. Foundations, B. Software Systems, C. Programming languages and software engineering, D. Information management,E. Architecture, F. Networking G. Security, H. Scientific computing,I. Intelligent and interactive systems, J. History, N. General.
CMPSC 96. Undergraduate Research
(2-4)
STAFF
Prerequisite: Consent of instructor.
Enrollment Comments: May be repeated for up to 12 units total. Does not apply toward any CS major degree requirements.
Research opportunities for undergraduate students. Students will be expected to give regular oral presentations, actively participate in a weekly seminar, and prepare at least one written report on their research.
CMPSC 99. Independent Studies in Computer Science
(1-4)
STAFF
Enrollment Comments: Must have a minimum 3.0 grade point average. May be repeated. Students are limited to 5 units per quarter and 30 units total in all 99/198/199 courses combined.
Independent studies in computer science for advanced students.
CMPSC 100.
Introduction to Teaching Methods in Computer Science
(4)
MIRZA
Prerequisite: Consent of instructor.
Enrollment Comments: May be repeated to a maximum of 12 units.
Designed to train outstanding undergraduates for learning assistant positions in CS courses. Lecture/discussion surveys current research and best practices in CS pedagogy including student development theories, different pedagogical techniques, and methods for assessing learning. Students gain experience working one-on-one with students, fostering positive learning environments, and providing feedback on student work. Students who successfully complete this course will earn units by serving as an apprentice undergraduate learning assistant.
CMPSC 110.
Introduction to Research in Computer Science
(4)
MIRZA
Prerequisite: Computer Science 40 and Computer Science 32; consent of instructor.
Defining a CS research problem, finding and reading technical papers, oral communication, technical writing, and independent learning. Course participants work in teams as they apprentice with a CS research group to propose an original research problem and write a research proposal.
CMPSC 111.
Introduction to Computational Science
(4)
GILBERT
Prerequisite: Mathematics 4B with a grade of C or better; Mathematics 6A with a grade of C or better; Computer Science 24 with a grade of C or better.
Enrollment Comments: Not open for credit to students who have completed Computer Science 110A.
Introduction to the numerical algorithms that form the foundations of data science, machine learning, and computational science and engineering. Matrix computation, linear equation systems, eigenvalue and singular value decompositions, numerical optimization. The informed use of mathematical software environments and libraries, such as python/numpy/scipy.
CMPSC 130A.
Data Structures and Algorithms I
(4)
EL ABBADI
Prerequisite: Computer Science 40 with a grade of C or better; Computer Science 32 with a grade of C or better; PSTAT 120A or ECE 139; open to computer science, computer engineering, and electrical engineering majors only.