Catalog Navigation
Contacts
Office: Huang Engineering Center, 475 Via Ortega
Mail Code: 94305-4042
Email: icme-admissions@stanford.edu
Web Site: http://icme.stanford.edu/

Courses offered by the Institute for Computational and Mathematical Engineering are listed under the subject code CME on the Stanford Bulletin's ExploreCourses web site.

ICME is a degree granting (M.S./Ph.D.) interdisciplinary institute at the intersection of mathematics, computing, engineering and applied sciences. ICME was founded in 2004, building upon the Scientific Computing and Computational Mathematics Program (est. 1989).

At ICME, we design state-of-the-art mathematical and computational models, methods, and algorithms for engineering and science applications. The program collaborates closely with engineers and scientists in academia and industry to develop improved computational approaches and advance disciplinary fields. In particular, it leverages Stanford's strength in engineering applications in the physical, biological, mathematical, and information sciences, and has established connections with nearly 20 departments across five schools at Stanford.

The program identifies research areas that would benefit from a multidisciplinary approach in which computational mathematics plays a role. This multidisciplinary intellectual environment is a core strength of ICME, with interaction among students and faculty with diverse backgrounds and expertise. Students and faculty are active in many research areas: aerodynamics and space applications, fluid dynamics, protein folding, data science including machine learning and recommender systems, ocean dynamics, climate modeling, reservoir engineering, computer graphics, financial mathematics, and many more.

The program trains students and scholars from across Stanford in mathematical modeling, scientific computing, and advanced computational algorithms at the undergraduate and graduate levels. Courses typically provide strong theoretical foundations for the solution of real world problems and numerical computations to facilitate application of mathematical techniques and theories. Training offered includes matrix computations, computational probability and combinatorial optimization, optimization, stochastics, numerical solution of partial differential equations, parallel computer algorithms, and new computing paradigms, amongst others.

ICME offers service courses for undergraduates and graduate students to fulfill departmental requirements, core courses for master's and doctoral students in Computational and Mathematical Engineering, and specialized electives in various application areas.

The ICME master's program offers both specialized and general tracks. Currently, the program is offering specialized tracks in Computational Geosciences, Data Science, Imaging Science, and Mathematical and Computational Finance. 

Graduate Programs in Computational and Mathematical Engineering

University regulations governing the M.S. and Ph.D. degrees are described in the “Graduate Degrees” section of this bulletin.

Learning Outcomes (Graduate)

The purpose of the master’s program is to provide students with the knowledge and skills necessary for a professional career or doctoral studies. This is done through coursework in mathematical modeling, scientific computing, advanced computational algorithms, and a set of courses from a specific area of application or field. The latter includes computational geoscience, data sciences, imaging sciences, mathematical and computational finance and other interdisciplinary areas that combine advanced mathematics with the classical physical sciences or with challenging interdisciplinary problems emerging within disciplines such as business, biology, medicine, and information.

The Ph.D. is conferred upon candidates who have demonstrated substantial scholarship and the ability to conduct independent research. Through course work and guided research, the program prepares students to make original contributions in Computational and Mathematical Engineering and related fields.

Master of Science in Computational and Mathematical Engineering

The University’s basic requirements for the M.S. degree are discussed in the “Graduate Degrees” section of this bulletin. The following are specific departmental requirements.

The M.S. degree in Computational and Mathematical Engineering is intended as a terminal professional degree and does not lead to the Ph.D. program. Students interested in the doctoral program should apply directly to the Ph.D. program. Master's students who have maintained a minimum grade point average (GPA) of 3.5 are eligible to take the Ph.D. qualifying exam; those who pass this examination and secure a research adviser (three quarters of continuous documented research) may continue into the Ph.D. program upon acceptance by the institute.

Admission

Prospective applicants should consult the Graduate Admissions and the ICME admissions web pages for complete information on admission requirements and deadlines.

Prerequisites

Fundamental courses in mathematics and computing may be needed as prerequisites for other courses in the program. Check the prerequisites of each required course. Recommended preparatory courses include advanced undergraduate level courses in linear algebra, probabilities, introductory courses in PDEs, stochastics, and numerical methods and proficiency in programming.

Applications to the M.S. program and all supporting documents must be submitted and received online by  January 9, 2018, the deadline published on ICME admissions web page.

Coterminal Master's Program

Stanford undergraduates who want to apply for the coterminal master's degree must submit their application no later than eight weeks before the start of the proposed admit quarter. The application must give evidence that the student possesses a potential for strong academic performance at the graduate level. Graduate Record Examination (GRE) General Test scores are required for application review. A student is eligible to apply for admission once the following conditions have been met:

  • completion of six non-Summer quarters at Stanford or two non-Summer quarters at Stanford for transfer students
  • completion of 120 units toward graduation (UTG) as shown on the undergraduate transcript, including transfer, Advanced Placement exam, and other external test credit
  • declaration of an undergraduate major

University Coterminal Requirements

Coterminal master’s degree candidates are expected to complete all master’s degree requirements as described in this bulletin. University requirements for the coterminal master’s degree are described in the “Coterminal Master’s Program” section. University requirements for the master’s degree are described in the "Graduate Degrees" section of this bulletin.

After accepting admission to this coterminal master’s degree program, students may request transfer of courses from the undergraduate to the graduate career to satisfy requirements for the master’s degree. Transfer of courses to the graduate career requires review and approval of both the undergraduate and graduate programs on a case by case basis.

In this master’s program, courses taken two quarters prior to the first graduate quarter, or later, are eligible for consideration for transfer to the graduate career. No courses taken prior to the first quarter of the sophomore year may be used to meet master’s degree requirements.

Course transfers are not possible after the bachelor’s degree has been conferred.

The University requires that the graduate adviser be assigned in the student’s first graduate quarter even though the undergraduate career may still be open. The University also requires that the Master’s Degree Program Proposal be completed by the student and approved by the department by the end of the student’s first graduate quarter.

Requirements for the Master of Science in Computational and Mathematical Engineering

The master's program consists of 45 units of course work taken at Stanford. No thesis is required; however, students may become involved in research projects during the master's program, particularly to explore an interest in continuing to the doctoral program. Although there is no specific background requirement, significant exposure to mathematics and engineering course work is necessary for successful completion of the program.

There are five tracks in the master's program:

  • General CME
  • Computational Geosciences
  • Data Science
  • Imaging Science
  • Mathematical and Computational Finance

General CME Track

This track is designed for students interested in studying and developing computational tools in those aspects of applied mathematics central to modeling in the physical and engineering sciences. The curriculum consists of core computational and mathematical engineering courses and programming course work, extensive breadth and depth electives, and seminars. Core courses provide instruction in mathematical and computational tools applicable to a wide range of scientific, industrial and engineering disciplines and augment breadth and depth electives of one’s choosing. Programming requirement ensures proficiency in scientific computing and professional computing skills. Seminars highlight emerging research in engineering and sciences.

Requirements

A candidate is required to complete a program of 45 units of courses numbered 200 or above. Courses below 200 level require special approval from the program office. At least 36 of these must be graded units, passed with a grade point average (GPA) of 3.0 (B) or better. Master’s students interested in continuing to the doctoral program must maintain a 3.5 or better grade point average in the program.

Requirement 1: Foundational (12 units)

Students must demonstrate foundational knowledge in the field by completing four of the six core courses. Courses in this area must be taken for letter grades. Deviations from the core curriculum must be justified in writing and approved by the student’s ICME adviser and the chair of the ICME curriculum committee. Courses that are waived may not be counted towards the master’s degree.

Units
CME 302Numerical Linear Algebra3
CME 303Partial Differential Equations of Applied Mathematics3
CME 305Discrete Mathematics and Algorithms3
CME 306Numerical Solution of Partial Differential Equations3
CME 307Optimization3
CME 308Stochastic Methods in Engineering3
or CME 298 Basic Probability and Stochastic Processes with Engineering Applications

Requirement 2: Programming (3 units)

Three units of programming course work demonstrating programming proficiency. All graduate students in the program are required to complete this programming course for letter grade. Programming proficiency at the level of CME 211 is a hard prerequisite; CME 211 can be applied towards elective requirement.

Units
CME 211Software Development for Scientists and Engineers (*can only be counted as an elective)3
CME 212Advanced Software Development for Scientists and Engineers3

Requirement 3: Breadth Electives (18 units)

18 units of general electives to demonstrate breadth of knowledge in technical area. The elective course list represents automatically accepted electives within the program. However, electives are not limited to the list below, and the list is expanded on a continuing basis. The elective part of the ICME program is meant to be broad and inclusive of relevant courses of comparable rigor to ICME courses. It is recommended that the selected courses include offerings from (at least) two 
engineering departments, in addition to CME course work. Courses outside this list can be accepted as electives subject to approval by the student’s ICME adviser.

Units
Aeronautics and Astronautics
AA 214BNumerical Methods for Compressible Flows3
AA 214CNumerical Computation of Viscous Flow3
AA 218Introduction to Symmetry Analysis3
Computational and Mathematical Engineering
CME 215A/215BAdvanced Computational Fluid Dynamics3
CME 263Introduction to Linear Dynamical Systems3
CME 279Computational Biology: Structure and Organization of Biomolecules and Cells3
CME 342Parallel Methods in Numerical Analysis3
CME 364AConvex Optimization I3
CME 371Computational Biology in Four Dimensions3
Computer Science
CS 205AMathematical Methods for Robotics, Vision, and Graphics3
CS 221Artificial Intelligence: Principles and Techniques3-4
CS 228Probabilistic Graphical Models: Principles and Techniques3-4
CS 229Machine Learning3-4
CS 255Introduction to Cryptography3
CS 261Optimization and Algorithmic Paradigms3
CS 340Topics in Computer Systems3-4
CS 348AComputer Graphics: Geometric Modeling & Processing3-4
Electrical Engineering
EE 223Applied Quantum Mechanics II3
EE 256Numerical Electromagnetics3
EE 376AInformation Theory3
Management Science and Engineering
MS&E 220Probabilistic Analysis3-4
MS&E 221Stochastic Modeling3
MS&E 223Simulation3
MS&E 238Leading Trends in Information Technology3
MS&E 251Stochastic Control3
MS&E 310Linear Programming3
MS&E 316Discrete Mathematics and Algorithms3
MS&E 321Stochastic Systems3
MS&E 322Stochastic Calculus and Control3
Mathematics
MATH 136Stochastic Processes3
MATH 171Fundamental Concepts of Analysis3
MATH 221BMathematical Methods of Imaging3
MATH 236Introduction to Stochastic Differential Equations3
MATH 238Mathematical Finance3
Mechanical Engineering
ME 335A/335B/335CFinite Element Analysis3
ME 346BIntroduction to Molecular Simulations3
ME 408Spectral Methods in Computational Physics3
ME 412Engineering Functional Analysis and Finite Elements3
ME 469Computational Methods in Fluid Mechanics3
ME 484Computational Methods in Cardiovascular Bioengineering3
Statistics
STATS 208Introduction to the Bootstrap3
STATS 217Introduction to Stochastic Processes I3
STATS 219Stochastic Processes3
STATS 250Mathematical Finance3
STATS 305AIntroduction to Statistical Modeling3
STATS 310A/310B/310CTheory of Probability I2-4
STATS 362Topic: Monte Carlo3
Other
CEE 281Mechanics and Finite Elements3
CEE 362GImaging with Incomplete Information3-4
ENGR 209AAnalysis and Control of Nonlinear Systems3
ENERGY 274Complex Analysis for Practical Engineering3

