Skip to main content
CoursebeginnerFree

Algorithmic Toolbox

University of California San Diego

This online course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

Visit resource
Also charted under:Algorithm Complexity

More resources on Algorithms

BookPaid

Introduction to Algorithms (CLRS)

Textbook covering sorting, data structures, graph algorithms, dynamic programming, greedy methods, and NP-completeness, with pseudocode and formal proofs of correctness and running time. Readers finish able to analyze asymptotic complexity and justify algorithm choices mathematically.

CourseFree

Algorithms, Part I

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms. All the features of this course are available for free. People who are interested in digging deeper into the content may wish to obtain the textbook Algorithms, Fourth Edition (upon which the course is based) or visit the website algs4.cs.princeton.edu for a wealth of additional material. This course does not offer a certificate upon completion.

WebsiteFree

cp-algorithms.com

Open-source translation of the Russian e-maxx algorithm compendium, with articles on number theory, combinatorics, graph algorithms, string processing, and geometry. Each entry pairs a derivation with tested C++ code you can adapt for contest problems.

CourseFree

Introduction to Algorithms (MIT 6.006)

MIT's undergraduate introduction, with video lectures, problem sets, and exams covering asymptotic analysis, sorting, hashing, binary search trees, graph search, shortest paths, and dynamic programming. Assignments use Python, so you implement each technique rather than only proving it.

CourseFree

Topics in Theoretical Computer Science: An Algorithmist's Toolkit (MIT 18.409)

Geometric and spectral techniques used in modern algorithm design, starting with spectral graph theory: graph Laplacians, spectral partitioning, Cheeger's inequality, expanders and random walks. 25 lecture-note files and problem sets equip learners to apply eigenvalue methods to algorithmic problems.

WebsiteFree

Princeton Algorithms 4

Companion site to Sedgewick and Wayne's Algorithms, fourth edition, with free Java implementations, exercises, lecture slides, and test data for sorting, searching, graphs, and strings. Readers can study working code alongside the textbook's analysis.

See all Algorithms resources →