

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of the CME 305 / MS&E 316 course on Discrete Mathematics and Algorithms offered by Stanford University. The course covers theoretical foundations of discrete mathematics and algorithms, mathematical tools for combinatorial optimization, discrete mathematical structures, and algorithmic paradigms for optimizing over them. The course is split into four units covering combinatorial methods, algebraic/randomized methods, NP-hardness/approximation algorithms, and polyhedral/primal-dual techniques. The course assumes strong foundations in mathematics and introduces several algorithmic concepts early in the course. Lecture notes are provided as the primary source of course material.
Typology: Lecture notes
1 / 3
This page cannot be seen from the preview
Don't miss anything!


Discrete Mathematics and Algorithms CME 305 / MS&E 316 Professor: Aaron Sidford ([email protected] / Huang 358) TAs : Ananthakrishnan Ganesan ([email protected]), Arun Jambulapati ([email protected]), and Nolan Skochdopole ([email protected]) Lectures : Tuesday / Thursday - 10:30AM – 11:50AM in School of Education 128 Website : Canvas (go here for further course information, e.g. office hours, psets, announcements, etc.) Course Overview This class will introduce the theoretical foundations of discrete mathematics and algorithms. Emphasis will be on providing mathematical tools for combinatorial optimization, i.e. how to efficiently optimize over large structured finite sets. The course will provide a rigorous understanding of both discrete mathematical structures, e.g. graphs, matroids, submodular functions, set systems, etc., as well algorithmic paradigms for optimizing over them, e.g. greedy methods, linear programming, randomized methods, etc. The class constitutes a fast-paced proof-based introduction to the broad area of designing and analyzing algorithms for combinatorial problems. By course completion you should have a solid foundation to enable future theoretical research and practical work on discrete problems. The material of the course will be split up roughly into 4 units that we describe below. The progression loosely follows the history of the field and is designed to give you a broad set of tools.
Prerequisites This class will assume strong foundations in mathematics, i.e. linear algebra, probability, set theory, etc.; having had an undergraduate course in algorithms is not required. However, we will introduce several algorithmic concepts early in the course and use them extensively. If you are unfamiliar with these, we encourage you to go to office hours and consult the suggested reading material. The sooner you internalize these, the easier the course will be. If you have questions about prerequisites or suspect that lectures are assuming too much prior knowledge, please do not hesitate to contact the professor or TAs. Course Material There are a few sources of course material that you are responsible for and will be tested on in the homeworks, midterm, and final. Here we cover each in slightly greater detail.