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.