Algorithm Design and Analysis
Offered By: University of Pennsylvania via edX
Course Description
Overview
This course is running for one last time and will retire soon. Last day to enroll is November 23rd.
How do you optimally encode a text file? How do you find shortest paths in a map? How do you design a communication network? How do you route data in a network? What are the limits of efficient computation?
This course, part of the Computer Science Essentials for Software Development Professional Certificate program, is an introduction to design and analysis of algorithms, and answers along the way these and many other interesting computational questions.
You will learn about algorithms that operate on common data structures, for instance sorting and searching; advanced design and analysis techniques such as dynamic programming and greedy algorithms; advanced graph algorithms such as minimum spanning trees and shortest paths; NP-completeness theory; and approximation algorithms.
After completing this course you will be able to design efficient and correct algorithms using sophisticated data structures for complex computational tasks.
Syllabus
Week 1: Mathematical Preliminaries; Asymptotic analysis and recurrence relations; Sorting and Searching; Heaps and Binary Search Trees
Week 2: Algorithm Design Paradigms - Divide-and-Conquer algorithms, Dynamic Programming, Greedy Algorithms
Week 3: Graphs and graph traversals; minimum spanning trees; shortest paths
Week 4: Flows; NP-completeness; Approximation Algorithms
Taught by
Sampath Kannan
Tags
Related Courses
Algorithms: Design and Analysis, Part 2Stanford University via Coursera Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
Stanford University via Coursera 算法设计与分析(高级) | Advanced Design and Analysis of Algorithms
Peking University via edX Algorithms: Design and Analysis, Part 2
Stanford University via edX Dynamic Programming, Greedy Algorithms, and Intractability
University of Colorado Boulder via Coursera