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

Computer Science: Algorithms, Theory, and Machines (Coursera) Coursera
Princeton University

Computer Science: Algorithms, Theory, and Machines (Coursera)

This course introduces the broader discipline of computer science to people having basic familiarity with Java programming. It covers the second half of our book Computer Science: An Interdisciplinary Approach (the first half is covered in our Coursera course Computer Science: Programming with a Purpose, to be released in the fall of 2018). Our intent is to demystify computation and to build awareness about the substantial intellectual underpinnings and rich history of the field of computer science.

Aug 10th 2026
5-12 Weeks
Computer Science: Programming with a Purpose (Coursera) Coursera
Princeton University

Computer Science: Programming with a Purpose (Coursera)

The basis for education in the last millennium was “reading, writing, and arithmetic;” now it is reading, writing, and computing. Learning to program is an essential part of the education of every student, not just in the sciences and engineering, but in the arts, social sciences, and humanities, as well. Beyond direct applications, it is the first step in understanding the nature of computer science’s undeniable impact on the modern world.

Aug 10th 2026
5-12 Weeks
Solving Algorithms for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Solving Algorithms for Discrete Optimization (Coursera)

Discrete Optimization aims to make good decisions when we have many possibilities to choose from. Its applications are ubiquitous throughout our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports.

Aug 10th 2026
4 Weeks
The Fundamental of Data-Driven Investment (Coursera) Coursera
Sungkyunkwan University - SKKU

The Fundamental of Data-Driven Investment (Coursera)

In this course, the instructor will discuss the fundamental analysis of investment using R programming. The course will cover investment analysis topics, but at the same time, make you practice it using R programming. This course's focus is to train you to do the elemental analysis for investment management that you might need to do in your job every day. Additionally, the study note to do using Python programming will be provided.

Aug 10th 2026
4 Weeks
System Validation (2): Model process behaviour (Coursera) Coursera
EIT Digital

System Validation (2): Model process behaviour (Coursera)

System Validation is the field that studies the fundamentals of system communication and information processing. It is the next logical step in computer science and improving software development in general. It allows automated analysis based on behavioural models of a system to see if a system works correctly. We want to guarantee that the systems does exactly what it is supposed to do.

Aug 17th 2026
3 Weeks
Remote Sensing Image Acquisition, Analysis and Applications (Coursera) Coursera
UNSW Sydney - University of New South Wales

Remote Sensing Image Acquisition, Analysis and Applications (Coursera)

Welcome to Remote Sensing Image Acquisition, Analysis and Applications, in which we explore the nature of imaging the earth's surface from space or from airborne vehicles. This course covers the fundamental nature of remote sensing and the platforms and sensor types used. It also provides an in-depth treatment of the computational algorithms employed in image understanding, ranging from the earliest historically important techniques to more recent approaches based on deep learning.

Aug 17th 2026
13-24 Weeks
Programming Fundamentals (Coursera) Coursera
Duke University

Programming Fundamentals (Coursera)

Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class.

Aug 10th 2026
4 Weeks
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Aug 17th 2026
5-12 Weeks
Introdução à Ciência da Computação com Python Parte 2 (Coursera) Coursera
Universidade de São Paulo, Brasil

Introdução à Ciência da Computação com Python Parte 2 (Coursera)

Bem vindo ao curso de Introdução à Ciência da Computação destinado aos alunos regulares da Universidade de São Paulo! Esta é a segunda parte do Curso, onde você vai continuar a aprender os principais conceitos introdutórios de Ciência da Computação e também aprenderá a desenvolver pequenos programas na linguagem Python.

Aug 10th 2026
5-12 Weeks