Requirement 4: Specialized Electives (9 units)

Nine units of focused graduate application electives, approved by the ICME graduate adviser, in the areas of engineering, mathematics, physical, biological, information, and other quantitative sciences. These courses should be foundational depth courses relevant to the student's professional development and research interests.

Requirement 5: Seminar (3 units)

One unit of seminar must come from CME 500; two units are up to the student's choice of ICME graduate seminars or other approved seminars. Additional seminar units may not be counted towards the 45-unit requirement.

Computational Geosciences Track

The Computational Geosciences (CompGeo) track is designed for students interested in the skills and knowledge required to develop efficient and robust numerical solutions to Earth Science problems using high-performance computing. The CompGeo curriculum is based on four fundamental areas: modern programming methods for Science and Engineering, applied mathematics with an emphasis on numerical methods, algorithms and architectures for high-performance computing and computationally oriented Earth Sciences courses. Earth Sciences/computational project courses give practice in applying methodologies and concepts.  CompGeo students are required to complete general and focused application electives (Requirements 3 and 4) from the approved list of courses from the Computational Geosciences program.  All other requirements remain the same as set forth above.

Note: Students interested in pursuing the ICME M.S. in the Computational Geosciences (CompGeo) track are encouraged to contact the Computational Geosciences Program Director before applying.

Students are required to take 45 units of course work, and research credits to earn a master's degree in Computational Geosciences track. The course work follows the requirements of the ICME M.S. degree as above with additional restrictions placed on the general and focused electives.

Requirement 1: Foundational (12 units)

Identical to the general CME master’s track requirement .

Requirement 2: Programming (3 units)

3 units of programming course work demonstrating programming proficiency. All graduate students in the program are required to complete programming course for letter grade. Programming proficiency at the level of CME 211 is a hard prerequisite for CME 212; CME 211 can be applied towards elective requirement.

Units
CME 211Software Development for Scientists and Engineers (*can only be used as an elective)3
CME 212Advanced Software Development for Scientists and Engineers3
CME 214Software Design in Modern Fortran for Scientists and Engineers3
GEOPHYS 257Introduction to Computational Earth Sciences2-4

Requirement 3: Breadth Electives in Geosciences (18 units)

18 units of general electives to demonstrate breadth of knowledge in technical area. Courses are currently offered but are not limited to the following specific areas of the School of Earth Sciences:

  1. Reservoir Simulation
  2. Geophysical Imaging
  3. Tectonophysics/Geomechanics
  4. Climate/Atmosphere/Ocean
  5. Ecology/Geobiology.

The Earth Science courses, offered in EESS, ERE, GES, and Geophysics is selected based on the area of the student's interest and their research/thesis work, along with the advice and consent of the student's adviser. Students are encouraged to choose a range of courses in order to guarantee breadth of knowledge in Earth Sciences. A maximum of one non-computationally-oriented course can be counted towards the master’s degree requirements. Following is a list of recommended courses (grouped by area) that can be taken to fulfill the Geosciences course requirement.

Units
Environmental/Climate/Hydrogeology
ESS 220Physical Hydrogeology4
ESS 221Contaminant Hydrogeology and Reactive Transport4
ESS 246BAtmosphere, Ocean, and Climate Dynamics: the Ocean Circulation3
CEE 262AHydrodynamics3-4
CEE 262BTransport and Mixing in Surface Water Flows3-4
CEE 262CHydrodynamics and Sediment Transport Modeling3
CEE 263AAir Pollution Modeling3-4
CEE 361Turbulence Modeling for Environmental Fluid Mechanics2-4
Geophysical Imaging
EE 256Numerical Electromagnetics3
GEOPHYS 210Basic Earth Imaging2-3
GEOPHYS 211Environmental Soundings Image Estimation3
GEOPHYS 2803-D Seismic Imaging2-3
GEOPHYS 287Earthquake Seismology3-5
General Computational/Mathematical Geoscineces
CEE 362GImaging with Incomplete Information3-4
CHEM 275Advanced Physical Chemistry3
CME 372Applied Fourier Analysis and Elements of Modern Signal Processing3
CME 321BMathematical Methods of Imaging3
ESS 211Fundamentals of Modeling3-5
ENERGY 291Optimization of Energy Systems3-4
GS 240Data science for geoscience2-3
ME 335AFinite Element Analysis3
ME 346BIntroduction to Molecular Simulations3
ME 361Turbulence3
ME 469BComputational Methods in Fluid Mechanics3
MS&E 211Introduction to Optimization3-4
Reservoir Simulation/Fluid Flow
ENERGY 223Reservoir Simulation3-4
ENERGY 224Advanced Reservoir Simulation3
Subsurface/Reservoir Characterization
ENERGY 241Seismic Reservoir Characterization3-4
GEOPHYS 202Reservoir Geomechanics3
GEOPHYS 260Rock Physics for Reservoir Characterization3
Structural/Tectonophysics/Geomechanics
CEE 292Continuum Mechanics3
CEE 294Computational Poromechanics3
GEOPHYS 220Ice, Water, Fire3-5
GEOPHYS 288ACrustal Deformation3-5
GEOPHYS 288BCrustal Deformation3-5
GEOPHYS 290Tectonophysics3

Requirement 4: Practical Component (9 units)

9 units of focused research in computational geosciences. Students are required to either complete a Research Project or an Internship as described below.

Internship and/or Research Project, enrolling in a course such as:
EARTH 400Directed Research3
EARTH 401Curricular Practical Training1
Research Project

Students who plan to apply to the Ph.D. program need to take 9 units of research.  Students will work with the CompGeo program director to find an appropriate adviser and research topic and then enroll in EARTHSCI 400: Directed Research (or a similar SES research course). The successful outcome of a Research Project can be:

  1. an oral presentation at an international meeting requiring an extended abstract
  2. a publication submission in a peer reviewed journal.
  3. a written report
Internship

As an alternative to the Research Project students have the option of an internship which is recommended for those students interested in a terminal degree.  The individual student is responsible for securing and organizing the internship and is required to obtain a faculty adviser and submit a written report on the internship project.  Credit for the internship will be obtained through EARTHSCI401: Curricular Practical Training (1 unit) and in this case only 8 units of research are required.

Requirement 5: Seminar (3 units)

3 units of ICME graduate seminars or other approved seminars. Additional seminar units may not be counted towards the 45-unit requirement. One of the required seminars for CompGeo must be a seminar course chosen in concert with the student's academic adviser among the seminars offered by the the School of Earth, Energy and Environmental Sciences.

Data Science Track

The Data Science track develops strong mathematical, statistical, computational and programming skills through the foundational and programming requirements. In addition, it provides a fundamental data science education through general and focused electives requirement from courses in data sciences and related areas.  Course choices are limited to predefined courses from the data sciences and related courses group. Programming requirement (requirement 2) is extended to 6 units and includes course work in advanced scientific programming and high performance computing. The final requirement is a practical component (requirement 5) for 6 units to be completed through capstone project, data science clinic, or other courses that have strong hands-on or practical component such as statistical consulting.

Requirement 1: Foundational (12 units)

Students must demonstrate foundational knowledge in the field by completing the following core courses. Courses in this area must be taken for letter grades. Deviations from the core curriculum must be justified in writing and approved by the student’s ICME adviser and the chair of the ICME curriculum committee. Courses that are waived may not be counted towards the master’s degree.

Units
CME 302Numerical Linear Algebra3
CME 305Discrete Mathematics and Algorithms3
CME 307Optimization3
CME 308Stochastic Methods in Engineering3
or CME 309 Randomized Algorithms and Probabilistic Analysis

Requirement 2: Programming (6 units)

To ensure that students have a strong foundation in programming, 3 units of advanced scientific programming for letter grade at the level of CME 212 and three units of parallel computing for letter grades are required. Programming proficiency at the level of CME 211 is a hard prerequisite for CME 212; CME 211 can be applied towards elective requirement.

Units
Advanced Scientific Programming; take 3 units
CME 211Software Development for Scientists and Engineers (*can only be used as an elective)3
CME 212Advanced Software Development for Scientists and Engineers3
Parallel/HPC Computing; take 3 units
CME 213Introduction to parallel computing using MPI, openMP, and CUDA3
CME 323Distributed Algorithms and Optimization3
CME 342Parallel Methods in Numerical Analysis3
CS 149Parallel Computing3-4
CS 315AParallel Computer Architecture and Programming3
CS 316Advanced Multi-Core Systems3

Requirement 3: Data Science electives (12 units)

Data Science electives should demonstrate breadth of knowledge in the technical area. The elective course list is defined. Courses outside this list can be accepted as electives subject to approval. Petitions for approval should be submitted to student services.

Units
STATS 200Introduction to Statistical Inference3
STATS 203Introduction to Regression Models and Analysis of Variance3
or STATS 305A Introduction to Statistical Modeling
STATS 315AModern Applied Statistics: Learning3
STATS 315BModern Applied Statistics: Data Mining3

Requirement 4: Specialized electives (9 units)

Choose three courses in specialized areas from the following list. Courses outside this list can be accepted as electives subject to approval. Petitions for approval should be submitted to student services.

Units
BIOE 214Representations and Algorithms for Computational Molecular Biology3-4
BIOMEDIN 215Data Driven Medicine3
BIOS 221Modern Statistics for Modern Biology3
CS 224WAnalysis of Networks3-4
CS 229Machine Learning3-4
CS 231NConvolutional Neural Networks for Visual Recognition3-4
CS 246Mining Massive Data Sets3-4
ENERGY 240Data science for geoscience3
CS 448Topics in Computer Graphics3-4
OIT 367Business Intelligence from Big Data3
PSYCH 204AHuman Neuroimaging Methods3
STATS 290Computing for Data Science3
STATS 366Modern Statistics for Modern Biology3

Requirement 5: Practical component (6 units)

