University of California, San DiegoWebsiteAcademic Catalog
Computer Science & EngineeringDepartment Website
BS Degree in Computer Science (Bioinformatics)source 1
CS Courses
- 2 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 AnalysisMAE 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.
- Mathematics for Algorithms and SystemsCSE 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.
- 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.
- Molecular Sequence AnalysisCSE 181 (4)algsCSE 181: Molecular Sequence Analysis
This course covers the analysis of nucleic acid and protein sequences, with an emphasis on the application of algorithms to biological problems. Topics include sequence alignments, database searching, comparative genomics, and phylogenetic and clustering analyses.
- Biological DatabasesCSE 182 (4)sysCSE 182: Biological Databases
This course provides an introduction to the features of biological data, how those data are organized efficiently in databases, and how existing data resources can be utilized to solve a variety of biological problems. Object oriented databases, data modeling and description.
- Advanced Bioinformatics LaboratoryCSE 185 (4)scienceCSE 185: Advanced Bioinformatics Laboratory
This course emphasizes the hands-on application of bioinformatics to biological problems. Students will gain experience in the application of existing software, as well as in combining approaches to answer specific biological questions.
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.)
- Probability and Statistics for BioinformaticsMATH 186 (4)mathMATH 186: Probability and Statistics for Bioinformatics
This course will cover discrete and random variables, data analysis and inferential statistics, likelihood estimators and scoring matrices with applications to biological problems. Introduction to Binomial, Poisson, and Gaussian distributions, central limit theorem, applications to sequence and functional analysis of genomes and genetic epidemiology.
Science Courses
- Organic Chemistry for Life Sciences IorCHEM 40A (4)sciCHEM 40A: Organic Chemistry for Life Sciences I
The first quarter of a two-quarter organic chemistry sequence intended for biological sciences majors and other interested students. The course provides in-depth study of the molecular structure and reactivity of organic molecules with emphasis on biological applications. Topics covered include bonding theory, resonance, stereochemistry, conjugation, aromaticity, spectroscopy, effects of structure on properties and reactivity, introduction to reaction mechanisms, and nucleophilic substitutions.
Organic Chemistry I: Structure and ReactivityCHEM 41A (4)sciCHEM 41A: Organic Chemistry I: Structure and ReactivityThis is the first quarter of a three-quarter organic chemistry sequence intended for chemistry, biochemistry, and engineering majors and interested students. The course is a rigorous and in-depth study of fundamental organic chemistry with an introduction to chemical reactivity and synthesis, Bonding theory, structure (including isomerism, stereochemistry, conformations) and physical properties of carbon-containing molecules.
- Biochemical Structure and FunctionorCHEM 114A (4)sciCHEM 114A: Biochemical Structure and Function
Introduction to biochemistry from a structural and functional viewpoint. Emphasis will be placed on the structure-functions relationships of nucleic acids, proteins, enzymes, carbohydrates, and lipids. Students may not receive credit for both CHEM 114A and BIBC 100.
Metabolic BiochemistryBIBC 102 (4)sciBIBC 102: Metabolic BiochemistryEnergy-producing pathways–glycolysis, the TCA cycle, oxidative phosphorylation, photosynthesis, and fatty acid oxidation; and biosynthetic pathways–gluconeogenesis, glycogen synthesis, and fatty acid biosynthesis. Nitrogen metabolism, urea cycle, amino acid metabolism, nucleotide metabolism, and metabolism of macromolecules.
- Physics—MechanicsPHYS 2A (4)sciPHYS 2A: Physics—Mechanics
A calculus-based science-engineering general physics course covering vectors, motion in one and two dimensions, Newton’s first and second laws, work and energy, conservation of energy, linear momentum, collisions, rotational kinematics, rotational dynamics, equilibrium of rigid bodies, oscillations, gravitation. Students continuing to PHYS 2B/4B will also need MATH 20B. Students will not receive credit for both PHYS 2A and PHYS 2AR.
Other Courses
- GeneticsBICD 100 (4)sciBICD 100: Genetics
An introduction to the principles of heredity emphasizing diploid organisms. Topics include Mendelian inheritance and deviations from classical Mendelian ratios, pedigree analysis, gene interactions, gene mutation, linkage and gene mapping, reverse genetics, population genetics, and quantitative genetics.
- Introductory Biology LabBILD 4 (2)sciBILD 4: Introductory Biology Lab
Students gain hands-on experience and learn the theoretical basis of lab techniques common to a variety of biological disciplines such as biochemistry, molecular biology, cell biology, and bioinformatics. Students will work in groups, learning how to collect, analyze, and present data while using the scientific method to conduct inquiry-based laboratory experiments. Material lab fees will apply.
- Recombinant DNA TechniquesBIMM 101 (4)sciBIMM 101: Recombinant DNA Techniques
Theory and practice of recombinant DNA and molecular biology techniques. Includes CRISPR-Cas9 editing, DNA sequencing, PCR, and basic bioinformatics. Nonattendance may result in the student’s being dropped from the course roster.Material lab fees will apply.
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