- Learn To Think Like A Computer Scientist, Algorithms - Stanford University - Coursera
This specialization is an introduction to algorithms for learners with at least a little programming experience. The specialization is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. After completing this specialization, you will be well-positioned to ace your technical interviews and speak fluently about algorithms with other programmers and computer scientists.
- INTRODUCTION
- ASYMPTOTIC ANALYSIS
- DIVIDE & CONQUER ALGORITHMS
- THE MASTER METHOD
- QUICKSORT - ALGORITHM
- QUICKSORT - ANALYSIS
- PROBABILITY REVIEW
- LINEAR-TIME SELECTION
- GRAPHS AND THE CONTRACTION ALGORITHM
- GRAPH SEARCH AND CONNECTIVITY
- DIJKSTRA'S SHORTEST-PATH ALGORITHM
- HEAPS
- BALANCED BINARY SEARCH TREES
- HASHING: THE BASICS
- UNIVERSAL HASHING
- BLOOM FILTERS
- TWO MOTIVATING APPLICATIONS
- INTRODUCTION TO GREEDY ALGORITHMS
- A SCHEDULING APPLICATION
- PRIM'S MINIMUM SPANNING TREE ALGORITHM
- KRUSKAL'S MINIMUM SPANNING TREE ALGORITHM
- CLUSTERING
- ADVANCED UNION-FIND
- HUFFMAN CODES
- INTRODUCTION TO DYNAMIC PROGRAMMING
- THE KNAPSACK PROBLEM
- SEQUENCE ALIGNMENT
- OPTIMAL BINARY SEARCH TREES
- THE BELLMAN-FORD ALGORITHM
- ALL-PAIRS SHORTEST PATHS
- NP-COMPLETE PROBLEMS
- FASTER EXACT ALGORITHMS FOR NP-COMPLETE PROBLEMS
- APPROXIMATION ALGORITHMS FOR NP-COMPLETE PROBLEMS
- LOCAL SEARCH ALGORITHMS
- THE WIDER WORLD OF ALGORITHMS
- Tim Roughgarden - Associate Professor, Computer Science