Introduction to Graduate Algorithms (Udacity)

Introduction to Graduate Algorithms (Udacity)
Free Course
Categories
Effort
Certification
Languages
Misc

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

Introduction to Graduate Algorithms (Udacity)
This is a graduate-level course in the design and analysis of algorithms. We study techniques for the design of algorithms (such as dynamic programming) and algorithms for fundamental problems (such as fast Fourier transform or FFT).

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

In addition, we study computational intractability, specifically, the theory of NP-completeness. The main topics covered in the course include: dynamic programming; divide and conquer, including FFT; randomized algorithms, including RSA cryptosystem and hashing using Bloom filters; graph algorithms; max-flow algorithms; linear programming; and NP-completeness.

The design and analysis of algorithms form an essential basis for computer science. This course is useful for those who want to pursue advanced studies in computer science, as well as those who want to work as a software engineer.


What you will learn


Dynamic Programming

Fibonacci Numbers, Longest Increasing Subsequence (LIS), Longest Common Subsequence (LCS)

Knapsack, Chain Matrix Multiplication

Shortest Path Algorithms


Randomized Algorithms

Modular Arithmetic: Fast Modular Exponentiation, Multiplicative Inverses

RSA Cryptosystem: Fermat's Little Theorem, RSA Protocol, Primality Testing

Hashing: Traditional Chain Hashing, Bloom Filters


Divide and Conquer

Fast Integer Multiplication

Linear-Time Median

Fast Fourier Transform


Graph Algorithms

Strongly Connected Components, 2-Satisfiability

Minimum Spanning Tree

Markov Chains, PageRank


Max-Flow Problems

Ford-Fulkerson Algorithm

Max-Flow Min-Cut Theorem, Edmonds-Karp Algorithm

Max-Flow applied to Image Segmentation


Linear Programming

Simplex Algorithm

Weak and Strong Duality

Max-SAT Approximation


NP-Completeness

Complexity Classes: P, NP, NP-Complete

NP-Complete Problems: 3-SAT, Independent Set, Clique, Vertex Cover, Knapsack, Subset-Sum

Halting Problem


Prerequisites and requirements

Students are expected to have an undergraduate course on the design and analysis of algorithms. In particular, they should be familiar with basic graph algorithms, including DFS, BFS, and Dijkstra's shortest path algorithm, and basic dynamic programming and divide and conquer algorithms (including solving recurrences). An undergraduate course in discrete mathematics is assumed, and students should be comfortable analyzing the asymptotic running time of algorithms.

The course uses the textbook Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani.



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