Students are required to take 6 units of practical component that may include any combination of:

  • Master's Research( CME 291): A capstone project, supervised by a faculty member and approved by the steering committee; should be taken for letter grade only. The capstone project should be computational in nature. Students should submit a one-page proposal, supported by the faculty member, to ICME student services  for approval at least one quarter before.

  • Project labs offered by Stanford Data Lab: ENGR 150 Data Challenge Lab, ENGR 350 Data Impact Lab. (Limited enrollment; application required.)

  • Other courses that have a strong hands-on and practical component, such as STATS 390 Consulting Workshop up to 1unit.

Imaging Science Track

The Imaging Science track is designed for students interested in the skills and knowledge required to develop efficient and robust computational tools for imaging science. The curriculum is based on four fundamental areas: mathematical models and analysis for imaging sciences and inverse problems, tools and techniques from modern imaging sciences from medicine, biology, physics/chemistry, and earth science, algorithms in numerical methods and scientific computing and high performance computing skills and architecture oriented towards imaging sciences.

The course work follows the requirements of the general master's degree in the core course requirement. The general and focused elective requirements (requirements 3 and 4 below) are limited to approved courses listed below. Programming requirement (requirement 2) is extended to 6 units and includes course work in advanced scientific programming and high performance computing.

Requirement 1: Foundational (12 units)

Identical to the general ICME master’s program; see above.

Requirement 2: Programming (6 units)

To ensure that students have a strong foundation in programming, 3 units of advanced scientific programming for letter grade at the level of CME 212 and three units of parallel computing for letter grades are required. Programming proficiency at the level of CME 211 is a hard prerequisite for CME 212; CME 211 can be applied towards elective requirement.

Units
CME 211Software Development for Scientists and Engineers (*can only be used as an elective)3
Advanced Scientific Programming; take 3 units
CME 212Advanced Software Development for Scientists and Engineers3
CME 214Software Design in Modern Fortran for Scientists and Engineers3
Parallel /HPCComputing; take 3 units
CME 213Introduction to parallel computing using MPI, openMP, and CUDA3
CME 323Distributed Algorithms and Optimization3
CME 342Parallel Methods in Numerical Analysis3
GEOPHYS 257Introduction to Computational Earth Sciences2-4

Requirement 3: Imaging Sciences electives (18 units)

Imaging Sciences electives should demonstrate breadth of knowledge in the technical area. The elective course list is defined. Courses outside this list can be accepted as electives subject to approval. Petitions for approval should be submitted to student services.

Units
Take 18 units of the following:
APPPHYS 232Advanced Imaging Lab in Biophysics4
BIOE 220Introduction to Imaging and Image-based Human Anatomy3
CEE 362GImaging with Incomplete Information3-4
CME 279Computational Biology: Structure and Organization of Biomolecules and Cells3
CME 371Computational Biology in Four Dimensions3
CS 231NConvolutional Neural Networks for Visual Recognition3-4
EE 236AModern Optics3
EE 262Two-Dimensional Imaging3
EE 355Imaging Radar and Applications3
EE 367Computational Imaging and Display3
EE 368Digital Image Processing3
EE 369AMedical Imaging Systems I3
EE 369BMedical Imaging Systems II3
EE 369CMedical Image Reconstruction3
GEOPHYS 210Basic Earth Imaging2-3
GEOPHYS 211Environmental Soundings Image Estimation3
GEOPHYS 2803-D Seismic Imaging2-3
MATH 221BMathematical Methods of Imaging3
MATH 262Applied Fourier Analysis and Elements of Modern Signal Processing3
PSYCH 204AHuman Neuroimaging Methods3

Requirement 4: Specialized electives (6 units)

6 units of focused graduate application electives, approved by the ICME graduate adviser, in the areas of engineering, mathematics, physical, biological, information, and other quantitative sciences. These courses should be foundational depth courses relevant to the student's professional development and research interests.

Requirement 5: Seminar (3 units)

One unit of seminar must come from CME 500; two units are up to the student's choice of ICME graduate seminars or other approved seminars. Additional seminar units may not be counted towards the 45-unit requirement.

Mathematical and Computational Finance Track

The Mathematical & Computational Finance (MCF) track is an interdisciplinary program that provides education in applied and computational mathematics, statistics, and financial applications for individuals with strong mathematical skills. Upon successful completion of the MCF track in the ICME master's program, students will be prepared to assume positions in the financial industry as data and information scientists, quantitative strategists, risk managers, regulators, financial technologists, or to continue on to their Ph.D. in ICME, MS&E, Mathematics, Statistics, Finance, and other disciplines.

The Institute for Computational and Mathematical Engineering, in close cooperation with Mathematics, Management Science and Engineering and Statistics provides many of the basic courses. All 45 units must be taken for letter grade only.

Note: This new track in the ICME master's program supersedes, beginning in the Autumn Quarter of 2014, the interdisciplinary master's program (IDP) in Financial Mathematics in the School of Humanities & Sciences.

Requirement 1: Foundational (9 units)

Students must demonstrate foundational knowledge in the field by completing the following core courses. Courses in this area must be taken for letter grades. Deviations from the core curriculum must be justified in writing and approved by the student’s ICME adviser and the chair of the ICME curriculum committee. Courses that are waived may not be counted towards the master’s degree.

Units
CME 302Numerical Linear Algebra3
or CME 303 Partial Differential Equations of Applied Mathematics
or CME 305 Discrete Mathematics and Algorithms
CME 307Optimization3
or CME 364A Convex Optimization I
CME 308Stochastic Methods in Engineering3
or MATH 236 Introduction to Stochastic Differential Equations

Requirement 2: Programming (9 units)

To ensure that students have a strong foundation in programming, six units of advanced programming for letter grade at the level of CME 212 and 3 units of parallel computing for letter grade are required. Programming proficiency at the level of CME 211 is a hard prerequisite for CME 212.

Units
Advanced Scientific Programming; take 3-6 units
CME 211Software Development for Scientists and Engineers3
CME 212Advanced Software Development for Scientists and Engineers3
CME 214Software Design in Modern Fortran for Scientists and Engineers3
Parallel/HPC Computing; take 3 units
CME 213Introduction to parallel computing using MPI, openMP, and CUDA3
CME 323Distributed Algorithms and Optimization3
CME 342Parallel Methods in Numerical Analysis3
CS 149Parallel Computing3-4
CS 315AParallel Computer Architecture and Programming3
CS 316Advanced Multi-Core Systems3

Requirement 3: Finance electives (9 units)

Choose three courses from the following list; all nine units must be taken for letter grades.

Units
Financial Mathematics
MATH 238Mathematical Finance3
Financial Markets
FINANCE 320Debt Markets3
FINANCE 620Financial Markets I3
STATS 244Quantitative Trading: Algorithms, Data, and Optimization2-4
Other
CS 251Bitcoin and Crypto Currencies3
MS&E 347Credit Risk: Modeling and Management3
MS&E 348Optimization of Uncertainty and Applications in Finance3
MS&E 349Financial Statistics3
STATS 240Statistical Methods in Finance3-4
STATS 241Data-driven Financial and Risk Econometrics3-4
STATS 244PQuantitative Trading: Algorithms, Data and Optimization3

Requirement 4: Data Science electives (9 units)

Data Science electives should demonstrate breadth of knowledge in the technical area; all nine units should be taken for letter grade. The elective course list is defined below. Courses outside this list can be accepted as electives subject to approval prior to taking the course. Petitions for approval should be submitted to student services.

Units
Learning
CS 229Machine Learning3-4
STATS 315AModern Applied Statistics: Learning2-3
Mining
STATS 315BModern Applied Statistics: Data Mining2-3
CS 246Mining Massive Data Sets3-4
Other
CS 224NNatural Language Processing with Deep Learning3-4
STATS 240Statistical Methods in Finance3-4
STATS 244Quantitative Trading: Algorithms, Data, and Optimization3-4
STATS 241Data-driven Financial and Risk Econometrics3-4

Requirement 5: Practical component (9 units)

Students are required to take nine units of practical and project courses for letter grade ONLY from the courses listed below.

Units
CME 291Master's Research1-6
MS&E 246Financial Risk Analytics3
MS&E 347Credit Risk: Modeling and Management3
MS&E 348Optimization of Uncertainty and Applications in Finance3
MS&E 349Financial Statistics3
MS&E 447Systemic and Market Risk : Notes on Recent History, Practice, and Policy3
MS&E 448Big Financial Data and Algorithmic Trading3

Doctor of Philosophy in Computational and Mathematical Engineering

The University’s basic requirements for the Ph.D. degree are outlined in the "Graduate Degrees" section of this bulletin.

Applications to the Ph.D. program and all required supporting documents must be received by December 5, 2017. See Graduate Admissions for information and application materials. See the institute's admissions site for additional details. Applicants should take the Graduate Record Examination by October of the academic year in which the application is submitted.

Admission to the Ph.D. program does not imply that the student is a candidate for the Ph.D. degree. Advancement to candidacy requires superior academic achievement and passing the qualifying examination.

Requirements

  1. Complete a minimum of 135 units of residency at Stanford, including:
    1. 45 units from the master's program requirements; all six core courses have to be completed for letter grade.
    2. 27 units of electives for letter grade in an area planned with the student's Ph.D. adviser; 12 of these units should come from ICME specialized electives with significant computational content such as the CME 320-380 series. The focused and specialized elective component of the ICME program is meant to be broad and inclusive of relevant courses of comparable rigor to ICME courses. The elective course list following represents automatically accepted electives within the program. However, electives are not limited to the list below, and the list is expanded on a continuing basis; courses outside the list can be accepted as electives subject to approval by the student's ICME adviser. Research, directed study, and seminar units are excluded.
    3. 3 units of programming elective demonstrating programming proficiency.  Students are required to complete programming course at the level of CME 213 Introduction to parallel computing using MPI, openMP, and CUDA or higher for letter grade.
    4. 60 units of thesis research
  2. Maintain a grade point average (GPA) of 3.5.
  3. Pass the ICME qualifying examination before the beginning of the second year.
  4. Declare candidacy by the end of the second year
  5. File dissertation reading committee form by the end of third year
  6. Complete an approved program of original research.
  7. Complete a written dissertation based on research.
  8. Pass the oral examination that is a defense of the dissertation research.

Specialized Elective List

See requirement 1b above.

