# Computing and Mathematical Sciences (CMS) Undergraduate Courses (2020-21)

CMS/ACM/IDS 107.
Linear Analysis with Applications.
12 units (3-0-9):
first term.
Prerequisites: ACM/IDS 104 or equivalent, Ma 1 b or equivalent.
Covers the basic algebraic, geometric, and topological properties of normed linear spaces, inner-product spaces, and linear maps. Emphasis is placed both on rigorous mathematical development and on applications to control theory, data analysis and partial differential equations.
Instructor: Stuart.

CMS/ACM/IDS 113.
Mathematical Optimization.
12 units (3-0-9):
first term.
Prerequisites: ACM 11 and ACM 104, or instructor's permission.
This class studies mathematical optimization from the viewpoint of convexity. Topics covered include duality and representation of convex sets; linear and semidefinite programming; connections to discrete, network, and robust optimization; relaxation methods for intractable problems; as well as applications to problems arising in graphs and networks, information theory, control, signal processing, and other engineering disciplines.
Instructor: Chandrasekaran.

CMS/ACM 117.
Probability Theory and Stochastic Processes.
12 units (3-0-9):
first term.
Prerequisites: ACM/IDS 104, ACM/EE/IDS 116 or instructor's permission.
This course offers a rigorous introduction to probability and stochastic processes. Emphasis is placed on the interaction between inequalities and limit theorems, as well as contemporary applications in computing and mathematical sciences. Topics include probability measures, random variables and expectation, independence, concentration inequalities, distances between probability measures, modes of convergence, laws of large numbers and central limit theorem, Gaussian and Poisson approximation, conditional expectation and conditional distributions, filtrations, and discrete-time martingales.
Instructor: Tropp.

CMS/CS/IDS 139.
Analysis and Design of Algorithms.
12 units (3-0-9):
second term.
Prerequisites: Ma 2, Ma 3, Ma/CS 6a, CS 21, CS 38/138, and ACM/EE/IDS 116 or CMS/ACM/IDS 113 or equivalent.
This course develops core principles for the analysis and design of algorithms. Basic material includes mathematical techniques for analyzing performance in terms of resources, such as time, space, and randomness. The course introduces the major paradigms for algorithm design, including greedy methods, divide-and-conquer, dynamic programming, linear and semidefinite programming, randomized algorithms, and online learning.
Instructor: Mahadev.

CMS/CS/EE/IDS 144.
Networks: Structure & Economics.
12 units (3-4-5):
second term.
Prerequisites: Ma 2, Ma 3, Ma/CS 6 a, and CS 38, or instructor permission.
Social networks, the web, and the internet are essential parts of our lives, and we depend on them every day. This course studies how they work and the "big" ideas behind our networked lives. Questions explored include: What do networks actually look like (and why do they all look the same)?; How do search engines work?; Why do memes spread the way they do?; How does web advertising work? For all these questions and more, the course will provide a mixture of both mathematical analysis and hands-on labs. The course expects students to be comfortable with graph theory, probability, and basic programming.
Instructor: Wierman.

CMS/CS/CNS/EE/IDS 155.
Machine Learning & Data Mining.
12 units (3-3-6):
second term.
Prerequisites: CS/CNS/EE 156 a.
Having a sufficient background in algorithms, linear algebra, calculus, probability, and statistics, is highly recommended. This course will cover popular methods in machine learning and data mining, with an emphasis on developing a working understanding of how to apply these methods in practice. The course will focus on basic foundational concepts underpinning and motivating modern machine learning and data mining approaches. We will also discuss recent research developments.
Instructor: Pachter.

CMS/CS/EE 166.
Computational Cameras.
12 units (3-3-6):
third term.
Prerequisites: ACM 104 or ACM 107 or equivalent.
Computational cameras overcome the limitations of traditional cameras, by moving part of the image formation process from hardware to software. In this course, we will study this emerging multi-disciplinary field at the intersection of signal processing, applied optics, computer graphics, and vision. At the start of the course, we will study modern image processing and image editing pipelines, including those encountered on DSLR cameras and mobile phones. Then we will study the physical and computational aspects of tasks such as coded photography, light-field imaging, astronomical imaging, medical imaging, and time-of-flight cameras. The course has a strong hands-on component, in the form of homework assignments and a final project. In the homework assignments, students will have the opportunity to implement many of the techniques covered in the class. Example homework assignments include building an end-to-end HDR imaging pipeline, implementing Poisson image editing, refocusing a light-field image, and making your own lensless "scotch-tape" camera.
Instructor: Bouman.

### Please Note

The online version of the Caltech Catalog is provided as a convenience; however, the printed version is the only authoritative source of information about course offerings, option requirements, graduation requirements, and other important topics.