University of California, San DiegoWebsiteAcademic Catalog
Computer Science & EngineeringDepartment Website
BS Degree in Computer Sciencesource 1source 2
CS Courses
- 4 units from
Mathematical Beauty in RomeCSE 4GS (4)specialCSE 4GS: Mathematical Beauty in RomeExploration of topics in mathematics and engineering as they relate to classical architecture in Rome, Italy. In depth geometrical analysis and computer modeling of basic structures (arches, vaults, domes), and on-site studies of the Colosseum, Pantheon, Roman Forum, and St. Peter’s Basilica.
Mathematical Beauty in Rome LabCSE 6GS (4)specialCSE 6GS: Mathematical Beauty in Rome LabCompanion course to CSE 4GS where theory is applied and lab experiments are carried out “in the field” in Rome, Italy. For final projects, students will select a complex structure (e.g., the Colosseum, the Pantheon, St. Peter’s, etc.) to analyze and model, in detail, using computer-based tools.
Introduction to Computer Science and Object-Oriented Programming: PythonCSE 6R (4)introCSE 6R: Introduction to Computer Science and Object-Oriented Programming: PythonAn introduction to computer science and programming using the Python language. The course will cover topics such as basic data types (e.g., integer, float, string), loops and iteration, basic data structures (e.g., list, set, dictionary), memory models, conditional statements, recursion, basic algorithm time complexity analysis, class design, and inheritance.
Introduction to Programming and Computational Problem-Solving ICSE 8A (4)introCSE 8A: Introduction to Programming and Computational Problem-Solving IIntroductory course for students interested in computer science and programming. Basics of programming including variables, conditionals, loops, functions/methods. Structured data storage such as arrays/lists and dictionaries, including data mutation. Hands-on experience with designing, writing, hand-tracing, compiling or interpreting, executing, testing, and debugging programs. Students solve relevant computational problems using a high-level programming language. CSE 8A is part of a two-course sequence (CSE 8A-B) that is equivalent to CSE 11. Students should take CSE 8B to complete the CSE 8A-B track. Students who have taken CSE 8B or CSE 11 may not take or receive credit for CSE 8A. Students may only receive credit for one of the following: BILD 62, COGS 18, CSE 8A, or CSE 6R. Recommended preparation: No prior programming experience is assumed, but comfort using computers is helpful. Students should consult the “CSE Course Placement Advice” web page for assistance in choosing which CSE course to take first.
Building and Programming Electronic DevicesCSE 42 (2)introCSE 42: Building and Programming Electronic DevicesThis course allows students to use what they learned in introductory programming courses to make things happen in the real world. Working in teams, students will first learn to program Arduino-based devices.
C++ for Java ProgrammersCSE 86 (2)introCSE 86: C++ for Java ProgrammersHelps the Java programmer to be productive in the C++ programming environment. Topics include the similarities and differences between Java and C++ with special attention to pointers, operator overloading, templates, the STL, the preprocessor, and the C++ Runtime Environment.
Biology Meets ComputingCSE 180 (4)introCSE 180: Biology Meets ComputingTopics include an overview of various aspects of bioinformatics and will simultaneously introduce students to programming in Python. The assessments in the course represent various programming challenges and include solving diverse biological problems using popular bioinformatics tools.
Biology Meets ComputingCSE 180R (4)introCSE 180R: Biology Meets ComputingTopics include an overview of various aspects of bioinformatics and will simultaneously introduce students to programming in Python. The assessments in the course represent various programming challenges and include solving diverse biological problems using popular bioinformatics tools. This will be a fully online class based on extensive educational materials and online educational platform Stepik developed with HHMI, NIH, and ILTI support.
Engineering ComputationECE 15 (4)engrECE 15: Engineering ComputationStudents learn the C programming language with an emphasis on high-performance numerical computation. The commonality across programming languages of control structures, data structures, and I/O is also covered. Techniques for using MATLAB to graph the results of C computations are developed.
Engineering Computation Using MatlabCENG 15 (4)engrCENG 15: Engineering Computation Using MatlabIntroduction to solution of engineering problems using computational methods. Formulating problem statements, selecting algorithms, writing computer programs, and analyzing output using MATLAB. Computational problems from nanoengineering, chemical engineering, and materials science are introduced. The course requires no prior programming skills.
MATLAB Programming for Engineering Analysisany CSE upper-division course not used to fulfill other degree requirementsMAE 8 (4)mathMAE 8: MATLAB Programming for Engineering AnalysisComputer programming in MATLAB with elementary numerical analysis of engineering problems. Arithmetic and logical operations, arrays, graphical presentation of computations, symbolic mathematics, solutions of equations, and introduction to data structures.
- Introduction to Programming and Computational Problem-Solving IIorCSE 8B (4)introCSE 8B: Introduction to Programming and Computational Problem-Solving II
Introductory programming using an object-oriented approach with the Java programming language. Builds on basic programming constructs introduced in CSE 8A to introduce class design and use, interfaces, basic class hierarchies, recursion, event-based programming, error reporting with exceptions, and file I/O. Basics of command-line navigation for file management and running programs. Development, testing, and debugging of more complex programs. CSE 8B is part of a two-course sequence (CSE 8A-B) that is equivalent to CSE 11. No credit offered for CSE 8B if CSE 11 taken previously. Students may not receive credit for CSE 8B and CSE 11. Students should consult the “CSE Course Placement Advice” web page for assistance in choosing which CSE course to take first.
Introduction to Programming and Computational Problem-Solving: Accelerated PaceCSE 11 (4)introCSE 11: Introduction to Programming and Computational Problem-Solving: Accelerated PaceAccelerated introductory programming including an object-oriented approach. Covers basic programming topics from CSE 8A including variables, conditionals, loops, functions/methods, structured data storage, and mutation. Also covers topics from CSE 8B including the Java programming language, class design, interfaces, basic class hierarchies, recursion, event-based programming, and file I/O. Basics of command-line navigation for file management and running programs. Zero units of credit offered for CSE 11 if CSE 8B taken previously or concurrently. Recommended preparation: Significant prior programming experience (for example, high school AP CSA). Students should consult the “CSE Course Placement Advice” web page for assistance in choosing a first CSE course.
- Basic Data Structures and Object-Oriented DesignCSE 12 (4)introCSE 12: Basic Data Structures and Object-Oriented Design
Use and implementation of basic data structures including linked lists, stacks, and queues. Use of advanced structures such as binary trees and hash tables. Object-oriented design including interfaces, polymorphism, encapsulation, abstract data types, pre-/post-conditions. Recursion. Uses Java and Java Collections.
- Discrete MathematicsorCSE 20 (4)mathCSE 20: Discrete Mathematics
This course will introduce the ways logic is used in computer science: for reasoning, as a language for specifications, and as operations in computation. Concepts include sets, relations, functions, equivalence relations, partial orders, number systems, and proof methods (especially induction and recursion). Propositional and predicate logic will be introduced and applied to various computer science domains such as circuit design, databases, cryptography, and program correctness.
Introduction to Discrete MathematicsorMATH 15A (4)mathMATH 15A: Introduction to Discrete MathematicsBasic discrete mathematical structure: sets, relations, functions, sequences, equivalence relations, partial orders, and number systems. Methods of reasoning and proofs: propositional logic, predicate logic, induction, recursion, and pigeonhole principle. Infinite sets and diagonalization. Basic counting techniques; permutation and combinations. Applications will be given to digital logic design, elementary number theory, design of programs, and proofs of program correctness. Students who have completed MATH 109 may not receive credit for MATH 15A. Credit not offered for both MATH 15A and CSE 20.
Honors Vector CalculusorMATH 31CH (4)mathMATH 31CH: Honors Vector CalculusThird quarter of honors integrated linear algebra/multivariable calculus sequence for well-prepared students. Topics include change of variables formula, integration of differential forms, exterior derivative, generalized Stoke’s theorem, conservative vector fields, potentials.
Mathematical ReasoningMATH 109 (4)mathMATH 109: Mathematical ReasoningThis course uses a variety of topics in mathematics to introduce the students to rigorous mathematical proof, emphasizing quantifiers, induction, negation, proof by contradiction, naive set theory, equivalence relations and epsilon-delta proofs.
- Mathematics for Algorithms and SystemsorCSE 21 (4)mathCSE 21: Mathematics for Algorithms and Systems
This course will cover mathematical concepts used to model and analyze algorithms and computer systems. Topics include counting techniques, data representations, analysis of algorithms, recurrence relations, graphs and trees, and basic probability and its applications.
Discrete Mathematics and Graph TheoryorMATH 154 (4)mathMATH 154: Discrete Mathematics and Graph TheoryBasic concepts in graph theory, including trees, walks, paths, and connectivity, cycles, matching theory, vertex and edge-coloring, planar graphs, flows and combinatorial algorithms, covering Hall’s theorems, the max-flow min-cut theorem, Euler’s formula, and the travelling salesman problem.
Enumerative CombinatoricsMATH 184 (4)mathMATH 184: Enumerative CombinatoricsIntroduction to the theory and applications of combinatorics. Enumeration of combinatorial structures (permutations, integer partitions, set partitions). Bijections, inclusion-exclusion, ordinary and exponential generating functions.
- Systems Programming and Software ToolsCSE 29 (4)sysCSE 29: Systems Programming and Software Tools
A programmer's view of how computer systems execute programs, store information, and communicate. Emphasis on understanding the details of how a single computer program executes on a computer. Hands-on systems programming using the C programming language and software tools (e.g., gdb, valgrind, make) in the UNIX environment. Builds foundation for courses on computer organization, operating systems, networks, and compilers.
- Computer Organization and Systems ProgrammingCSE 30 (4)sysCSE 30: Computer Organization and Systems Programming
Introduction to organization of modern digital computers—understanding the various components of a computer and their interrelationships. Study of a specific architecture/machine with emphasis on systems programming in C and Assembly languages in a UNIX environment.
- Advanced Data StructuresCSE 100 (4)algsCSE 100: Advanced Data Structures
High-performance data structures and supporting algorithms. Use and implementation of data structures like (un)balanced trees, graphs, priority queues, and hash tables. Also, memory management, pointers, recursion. Theoretical and practical performance analysis, both average case and amortized. Uses C++ and STL.
- Design and Analysis of AlgorithmsCSE 101 (4)algsCSE 101: Design and Analysis of Algorithms
Design and analysis of efficient algorithms with emphasis of nonnumerical algorithms such as sorting, searching, pattern matching, and graph and network algorithms. Measuring complexity of algorithms, time and storage. NP-complete problems.
- A Practical Introduction to Probability and StatisticsorCSE 103 (4)mathCSE 103: A Practical Introduction to Probability and Statistics
Distributions over the real line. Independence, expectation, conditional expectation, mean, variance. Hypothesis testing. Learning classifiers. Distributions over R^n, covariance matrix. Binomial, Poisson distributions. Chernoff bound. Entropy. Compression. Arithmetic coding. Maximal likelihood estimation. Bayesian estimation. CSE 103 is not duplicate credit for ECE 109, ECON 120A, or MATH 183.
Introduction to Mathematical Statistics IorMATH 181A (4)mathMATH 181A: Introduction to Mathematical Statistics IMultivariate distribution, functions of random variables, distributions related to normal. Parameter estimation, method of moments, maximum likelihood. Estimator accuracy and confidence intervals. Hypothesis testing, type I and type II errors, power, one-sample t-test.
Statistical MethodsorMATH 183 (4)mathMATH 183: Statistical MethodsIntroduction to probability. Discrete and continuous random variables–binomial, Poisson and Gaussian distributions. Central limit theorem. Data analysis and inferential statistics: graphical techniques, confidence intervals, hypothesis tests, curve fitting.
Engineering Probability and StatisticsorECE 109 (4)engrECE 109: Engineering Probability and StatisticsAxioms of probability, conditional probability, theorem of total probability, random variables, densities, expected values, characteristic functions, transformation of random variables, central limit theorem. Random number generation, engineering reliability, elements of estimation, random sampling, sampling distributions, tests for hypothesis.
- Software EngineeringCSE 110 (4)softengCSE 110: Software Engineering
Introduction to software development and engineering methods, including specification, design, implementation, testing, and process. An emphasis on team development, agile methods, and use of tools such as IDE’s, version control, and test harnesses.
Math/Stat Courses
- Linear AlgebraorMATH 18 (4)mathMATH 18: Linear Algebra
Matrix algebra, Gaussian elimination, determinants. Linear and affine subspaces, bases of Euclidean spaces. Eigenvalues and eigenvectors, quadratic forms, orthogonal matrices, diagonalization of symmetric matrices. Applications. Computing symbolic and graphical solutions using MATLAB. Students may not receive credit for both MATH 18 and 31AH.
Honors Linear AlgebraMATH 31AH (4)mathMATH 31AH: Honors Linear AlgebraFirst quarter of three-quarter honors integrated linear algebra/multivariable calculus sequence for well-prepared students. Topics include real/complex number systems, vector spaces, linear transformations, bases and dimension, change of basis, eigenvalues, eigenvectors, diagonalization.
- Calculus for Science and EngineeringMATH 20A (4)mathMATH 20A: Calculus for Science and Engineering
Foundations of differential and integral calculus of one variable. Functions, graphs, continuity, limits, derivative, tangent line. Applications with algebraic, exponential, logarithmic, and trigonometric functions. Introduction to the integral. (Two credits given if taken after MATH 1A/10A and no credit given if taken after MATH 1B/10B or MATH 1C/10C. Formerly numbered MATH 2A.)
- Calculus for Science and EngineeringMATH 20B (4)mathMATH 20B: Calculus for Science and Engineering
Integral calculus of one variable and its applications, with exponential, logarithmic, hyperbolic, and trigonometric functions. Methods of integration. Infinite series. Polar coordinates in the plane and complex exponentials. (Two units of credits given if taken after MATH 1B/10B or MATH 1C/10C.)
- Calculus and Analytic Geometry for Science and EngineeringorMATH 20C (4)mathMATH 20C: Calculus and Analytic Geometry for Science and Engineering
Vector geometry, vector functions and their derivatives. Partial differentiation. Maxima and minima. Double integration. (Two units of credit given if taken after MATH 10C. Credit not offered for both MATH 20C and 31BH. Formerly numbered MATH 21C.)
Honors Multivariable CalculusMATH 31BH (4)mathMATH 31BH: Honors Multivariable CalculusSecond quarter of three-quarter honors integrated linear algebra/multivariable calculus sequence for well-prepared students. Topics include derivative in several variables, Jacobian matrices, extrema and constrained extrema, integration in several variables. (Credit not offered for both MATH 31BH and 20C.)
Science Courses
Core Competencies/Pillars
Our graduates obtain skills and knowledge in five major areas (pillars):
- Oral and Written Communication #Com
- Modeling/Analysis #Mod
- Problem framing + solving #Prob
- Ethics/Impact #Pact
- Community/Processes/Teamwork #Team
High-level Learning Objectives
The graduates of our BS program in CS and CE will be able to:
- Develop and contribute to large-scale programs and computational systems
- Understand, guide, shape the impact of computing on society/the world
- Reason about computation and systems
- Know, select, and apply appropriate computing knowledge and problem-solving techniques