Units
CEE 362GImaging with Incomplete Information3-4
CME 279Computational Biology: Structure and Organization of Biomolecules and Cells3
CME 364A/364BConvex Optimization I3
CME 371Computational Biology in Four Dimensions3
CS 348AComputer Graphics: Geometric Modeling & Processing3-4
EE 368Digital Image Processing3
MATH 205AReal Analysis3
MATH 215AAlgebraic Topology3
MATH 221AMathematical Methods of Imaging3
MATH 221BMathematical Methods of Imaging3
MATH 227Partial Differential Equations and Diffusion Processes3
MATH 236Introduction to Stochastic Differential Equations3
MATH 238Mathematical Finance3
ME 335A/335B/335CFinite Element Analysis3
ME 346BIntroduction to Molecular Simulations3
ME 351A/351BFluid Mechanics3
ME 361Turbulence3
ME 408Spectral Methods in Computational Physics3
ME 412Engineering Functional Analysis and Finite Elements3
ME 469Computational Methods in Fluid Mechanics3
MS&E 319Approximation Algorithms3
MS&E 336Platform and Marketplace Design3
STATS 305AIntroduction to Statistical Modeling3
STATS 305BMethods for Applied Statistics I: Exponential Families in Theory and Practice3
STATS 305CMethods for Applied Statistics II: Applied Multivariate Statistics3
STATS 318Modern Markov Chains3
STATS 366Modern Statistics for Modern Biology3

Note: Students who need to complete 135 units at Stanford, should necessarily complete the CME master's requirements. All courses listed under "Requirement 2" under the "Master of Science in Computational and Mathematical Engineering" section can be used for fulfilling the general elective requirement.

Financial Assistance

The department awards a limited number of fellowships, course assistantships, and research assistantships to incoming graduate students. Applying for such assistance is part of submitting the application for admission to the program. Students are appointed for half-time assistantships which provide a tuition scholarship at the 8, 9, 10 unit rate during the academic year and a monthly stipend. Half-time appointments generally require 20 hours of work per week. Most course assistantships and research assistantships are awarded to students in the doctoral program in ICME. If the number of Ph.D. students is not sufficient to staff all course and research assistantship positions available, these positions may be open to master’s students. However, master’s students are not guaranteed financial assistance.

Ph.D. Minor in Computational and Mathematical Engineering

For a minor in Computational and Mathematical Engineering (CME), a doctoral candidate must complete 21 units of approved graduate level courses. These should include three ICME core courses and three ICME graduate electives at the 300 level or above and a programming course at the level of CME212 or higher.  All courses must be taken for a letter grade and passed with a grade of ‘B’ or better. Elective courses cannot be cross listed with the primary department. Minor programs should be developed in close discussion between the student and the student's primary Ph.D. adviser.

Emeriti: (Professors) Gunnar Carlsson (Mathematics), (Professors, Research) Walter Murray (Management Science and Engineering), Arogyaswami Paulraj (Electrical Engineering), Michael Saunders (Management Science and Engineering)

Director: Margot Gerritsen (Energy Resources Engineering)

Co-Director: Gianluca Iaccarino (Mechanical Engineering)

Professors: Juan Alonso (Aeronautics and Astronautics), Biondo Biondi (Geophysics), Stephen Boyd (Electrical Engineering), Carlos D. Bustamante (Biomedical Data Science, Genetics), Emanuel Candes (Mathematics, Statistics), Persi Diaconis (Mathematics, Statistics), David Donoho (Statistics), Charbel Farhat (Aeronautics and Astronautics, Mechanical Engineering), Ronald Fedkiw (Computer Science), Peter Glynn (Management Science and Engineering), Ashish Goel (Management Science and Engineering), Leonidas Guibas (Computer Science), Pat Hanrahan (Computer Science, Electrical Engineering), Jerry Harris (Geophysics), Trevor Hastie (Mathematics, Statistics), Doug James (Computer Science), Peter Kitanidis (Civil and Environmental Engineering), Tze Leung Lai (Statistics), Sanjiva Lele (Mechanical Engineering, Aeronautics and Astronautics), Parviz Moin (Mechanical Engineering), Brad Osgood (Electrical Engineering), Vijay Pande (Chemistry), George Papanicolaou (Mathematics), Peter Pinsky ( Mechanical Engineering), Lenya Ryzhik (Mathematics), Eric Shaqfeh (Chemical Engineering, Mechanical Engineering), Jonathan Taylor (Statistics), Hamdi Tchelepi (Energy Resources Engineering), Benjamin Van Roy (Management Science and Engineering, Electrical Engineering), Andras Vasy (Mathematics), Lawrence Wein (Graduate School of Business), Wing Wong (Statistics), Yinyu Ye (Management Science and Engineering), Lexing Ying (Mathematics, Institute for Computational and Mathematical Engineering)

Associate Professors: Eric Darve (Mechanical Engineering), Ron Dror (CS, Institute for Computational and Mathematical Engineering), Eric Dunham (Geophysics), Oliver Fringer (Civil and Environmental Engineering), Margot Gerritsen (Energy Resources Engineering),  Kay Giesecke (Management Science and Engineering), Gianluca Iaccarino (Mechanical Engineering), Ramesh Johari (Management Science and Engineering), Adrian Lew (Mechanical Engineering), Alison Marsden (Pediatrics, Bioengineering), Amin Saberi (Management Science and Engineering), Andrew Spakowitz (Chemical Engineering)

Assistant Professors: Ali Mani (Mechanical Engineering), Marco Pavone (Aeronautics and Astronautics), Bala Rajaratnam (Statistics, Enviornmental and Earth System Sciences), Aaron Daniel Sidford (Management Science and Engineering), Jenny Suckale (Geophysics), Johan Ugander (Management Science and Engineering)

Professors (Research): Antony Jameson (Aeronautics and Astronautics)

Senior Lecturer: Vadim Khayms

Lecturer: Hung Le

Adjunct Professor: Reza Bosagh-Zadeh, Hadley Wickham

Academic Staff: William Behrman, Kapil Jain

Courses of interest to students in the department may include:

Units
CEE 262AHydrodynamics3-4
CEE 262BTransport and Mixing in Surface Water Flows3-4
CEE 263AAir Pollution Modeling3-4
CEE 263BNumerical Weather Prediction3-4
CEE 294Computational Poromechanics3
CEE 362Numerical Modeling of Subsurface Processes3-4
CEE 362GImaging with Incomplete Information3-4
CS 205AMathematical Methods for Robotics, Vision, and Graphics3
CS 221Artificial Intelligence: Principles and Techniques3-4
CS 228Probabilistic Graphical Models: Principles and Techniques3-4
CS 229Machine Learning3-4
CS 232Digital Image Processing3
CS 261Optimization and Algorithmic Paradigms3
CS 268Geometric Algorithms3
CS 348AComputer Graphics: Geometric Modeling & Processing3-4
EE 256Numerical Electromagnetics3
EE 368Digital Image Processing3
ENERGY 223Reservoir Simulation3-4
ENERGY 224Advanced Reservoir Simulation3
ENERGY 241Seismic Reservoir Characterization3-4
ENERGY 281Applied Mathematics in Reservoir Engineering3
ENERGY 284Optimization and Inverse Modeling3
ENERGY 290Numerical Modeling of Fluid Flow in Heterogeneous Porous Media3
GEOPHYS 190Near-Surface Geophysics3
GEOPHYS 202Reservoir Geomechanics3
GEOPHYS 210Basic Earth Imaging2-3
GEOPHYS 211Environmental Soundings Image Estimation3
GEOPHYS 240Borehole Seismic Modeling and Imaging3
GEOPHYS 257Introduction to Computational Earth Sciences2-4
GEOPHYS 260Rock Physics for Reservoir Characterization3
GEOPHYS 262Rock Physics3
GEOPHYS 2803-D Seismic Imaging2-3
GEOPHYS 281Geophysical Inverse Problems3
GEOPHYS 287Earthquake Seismology3-5
GEOPHYS 288ACrustal Deformation3-5
GEOPHYS 288BCrustal Deformation3-5
GEOPHYS 290Tectonophysics3
MATH 136Stochastic Processes3
MATH 205AReal Analysis3
MATH 215AAlgebraic Topology3
MATH 236Introduction to Stochastic Differential Equations3
MATH 238Mathematical Finance3
ME 335AFinite Element Analysis3
ME 335BFinite Element Analysis3
ME 335CFinite Element Analysis3
ME 346BIntroduction to Molecular Simulations3
ME 351AFluid Mechanics3
ME 351BFluid Mechanics3
ME 361Turbulence3
ME 408Spectral Methods in Computational Physics3
ME 469Computational Methods in Fluid Mechanics3
STATS 219Stochastic Processes3
STATS 250Mathematical Finance3
STATS 310ATheory of Probability I2-4
STATS 310BTheory of Probability II2-3
STATS 310CTheory of Probability III2-4
STATS 318Modern Markov Chains3
ENERGY 274Complex Analysis for Practical Engineering3

Courses

CME 10. How to learn Mathematics - New ideas from the science of learning. 1 Unit.

This course will help provide the transition from high school to college learning and encourage the positive ideas and mindsets that shape productive learning. We willnconsider what learning theories have to tell us about mathematics learning, the nature of good teaching and the reasons for ongoing inequities in mathematics learning and participation. This seminar is for those who would like a more positive relationship with mathematics, and are interested in learning about ways to tackle education inequalities. Learning goals: First, it introduces students to theories of learning and in particular the learning of mathematics. Mathematics plays a key role in many students¿ learning identities and is often the cause of low self-esteem and anxiety. Research tells us that this is because mathematics in the US is taught in highly ineffective ways. Indeed there is a large gap between what we know works from research and what happens in most mathematics classrooms. This seminar will give participants an understanding of ways to relate positively to mathematics, to learn mathematics most productively and some of the learning barriers that often deny students the opportunity to engage with mathematics in productive ways.nSecond, the course will teach students about the inequalities that pervade the education system in the United States. We will examine the barriers to the participation of women and students of color and we will consider why social class and race are both strong predictors of mathematics achievement. It is hoped that students will leave the course with greater knowledge of why mathematics is important - to themselves and to the future of society.nCourse participants will be given the opportunity to take part in a mathematics camp, designed to change the pathways of middle school students, similar to this previous camp: https://www.youcubed.org/solving-math- problem/ and to take part in the work of youcubed.org. if they wish.
Same as: EDUC 105

CME 100. Vector Calculus for Engineers. 5 Units.

