Approximation Algorithms Part II (Coursera)

Approximation Algorithms Part II (Coursera)

This is the continuation of Approximation algorithms, Part 1. Here you will learn linear programming duality applied to the design of some approximation algorithms, and semidefinite programming applied to Maxcut. By taking the two parts of this course, you will be exposed to a range of problems at the foundations of theoretical computer science, and to powerful design and analysis techniques.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Upon completion, you will be able to recognize, when faced with a new combinatorial optimization problem, whether it is close to one of a few known basic problems, and will be able to design linear programming relaxations and use randomized rounding to attempt to solve your own problem. The course content and in particular the homework is of a theoretical nature without any programming assignments.
This is the second of a two-part course on Approximation Algorithms, this is the continuation of Approximation algorithms, Part 1

Syllabus

WEEK 1
Linear Programming Duality
This module does not study any specific combinatorial optimization problem. Instead, it introduces a central feature of linear programming, duality.

WEEK 2
Steiner Forest and Primal-Dual Approximation Algorithms
This module uses linear programming duality to design an algorithm for another basic problem, the Steiner forest problem.

WEEK 3
Facility Location and Primal-Dual Approximation Algorithms
This module continues teaching algorithmic applications of linear programming duality by applying it to another basic problem, the facility location problem.

WEEK 4
Maximum Cut and Semi-Definite Programming
We introduce a generalization of linear programming, semi-definite programming.This module uses semi-definite programming to design an approximation algorithm for another basic problem, the maximum cut problem.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Practical Steps for Building Fair AI Algorithms (Coursera) Coursera
Fred Hutchinson Cancer Center

Practical Steps for Building Fair AI Algorithms (Coursera)

Algorithms increasingly help make high-stakes decisions in healthcare, criminal justice, hiring, and other important areas. This makes it essential that these algorithms be fair, but recent years have shown the many ways algorithms can have biases by age, gender, nationality, race, and other attributes. This course will teach you ten practical principles for designing fair algorithms. It will emphasize real-world relevance via concrete takeaways from case studies of modern algorithms, including those in criminal justice, healthcare, and large language models like ChatGPT. You will come away with an understanding of the basic rules to follow when trying to design fair algorithms, and assess algorithms for fairness.

Nov 9th 2026
4 Weeks
Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Architecting Smart IoT Devices (Coursera)

This course will teach you how to develop an embedded systems device. In order to reduce the time to market, many pre-made hardware and software components are available today. You'll discover all the available hardware and software components, such as processor families, operating systems, boards and networks. You'll also learn how to actually use and integrate these components.

Nov 16th 2026
5-12 Weeks
An Introduction to Logic for Computer Science (Coursera) Coursera
University of Leeds

An Introduction to Logic for Computer Science (Coursera)

Logic plays a fundamental role in computer science. This course is designed to equip you with a solid understanding of the fundamental principles of logic and their relevance in the field of computer science. In this course, you'll explore proposition logic and discover its practical applications in problem-solving, algorithm design, and the development of intelligent systems. By engaging in hands-on exercises, exploring real-world examples, and participating in discussions, you'll develop strong logical reasoning and critical thinking skills.

Nov 16th 2026
2 Weeks
How Computers Work (Coursera) Coursera
University of London,Goldsmiths, University of London

How Computers Work (Coursera)

Computers are everywhere, they aren't just the desktops and laptops we use for work but the phones in our pockets and even the watches on our wrists are also computers. You probably use a computer every day and in fact you are reading this on a computer! Just because we use computers all the time, doesn't mean that we understand them, or find them easy to use. Computer Science is the science of computers, it is the field of knowledge that experts use to understand computer systems. Knowing a little computer science will help you understand the computers all around you.

Nov 16th 2026
4 Weeks
Analytic Combinatorics (Coursera) Coursera
Princeton University

Analytic Combinatorics (Coursera)

Analytic Combinatorics teaches a calculus that enables precise quantitative predictions of large combinatorial structures. This course introduces the symbolic method to derive functional relations among ordinary, exponential, and multivariate generating functions, and methods in complex analysis for deriving accurate asymptotics from the GF equations. All the features of this course are available for free. It does not offer a certificate upon completion.

Nov 2nd 2026
5-12 Weeks
Information Theory (Coursera) Coursera
The Chinese University of Hong Kong

Information Theory (Coursera)

At the completion of this course, the student should be able to: demonstrate knowledge and understanding of the fundamentals of information theory; appreciate the notion of fundamental limits in communication systems and more generally all systems; develop deeper understanding of communication systems; apply the concepts of information theory to various disciplines in information science.

Nov 2nd 2026
13-24 Weeks
Algorithms, Part II (Coursera) Coursera
Princeton University

Algorithms, Part II (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Nov 9th 2026
5-12 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Nov 2nd 2026
4 Weeks