Computation and visualization using MATLAB. Differential vector calculus: analytic geometry in space, functions of several variables, partial derivatives, gradient, unconstrained maxima and minima, Lagrange multipliers. Introduction to linear algebra: matrix operations, systems of algebraic equations, methods of solution and applications. Integral vector calculus: multiple integrals in Cartesian, cylindrical, and spherical coordinates, line integrals, scalar potential, surface integrals, Green¿s, divergence, and Stokes¿ theorems. Examples and applications drawn from various engineering fields. Prerequisites: 10 units of AP credit (Calc BC with 5, or Calc AB with 5 or placing out of the single variable math placement test: https://exploredegrees-nextyear.stanford.edu/undergraduatedegreesandprograms/#aptextt), or MATH 19-21.
Same as: ENGR 154

CME 100A. Vector Calculus for Engineers, ACE. 6 Units.

Students attend CME100/ENGR154 lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Enrollment by department permission only. Prerequisite: must be enrolled in the regular CME100-01 or 02. Application at: https://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers.

CME 102. Ordinary Differential Equations for Engineers. 5 Units.

Analytical and numerical methods for solving ordinary differential equations arising in engineering applications: Solution of initial and boundary value problems, series solutions, Laplace transforms, and nonlinear equations; numerical methods for solving ordinary differential equations, accuracy of numerical methods, linear stability theory, finite differences. Introduction to MATLAB programming as a basic tool kit for computations. Problems from various engineering fields. Prerequisite: 10 units of AP credit (Calc BC with 5, or Calc AB with 5 or placing out of the single variable math placement test: https://exploredegreesnextyear.stanford.edu/undergraduatedegreesandprograms/#aptextt),), or MATH 19-21. Recommended: CME100.
Same as: ENGR 155A

CME 102A. Ordinary Differential Equations for Engineers, ACE. 6 Units.

Students attend CME102/ENGR155A lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Prerequisite: students must be enrolled in the regular section (CME102) prior to submitting application at:nhttps://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers.

CME 103. Introduction to Matrix Methods. 3-5 Units.

Introduction to applied linear algebra with emphasis on applications. Vectors, norm, and angle; linear independence and orthonormal sets; applications to document analysis. Clustering and the k-means algorithm. Matrices, left and right inverses, QR factorization. Least-squares and model fitting, regularization and cross-validation. Constrained and nonlinear least-squares. Applications include time-series prediction, tomography, optimal control, and portfolio optimization. Undergraduate students should enroll for 5 units, and graduate students should enroll for 3 units. Prerequisites:MATH 51 or CME 100, and basic knowledge of computing (CS 106A is more than enough, and can be taken concurrently). EE103/CME103 and MATH 104 cover complementary topics in applied linear algebra. The focus of EE103 is on a few linear algebra concepts, and many applications; the focus of MATH 104 is on algorithms and concepts.
Same as: EE 103

CME 104. Linear Algebra and Partial Differential Equations for Engineers. 5 Units.

Linear algebra: matrix operations, systems of algebraic equations, Gaussian elimination, undetermined and overdetermined systems, coupled systems of ordinary differential equations, eigensystem analysis, normal modes. Fourier series with applications, partial differential equations arising in science and engineering, analytical solutions of partial differential equations. Numerical methods for solution of partial differential equations: iterative techniques, stability and convergence, time advancement, implicit methods, von Neumann stability analysis. Examples and applications from various engineering fields. Prerequisite: CME 102/ENGR 155A.
Same as: ENGR 155B

CME 104A. Linear Algebra and Partial Differential Equations for Engineers, ACE. 6 Units.

Students attend CME104/ENGR155B lectures with additional recitation sessions; two to four hours per week, emphasizing engineering mathematical applications and collaboration methods. Prerequisite: students must be enrolled in the regular section (CME104) prior to submitting application at: https://engineering.stanford.edu/students/programs/engineering-diversity-programs/additional-calculus-engineers.

CME 106. Introduction to Probability and Statistics for Engineers. 4 Units.

Probability: random variables, independence, and conditional probability; discrete and continuous distributions, moments, distributions of several random variables. Topics in mathematical statistics: random sampling, point estimation, confidence intervals, hypothesis testing, non-parametric tests, regression and correlation analyses; applications in engineering, industrial manufacturing, medicine, biology, and other fields. Prerequisite: CME 100/ENGR154 or MATH 51 or 52.
Same as: ENGR 155C

CME 108. Introduction to Scientific Computing. 3 Units.

Introduction to Scientific Computing Numerical computation for mathematical, computational, physical sciences and engineering: error analysis, floating-point arithmetic, nonlinear equations, numerical solution of systems of algebraic equations, banded matrices, least squares, unconstrained optimization, polynomial interpolation, numerical differentiation and integration, numerical solution of ordinary differential equations, truncation error, numerical stability for time dependent problems and stiffness. Implementation of numerical methods in MATLAB programming assignments. Prerequisites: MATH 51, 52, 53; prior programming experience (MATLAB or other language at level of CS 106A or higher).
Same as: MATH 114

CME 151A. Interactive Data Visualization in D3. 1 Unit.

This four-week short course introduces D3, a powerful tool for creating interactive data visualizations on the web (d3js.org). The class is geared toward scientists and engineers who want to better communicate their personal projects and research through visualizations on the web. The class will cover the basics of D3: inputting data, creating scales and axes, and adding transitions and interactivity, as well as some of the most used libraries: stack, cluster and force layouts. The class will be based on short workshops and a final project. A background in programming methodology at the level of CS106A is assumed. The course will make use of Javascript, experience is recommended but not necessary.

CME 181. Projects in Applied and Computational Mathematics. 3 Units.

Teams of students use techniques in applied and computational mathematics to tackle problems of their choosing. Students will have the opportunity to pursue open-ended projects in a variety of areas: economics, physics, political science, operations research, etc. Projects can cover (but are not limited to!) topics such as mathematical modeling of real-world phenomena (population dynamics), data-driven applications (movie recommendations) or complex systems in engineering (optimal control). Each team will be paired with a graduate student mentor working in applied and computational mathematics. Limited enrollment. Prerequisites: CME 100/102/104 or equivalents, or instructor consent. Recommended: CME 106/108 and familiarity with programming at the level of CME 192/193.

CME 192. Introduction to MATLAB. 1 Unit.

This short course runs for the first four weeks/eight lectures of the quarter and is offered each quarter during the academic year. It is highly recommended for students with no prior programming experience who are expected to use MATLAB in math, science, or engineering courses. It will consist of interactive lectures and application-based assignments.nThe goal of the short course is to make students fluent in MATLAB and to provide familiarity with its wide array of features. The course covers an introduction of basic programming concepts, data structures, and control/flow; and an introduction to scientific computing in MATLAB, scripts, functions, visualization, simulation, efficient algorithm implementation, toolboxes, and more.

CME 193. Introduction to Scientific Python. 1 Unit.

This short course runs for the first four weeks of the quarter. It is recommended for students who are familiar with programming at least at the level of CS106A and want to translate their programming knowledge to Python with the goal of becoming proficient in the scientific computing and data science stack. Lectures will be interactive with a focus on real world applications of scientific computing. Technologies covered include Numpy, SciPy, Pandas, Scikit-learn, and others. Topics will be chosen from Linear Algebra, Optimization, Machine Learning, and Data Science. Prior knowledge of programming will be assumed, and some familiarity with Python is helpful, but not mandatory.

CME 195. Introduction to R. 1 Unit.

This short course runs for four weeks beginning in the second week of the quarter and is offered in fall and spring. It is recommended for students who want to use R in statistics, science, or engineering courses and for students who want to learn the basics of R programming. The goal of the short course is to familiarize students with R's tools for scientific computing. Lectures will be interactive with a focus on learning by example, and assignments will be application-driven. No prior programming experience is needed. Topics covered include basic data structures, File I/O, graphs, control structures, etc, and some useful packages in R.
Same as: STATS 195

CME 200. Linear Algebra with Application to Engineering Computations. 3 Units.

Computer based solution of systems of algebraic equations obtained from engineering problems and eigen-system analysis, Gaussian elimination, effect of round-off error, operation counts, banded matrices arising from discretization of differential equations, ill-conditioned matrices, matrix theory, least square solution of unsolvable systems, solution of non-linear algebraic equations, eigenvalues and eigenvectors, similar matrices, unitary and Hermitian matrices, positive definiteness, Cayley-Hamilton theory and function of a matrix and iterative methods. Prerequisite: familiarity with computer programming, and MATH51.
Same as: ME 300A

CME 204. Partial Differential Equations in Engineering. 3 Units.

Geometric interpretation of partial differential equation (PDE) characteristics; solution of first order PDEs and classification of second-order PDEs; self-similarity; separation of variables as applied to parabolic, hyperbolic, and elliptic PDEs; special functions; eigenfunction expansions; the method of characteristics. If time permits, Fourier integrals and transforms, Laplace transforms. Prerequisite: CME 200/ME 300A, equivalent, or consent of instructor.
Same as: ME 300B

CME 206. Introduction to Numerical Methods for Engineering. 3 Units.

Numerical methods from a user's point of view. Lagrange interpolation, splines. Integration: trapezoid, Romberg, Gauss, adaptive quadrature; numerical solution of ordinary differential equations: explicit and implicit methods, multistep methods, Runge-Kutta and predictor-corrector methods, boundary value problems, eigenvalue problems; systems of differential equations, stiffness. Emphasis is on analysis of numerical methods for accuracy, stability, and convergence. Introduction to numerical solutions of partial differential equations; Von Neumann stability analysis; alternating direction implicit methods and nonlinear equations. Prerequisites: CME 200/ME 300A, CME 204/ME 300B.
Same as: ME 300C

CME 207. Numerical Methods in Engineering and Applied Sciences. 3 Units.

Scientific computing and numerical analysis for physical sciences and engineering. Advanced version of CME206 that, apart from CME206 material, includes nonlinear PDEs, multidimensional interpolation and integration and an extended discussion of stability for initial boundary value problems. Recommended for students who have some prior numerical analysis experience. Topics include: 1D and multi-D interpolation, numerical integration in 1D and multi-D including adaptive quadrature, numerical solutions of ordinary differential equations (ODEs) including stability, numerical solutions of 1D and multi-D linear and nonlinear partial differential equations (PDEs) including concepts of stability and accuracy. Prerequisites: linear algebra, introductory numerical analysis (CME 108 or equivalent).
Same as: AA 214A, GEOPHYS 217

CME 211. Software Development for Scientists and Engineers. 3 Units.

Basic usage of the Python and C/C++ programming languages are introduced and used to solve representative computational problems from various science and engineering disciplines. Software design principles including time and space complexity analysis, data structures, object-oriented design, decomposition, encapsulation, and modularity are emphasized. Usage of campus wide Linux compute resources: login, file system navigation, editing files, compiling and linking, file transfer, etc. Versioning and revision control, software build utilities, and the LaTeX typesetting software are introduced and used to help complete programming assignments. Prerequisite: introductory programming course equivalent to CS 106A or instructor consent.
Same as: EARTH 211

CME 212. Advanced Software Development for Scientists and Engineers. 3 Units.

Advanced topics in software development, debugging, and performance optimization are covered. The capabilities and usage of common libraries and frameworks such as BLAS, LAPACK, FFT, PETSc, and MKL/ACML are reviewed. Computer representation of integer and floating point numbers, and interoperability between C/C++ and Fortran is described. More advanced software engineering topics including: representing data in files, signals, unit and regression testing, and build automation. The use of debugging tools including static analysis, gdb, and Valgrind are introduced. An introduction to computer architecture covering processors, memory hierarchy, storage, and networking provides a foundation for understanding software performance. Profiles generated using gprof and perf are used to help guide the performance optimization process. Computational problems from various science and engineering disciplines will be used in assignments. Prerequisites: CME 200 / ME 300A and CME 211.

CME 213. Introduction to parallel computing using MPI, openMP, and CUDA. 3 Units.

This class will give hands on experience with programming multicore processors, graphics processing units (GPU), and parallel computers. Focus will be on the message passing interface (MPI, parallel clusters) and the compute unified device architecture (CUDA, GPU). Topics will include: network topologies, modeling communication times, collective communication operations, parallel efficiency, MPI, dense linear algebra using MPI. Symmetric multiprocessing (SMP), pthreads, openMP. CUDA, combining MPI and CUDA, dense linear algebra using CUDA, sort, reduce and scan using CUDA. Pre-requisites include: C programming language and numerical algorithms (solution of differential equations, linear algebra, Fourier transforms).
Same as: ME 339

CME 214. Software Design in Modern Fortran for Scientists and Engineers. 3 Units.

This course introduces software design and development in modern Fortran. Course covers the functional, object-oriented-, and parallel programming features introduced in the Fortran 95, 2003, and 2008 standards, respectively, in the context of numerical approximations to ordinary and partial differential equations; introduces object-oriented design and design schematics based on the Unified Modeling Language (UML) structure, behavior, and interaction diagrams; cover the basic use of several open-source tools for software building, testing, documentation generation, and revision control. Recommended: Familiarity with programming in Fortran 90, basic numerical analysis and linear algebra, or instructor approval.
Same as: EARTH 214

CME 215A. Advanced Computational Fluid Dynamics. 3 Units.

High resolution schemes for capturing shock waves and contact discontinuities; upwinding and artificial diffusion; LED and TVD concepts; alternative flow splittings; numerical shock structure. Discretization of Euler and Navier Stokes equations on unstructured meshes; the relationship between finite volume and finite element methods. Time discretization; explicit and implicit schemes; acceleration of steady state calculations; residual averaging; math grid preconditioning. Automatic design; inverse problems and aerodynamic shape optimization via adjoint methods. Pre- or corequisite: 214B or equivalent.
Same as: AA 215A

CME 215B. Advanced Computational Fluid Dynamics. 3 Units.

High resolution schemes for capturing shock waves and contact discontinuities; upwinding and artificial diffusion; LED and TVD concepts; alternative flow splittings; numerical shock structure. Discretization of Euler and Navier Stokes equations on unstructured meshes; the relationship between finite volume and finite element methods. Time discretization; explicit and implicit schemes; acceleration of steady state calculations; residual averaging; math grid preconditioning. Automatic design; inverse problems and aerodynamic shape optimization via adjoint methods. Pre- or corequisite: 214B or equivalent.
Same as: AA 215B

CME 232. Introduction to Computational Mechanics. 3 Units.

Provides an introductory overview of modern computational methods for problems arising primarily in mechanics of solids and is intended for students from various engineering disciplines. The course reviews the basic theory of linear solid mechanics and introduces students to the important concept of variational forms, including the principle of minimum potential energy and the principles of virtual work. Specific model problems that will be considered include deformation of bars, beams and membranes, plates, and problems in plane elasticity (plane stress, plane strain, axisymmetric elasticity). The variational forms of these problems are used as the starting point for developing the finite element method (FEM) and boundary element method (BEM) approaches ­ providing an important connection between mechanics and computational methods.
Same as: ME 332

CME 237. Networks, Markets, and Crowds. 3 Units.

The course explores the underlying network structure of our social, economic, and technological worlds and uses techniques from graph theory and economics to examine the structure & evolution of information networks, social contagion, the spread of social power and popularity, and information cascades. Prerequisites: basic graph and probability theory.
Same as: MS&E 237

CME 239B. Workshop in Quantitative Finance. 1 Unit.

Topics of current interest. May be repeated for credit.
Same as: STATS 239B

CME 242. Mathematical and Computational Finance Seminar. 1 Unit.

May be repeat for credit.
Same as: MS&E 446A, STATS 239

CME 243. Risk Analytics and Management in Finance and Insurance. 3 Units.

Market risk and credit risk, credit markets. Back testing, stress testing and Monte Carlo methods. Logistic regression, generalized linear models and generalized mixed models. Loan prepayment and default as competing risks. Survival and hazard functions, correlated default intensities, frailty and contagion. Risk surveillance, early warning and adaptive control methodologies. Banking and bank regulation, asset and liability management. Prerequisite: STATS 240 or equivalent.
Same as: STATS 243

CME 244. Project Course in Mathematical and Computational Finance. 1-6 Unit.

For graduate students in the MCF track; students will work individually or in groups on research projects.

CME 245. Topics in Mathematical and Computational Finance. 1 Unit.

Description: Current topics for enrolled students in the MCF program: This course is an introduction to computational, statistical, and optimizations methods and their application to financial markets. Class will consist of lectures and real-time problem solving. Topics: Python & R programming, interest rates, Black-Scholes model, financial time series, capital asset pricing model (CAPM), options, optimization methods, and machine learning algorithms. Appropriate for anyone with a technical and solid applied math background interested in honing skills in quantitative finance. Prerequisite: basic statistics and exposure to programming.Can be repeated up to three times.

CME 249. Using Design for Effective Data Analysis. 1 Unit.

Teams of students use techniques in applied and computational mathematics to tackle problems with real world data sets. Application of design methodology adapted for data analysis will be emphasized; leverage design thinking to come up with efficient and effective data driven insights; explore design thinking methodology in small group setting.;apply design thinking to a specific data centric problem and make professional group presentation of the results. Limited enrollment. Prerequisites: CME100/102/104 or equivalents, or instructor consent. Recommended:CME106/108 and familiarity with programming at the level of CME 192/193.

CME 249A. Statistical Arbitrage. 1 Unit.

Course will cover trading strategies that are bottom up, market neutral, with trading driven by statistical or econometric models and strategies such as pair trading and index arbitrage. Models may focus on tendency of short term returns to revert, leads/lags among correlated instruments, volume momentum, or behavioral effects. nTopics include: (a) a taxonomy of market participants and what motivates trading, (b) methods of exploring relationships between instruments, (c) portfolio construction across a large number of instruments, (d) risks inherent in statistical arbitrage (e) nonstationarity of relationships due to changes in market regulations, fluctuations in market volatility and other factors and (f) frictions such as costs of trading and constraints. Students will team to analyze the provided data sets which cover distinct dynamic market regimes.

CME 250. Introduction to Machine Learning. 1 Unit.

A Short course presenting the principles behind when, why, and how to apply modern machine learning algorithms. We will discuss a framework for reasoning about when to apply various machine learning techniques, emphasizing questions of over-fitting/under-fitting, regularization, interpretability, supervised/unsupervised methods, and handling of missing data. The principles behind various algorithms--the why and how of using them--will be discussed, while some mathematical detail underlying the algorithms--including proofs--will not be discussed. Unsupervised machine learning algorithms presented will include k-means clustering, principal component analysis (PCA), and independent component analysis (ICA). Supervised machine learning algorithms presented will include support vector machines (SVM), classification and regression trees (CART), boosting, bagging, and random forests. Imputation, the lasso, and cross-validation concepts will also be covered. The R programming language will be used for examples, though students need not have prior exposure to R. Prerequisite: undergraduate-level linear algebra and statistics; basic programming experience (R/Matlab/Python).

CME 250A. Machine Learning on Big Data. 1 Unit.

A short course presenting the application of machine learning methods to large datasets.Topics include: brief review of the common issues of machine learning, such as, memorizing/overfitting vs learning, test/train splits, feature engineering, domain knowledge, fast/simple/dumb learners vs slow/complex/smart learners; moving your model from your laptop into a production environment using Python (scikit) or R on small data (laptop sized) at first; building math clusters using the open source H2O product to tackle Big Data, and finally to some model building on terabyte sized datasets. Prereqresites: basic knowledge of statistics, matrix algebra, and unix-like operating systems; basic file and text manipulation skills with unix tools: pipes, cut, paste, grep, awk, sed, sort, zip; programming skill at the level of CME211 or CS106A.

CME 251. Geometric and Topological Data Analysis. 3 Units.

Mathematical computational tools for the analysis of data with geometric content, such images, videos, 3D scans, GPS traces -- as well as for other data embedded into geometric spaces. Global and local geometry descriptors allowing for various kinds of invariances. The rudiments of computational topology and persistent homology on sampled spaces. Clustering and other unsupervised techniques. Spectral methods for geometric data analysis. Non-linear dimensionality reduction. Alignment, matching, and map computation between geometric data sets. Function spaces and functional maps.Networks of data sets and joint analysis for segmentation and labeling. The emergence of abstractions or concepts from data. Prerequisites: discrete algorithms at the level of 161; linear algebra at the level of CME103.
Same as: CS 233

CME 253. Introduction to GPU Computing and CUDA. 1 Unit.

Covers the fundamentals of accelerating applications with GPUs (Graphics Processing Units); GPU programming with CUDA and OpenACC, debugging, thrust/CUB, profiling, optimization, debugging, and other CUDA tools. Libraries to easily accelerate compute code will be presented and deployment on larger systems will be addressed, including multi-GPU environments. Several practical examples will be detailed, including deep learning. Pre-requiste: knowledge of C/C++ at the level of CME211 or CS106b.

CME 257. Advanced Topics in Scientific Computing with Julia. 1 Unit.

This course will rapidly introduce students to the Julia programming language, with the goal of giving students the knowledge and experience necessary to navigate the language and package ecosystem while using Julia for their own scientific computing needs. The course will begin with learning the basics of Julia, and then introduce students to git version control and package development. Additional topics include: common packages, parallelism, interfacing with shared object libraries, and aspects of Julia's implementation (e.g. core numerical linear algebra). Lectures will be interactive, with an emphasis on collaboration and learning by example. Prerequisites: Data structures at the level of CS106B, experience with one or more scientific computing languages (e.g. Python, Matlab, or R), and some familiarity with the Unix shell. No prior experience with Julia or git is required.

CME 262. Imaging with Incomplete Information. 3-4 Units.

Statistical and computational methods for inferring images from incomplete data. Bayesian inference methods are used to combine data and quantify uncertainty in the estimate. Fast linear algebra tools are used to solve problems with many pixels and many observations. Applications from several fields but mainly in earth sciences. Prerequisites: Linear algebra and probability theory.
Same as: CEE 362G

CME 263. Introduction to Linear Dynamical Systems. 3 Units.

Applied linear algebra and linear dynamical systems with applications to circuits, signal processing, communications, and control systems. Topics: least-squares approximations of over-determined equations, and least-norm solutions of underdetermined equations. Symmetric matrices, matrix norm, and singular-value decomposition. Eigenvalues, left and right eigenvectors, with dynamical interpretation. Matrix exponential, stability, and asymptotic behavior. Multi-input/multi-output systems, impulse and step matrices; convolution and transfer-matrix descriptions. Control, reachability, and state transfer; observability and least-squares state estimation. Prerequisites: linear algebra and matrices as in EE103 or MATH104; ordinary differential equations and Laplace transforms as in CME 102 or EE102B.
Same as: EE 263

CME 279. Computational Biology: Structure and Organization of Biomolecules and Cells. 3 Units.

Computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules and cells. These computational methods play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course topics include protein structure prediction, protein design, drug screening, molecular simulation, cellular-level simulation, image analysis for microscopy, and methods for solving structures from crystallography and electron microscopy data. Prerequisites: elementary programming background (CS 106A or equivalent) and an introductory course in biology or biochemistry.
Same as: BIOE 279, BIOMEDIN 279, BIOPHYS 279, CS 279

CME 285. Computational Modeling in the Cardiovascular System. 3 Units.

This course introduces computational modeling methods for cardiovascular blood flow and physiology. Topics in this course include analytical and computational methods for solutions of flow in deformable vessels, one-dimensional equations of blood flow, cardiovascular anatomy, lumped parameter models, vascular trees, scaling laws, biomechanics of the circulatory system, and 3D patient specific modeling with finite elements; course will provide an overview of the diagnosis and treatment of adult and congenital cardiovascular diseases and review recent research in the literature in a journal club format. Students will use SimVascular software to do clinically-oriented projects in patient specific blood flow simulations.
Same as: BIOE 285, ME 285

CME 291. Master's Research. 1-6 Unit.

Students require faculty sponsor. (Staff).

CME 292. Advanced MATLAB for Scientific Computing. 1 Unit.

Short course running first four weeks of the quarter (8 lectures) with interactive online lectures and application based assignment. Students will access the lectures and assignments on https://suclass.stanford.edu. Students will be introduced to advanced MATLAB features, syntaxes, and toolboxes not traditionally found in introductory courses. Material will be reinforced with in-class examples, demos, and homework assignment involving topics from scientific computing. MATLAB topics will be drawn from: advanced graphics (2D/3D plotting, graphics handles, publication quality graphics, animation), MATLAB tools (debugger, profiler), code optimization (vectorization, memory management), object-oriented programming, compiled MATLAB (MEX files and MATLAB coder), interfacing with external programs, toolboxes (optimization, parallel computing, symbolic math, PDEs). Scientific computing topics will include: numerical linear algebra, numerical optimization, ODEs, and PDEs.

CME 298. Basic Probability and Stochastic Processes with Engineering Applications. 3 Units.

Calculus of random variables and their distributions with applications. Review of limit theorems of probability and their application to statistical estimation and basic Monte Carlo methods. Introduction to Markov chains, random walks, Brownian motion and basic stochastic differential equations with emphasis on applications from economics, physics and engineering, such as filtering and control. Prerequisites: exposure to basic probability.
Same as: MATH 158

CME 300. First Year Seminar Series. 1 Unit.

Required for first-year ICME Ph.D. students; recommended for first-year ICME M.S. students. Presentations about research at Stanford by faculty and researchers from Engineering, H&S, and organizations external to Stanford. May be repeated for credit.

CME 302. Numerical Linear Algebra. 3 Units.

Solution of linear systems, accuracy, stability, LU, Cholesky, QR, least squares problems, singular value decomposition, eigenvalue computation, iterative methods, Krylov subspace, Lanczos and Arnoldi processes, conjugate gradient, GMRES, direct methods for sparse matrices. Prerequisites: CME 108, MATH 114, MATH 104.

CME 303. Partial Differential Equations of Applied Mathematics. 3 Units.

First-order partial differential equations; method of characteristics; weak solutions; elliptic, parabolic, and hyperbolic equations; Fourier transform; Fourier series; and eigenvalue problems. Prerequisite: Basic coursework in multivariable calculus and ordinary differential equations, and some prior experience with a proof-based treatment of the material as in MATH 171 or MATH 61CM (formerly Math 51H).
Same as: MATH 220

CME 305. Discrete Mathematics and Algorithms. 3 Units.

Topics: Basic Algebraic Graph Theory, Matroids and Minimum Spanning Trees, Submodularity and Maximum Flow, NP-Hardness, Approximation Algorithms, Randomized Algorithms, The Probabilistic Method, and Spectral Sparsification using Effective Resistances. Topics will be illustrated with applications from Distributed Computing, Machine Learning, and large-scale Optimization. Prerequisites: CS 261 is highly recommended, although not required.
Same as: MS&E 316

CME 306. Numerical Solution of Partial Differential Equations. 3 Units.

Hyperbolic partial differential equations: stability, convergence and qualitative properties; nonlinear hyperbolic equations and systems; combined solution methods from elliptic, parabolic, and hyperbolic problems. Examples include: Burger's equation, Euler equations for compressible flow, Navier-Stokes equations for incompressible flow. Prerequisites: MATH 220A or CME 302.
Same as: MATH 226

CME 307. Optimization. 3 Units.

Applications, theories, and algorithms for finite-dimensional linear and nonlinear optimization problems with continuous variables. Elements of convex analysis, first- and second-order optimality conditions, sensitivity and duality. Algorithms for unconstrained optimization, and linearly and nonlinearly constrained problems. Modern applications in communication, game theory, auction, and economics. Prerequisites: MATH 113, 115, or equivalent.
Same as: MS&E 311

CME 308. Stochastic Methods in Engineering. 3 Units.

The basic limit theorems of probability theory and their application to maximum likelihood estimation. Basic Monte Carlo methods and importance sampling. Markov chains and processes, random walks, basic ergodic theory and its application to parameter estimation. Discrete time stochastic control and Bayesian filtering. Diffusion approximations, Brownian motion and an introduction to stochastic differential equations. Examples and problems from various applied areas. Prerequisites: exposure to probability and background in analysis.
Same as: MATH 228, MS&E 324

CME 309. Randomized Algorithms and Probabilistic Analysis. 3 Units.

Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases, are more efficient and simpler than their deterministic counterparts. This course covers the key tools of probabilistic analysis, and application of these tools to understand the behaviors of random processes and algorithms. Emphasis is on theoretical foundations, though we will apply this theory broadly, discussing applications in machine learning and data analysis, networking, and systems. Topics include tail bounds, the probabilistic method, Markov chains, and martingales, with applications to analyzing random graphs, metric embeddings, random walks, and a host of powerful and elegant randomized algorithms. Prerequisites: CS 161 and STAT 116, or equivalents and instructor consent.
Same as: CS 265

CME 321A. Mathematical Methods of Imaging. 3 Units.

Image denoising and deblurring with optimization and partial differential equations methods. Imaging functionals based on total variation and l-1 minimization. Fast algorithms and their implementation.
Same as: MATH 221A

CME 321B. Mathematical Methods of Imaging. 3 Units.

Array imaging using Kirchhoff migration and beamforming, resolution theory for broad and narrow band array imaging in homogeneous media, topics in high-frequency, variable background imaging with velocity estimation, interferometric imaging methods, the role of noise and inhomogeneities, and variational problems that arise in optimizing the performance of array imaging algorithms.
Same as: MATH 221B

CME 322. Spectral Methods in Computational Physics. 3 Units.

Data analysis, spectra and correlations, sampling theorem, nonperiodic data, and windowing; spectral methods for numerical solution of partial differential equations; accuracy and computational cost; fast Fourier transform, Galerkin, collocation, and Tau methods; spectral and pseudospectral methods based on Fourier series and eigenfunctions of singular Sturm-Liouville problems; Chebyshev, Legendre, and Laguerre representations; convergence of eigenfunction expansions; discontinuities and Gibbs phenomenon; aliasing errors and control; efficient implementation of spectral methods; spectral methods for complicated domains; time differencing and numerical stability.
Same as: ME 408

CME 323. Distributed Algorithms and Optimization. 3 Units.

The emergence of large distributed clusters of commodity machines has brought with it a slew of new algorithms and tools. Many fields such as Machine Learning and Optimization have adapted their algorithms to handle such clusters. Topics include distributed algorithms for: Optimization, Numerical Linear Algebra, Machine Learning, Graph analysis, Streaming algorithms, and other problems that are challenging to scale on a commodity cluster. The class will focus on analyzing parallel programs, with some implementation using Apache Spark.

CME 325. Numerical Approximations of Partial Differential Equations in Theory and Practice. 1-2 Unit.

Finite volume and finite difference methods for initial boundary value problems in multiple space dimensions. Emphasis is on formulation of boundary conditions for the continuous and the discrete problems. Analysis of numerical methods with respect to stability, accuracy, and error behavior. Techniques of treating non-rectangular domains, and effects of non-regular grids.

CME 326. Numerical Methods for Initial Boundary Value Problems. 3 Units.

Initial boundary value problems model many phenomena in engineering and science such as, fluid flow problems, wave propagation, fluid-structure interaction, conjugate heat transfer and financial mathematics. We discuss numerical techniques for such simulations and focus on the underlying principles and theoretical understanding. Emphasis is on stability, convergence and efficiency for methods applied to hyperbolic and parabolic initial boundary value problems.

CME 327. Numerical Methods for Stiff Problems. 3 Units.

Focus is on analysis of numerical techniques for stiff ordinary differential equations, including those resulting from spatial discretization of partial differential equations. Topics include stiffness, convergence, stability, adaptive time stepping, implicit time-stepping methods (SDIRK, Rosenbrock), linear and nonlinear system solvers (Fixed Point, Newton, Multigrid, Krylov subspace methods) and preconditioning. Pre-requisites: CME200/ME300A or equivalent; or consent of instructor.

CME 328. Advanced Topics in Partial Differential Equations. 3 Units.

Contents change each time and is taught as a topics course, most likely by a faculty member visiting from another institution. May be repeated for credit. Topic in 2012-13: numerical solution of time-dependent partial differential equations is a fundamental tool for modeling and prediction in many areas of science and engineering. In this course we explore the stability, accuracy, efficiency, and appropriateness of specialized temporal integration strategies for different classes of partial differential equations including stiff problems and fully implicit methods, operator splitting and semi-implicit methods, extrapolation methods, multirate time integration, multi-physics problems, symplectic integration, and temporal parallelism. Prerequisites: recommended CME303 and 306 or with instructor's consent.

CME 330. Applied Mathematics in the Chemical and Biological Sciences. 3 Units.

Mathematical solution methods via applied problems including chemical reaction sequences, mass and heat transfer in chemical reactors, quantum mechanics, fluid mechanics of reacting systems, and chromatography. Topics include generalized vector space theory, linear operator theory with eigenvalue methods, phase plane methods, perturbation theory (regular and singular), solution of parabolic and elliptic partial differential equations, and transform methods (Laplace and Fourier). Prerequisites: CME 102/ENGR 155A and CME 104/ENGR 155B, or equivalents.
Same as: CHEMENG 300

CME 334. Advanced Methods in Numerical Optimization. 3 Units.

Topics include interior-point methods, relaxation methods for nonlinear discrete optimization, sequential quadratic programming methods, optimal control and decomposition methods. Topic chosen in first class; different topics for individuals or groups possible. Individual or team projects. May be repeated for credit.
Same as: MS&E 312

CME 335. Advanced Topics in Numerical Linear Algebra. 3 Units.

Possible topics: Classical and modern (e.g., focused on provable communication minimization) algorithms for executing dense and sparse-direct factorizations in high-performance, distributed-memory environments; distributed dense eigensolvers, dense and sparse-direct triangular solvers, and sparse matrix-vector multiplication; unified analysis of distributed Interior Point Methods for symmetric cones via algorithms for distributing Jordan algebras over products of second-order cones and Hermitian matrices. May be repeated for credit. Prerequisites: CME 302 and CME 304 (or equivalents).

CME 336. Linear and Conic Optimization with Applications. 3 Units.

Linear, semidefinite, conic, and convex nonlinear optimization problems as generalizations of classical linear programming. Algorithms include the interior-point, barrier function, and cutting plane methods. Related convex analysis, including the separating hyperplane theorem, Farkas lemma, dual cones, optimality conditions, and conic inequalities. Complexity and/or computation efficiency analysis. Applications to combinatorial optimization, sensor network localization, support vector machine, and graph realization. Prerequisite: MS&E 211 or equivalent.
Same as: MS&E 314

CME 338. Large-Scale Numerical Optimization. 3 Units.

The main algorithms and software for constrained optimization emphasizing the sparse-matrix methods needed for their implementation. Iterative methods for linear equations and least squares. The simplex method. Basis factorization and updates. Interior methods. The reduced-gradient method, augmented Lagrangian methods, and SQP methods. Prerequisites: Basic numerical linear algebra, including LU, QR, and SVD factorizations, and an interest in MATLAB, sparse-matrix methods, and gradient-based algorithms for constrained optimization. Recommended: MS&E 310, 311, 312, 314, or 315; CME 108, 200, 302, 304, 334, or 335.
Same as: MS&E 318

CME 342. Parallel Methods in Numerical Analysis. 3 Units.

Emphasis is on techniques for obtaining maximum parallelism in numerical algorithms, especially those occurring when solving matrix problems, partial differential equations, and the subsequent mapping onto the computer. Implementation issues on parallel computers. Topics: parallel architecture, programming models (MPI, GPU Computing with CUDA ¿ quick review), matrix computations, FFT, fast multiple methods, domain decomposition, graph partitioning, discrete algorithms. Prerequisites: 302 or 200 (ME 300A), 213 or equivalent, or consent of instructor. Recommended: differential equations and knowledge of a high-level programming language such as C or C++ (F90/95 also allowable).

CME 345. Model Reduction. 3 Units.

Model reduction is an indispensable tool for computational-based design and optimization, statistical analysis, embedded computing, and real-time optimal control. This course presents the basic mathematical theory for projection-based model reduction. Topics include: notions of linear dynamical systems and projection; projection-based model reduction; error analysis; proper orthogonal decomposition; Hankel operator and balancing of a linear dynamical system; balanced truncation method: modal truncation and other reduction methods for linear oscillators; model reduction via moment matching methods based on Krylov subspaces; introduction to model reduction of parametric systems and notions of nonlinear model reduction. Course material is complemented by a balanced set of theoretical, algorithmic and Matlab computer programming assignments. Prerequisites: CME 200 or equivalent, CME 263 or equivalent and basic numerical methods for ODEs.

CME 356. Engineering Functional Analysis and Finite Elements. 3 Units.

Concepts in functional analysis to understand models and methods used in simulation and design. Topology, measure, and integration theory to introduce Sobolev spaces. Convergence analysis of finite elements for the generalized Poisson problem. Extensions to convection-diffusion-reaction equations and elasticity. Upwinding. Mixed methods and LBB conditions. Analysis of nonlinear and evolution problems. Prerequisites: 335A,B, CME 200, CME 204, or consent of instructor. Recommended: 333, MATH 171.
Same as: ME 412

CME 358. Finite Element Method for Fluid Mechanics. 3 Units.

Mathematical theory of the finite element method for incompressible flows; related computational algorithms and implementation details. Poisson equation; finite element method for simple elliptic problems; notions of mathematical analysis of non-coercive partial differential equations; the inf-sup or Babushka-Brezzi condition and its applications to the Stokes and Darcy problems; presentation of stable mixed finite element methods and corresponding algebraic solvers; stabilization approaches in the context of advection-diffusion equation; numerical solution of the incompressible Navier-Stokes equations by finite element method. Theoretical, computational, and MATLAB computer programming assignments. Prerequisites: foundation in multivariate calculus and ME 335A or equivalent.

CME 362. An Introduction to Compressed Sensing. 3 Units.

Compressed sensing is a new data acquisition theory asserting that one can design nonadaptive sampling techniques that condense the information in a compressible signal into a small amount of data. This revelation may change the way engineers think about signal acquisition. Course covers fundamental theoretical ideas, numerical methods in large-scale convex optimization, hardware implementations, connections with statistical estimation in high dimensions, and extensions such as recovery of data matrices from few entries (famous Netflix Prize).
Same as: STATS 330

CME 364A. Convex Optimization I. 3 Units.

Convex sets, functions, and optimization problems. The basics of convex analysis and theory of convex programming: optimality conditions, duality theory, theorems of alternative, and applications. Least-squares, linear and quadratic programs, semidefinite programming, and geometric programming. Numerical algorithms for smooth and equality constrained problems; interior-point methods for inequality constrained problems. Applications to signal processing, communications, control, analog and digital circuit design, computational geometry, statistics, machine learning, and mechanical engineering. Prerequisite: linear algebra such as EE263, basic probability.
Same as: CS 334A, EE 364A

CME 364B. Convex Optimization II. 3 Units.

Continuation of 364A. Subgradient, cutting-plane, and ellipsoid methods. Decentralized convex optimization via primal and dual decomposition. Monotone operators and proximal methods; alternating direction method of multipliers. Exploiting problem structure in implementation. Convex relaxations of hard problems. Global optimization via branch and bound. Robust and stochastic optimization. Applications in areas such as control, circuit design, signal processing, and communications. Course requirements include project. Prerequisite: 364A.
Same as: EE 364B

CME 371. Computational Biology in Four Dimensions. 3 Units.

Cutting-edge research on computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules, cells, and everything in between. These techniques, which draw on approaches ranging from physics-based simulation to machine learning, play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course is devoted primarily to reading, presentation, discussion, and critique of papers describing important recent research developments. Prerequisite: CS 106A or equivalent, and an introductory course in biology or biochemistry. Recommended: some experience in mathematical modeling (does not need to be a formal course).
Same as: BIOMEDIN 371, BIOPHYS 371, CS 371

CME 372. Applied Fourier Analysis and Elements of Modern Signal Processing. 3 Units.

Introduction to the mathematics of the Fourier transform and how it arises in a number of imaging problems. Mathematical topics include the Fourier transform, the Plancherel theorem, Fourier series, the Shannon sampling theorem, the discrete Fourier transform, and the spectral representation of stationary stochastic processes. Computational topics include fast Fourier transforms (FFT) and nonuniform FFTs. Applications include Fourier imaging (the theory of diffraction, computed tomography, and magnetic resonance imaging) and the theory of compressive sensing.
Same as: MATH 262

CME 375. Advanced Topics in Convex Optimization. 3 Units.

Modern developments in convex optimization: semidefinite programming; novel and efficient first-order algorithms for smooth and nonsmooth convex optimization. Emphasis on numerical methods suitable for large scale problems arising in science and engineering. Prerequisites: convex optimization (EE 364), linear algebra (MATH 104), numerical linear algebra (CME 302); background in probability, statistics, real analysis and numerical optimization.
Same as: MATH 301

CME 390. Curricular Practical Training. 1 Unit.

Educational opportunities in high technology research and development labs in applied mathematics. Qualified ICME students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and follow-on projects they expect to perform. May be repeated three times for credit.

CME 399. Special Research Topics in Computational and Mathematical Engineering. 1-15 Unit.

Graduate-level research work not related to report, thesis, or dissertation. May be repeated for credit.

CME 400. Ph.D. Research. 1-15 Unit.

.

CME 444. Computational Consulting. 1-3 Unit.

Advice by graduate students under supervision of ICME faculty. Weekly briefings with faculty adviser and associated faculty to discuss ongoing consultancy projects and evaluate solutions. May be repeated for credit.

CME 500. Departmental Seminar. 1 Unit.

Weekly research lectures by doctoral students, experts from academia, national laboratories, and industry. May be repeated for credit.

CME 510. Linear Algebra and Optimization Seminar. 1 Unit.

Recent developments in numerical linear algebra and numerical optimization. Guest speakers from other institutions and local industry. Goal is to bring together scientists from different theoretical and application fields to solve complex scientific computing problems. May be repeated for credit.

CME 520. Topics in Simulation of Human Physiology & Anatomical Systems. 1 Unit.

Biweekly interdisciplinary lecture series on the development of computational tools for modeling and simulation of human physiological and anatomical systems. Lectures by instructors and guest speakers on topics such as surgical simulation, anatomical & surgical Modeling, neurological Systems, and biomedical models of human movement. Group discussions, team based assignments, and project work.nPrerequisite: Medical students, residents or fellows from school of medicine, and computationally oriented students with a strong interest to explore computational and mathematical methods related to the health sciences.
Same as: SURG 253

CME 801. TGR Project. 0 Units.

.

CME 802. TGR Dissertation. 0 Units.

.