This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; and number-theoretic algorithms.
This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; and number-theoretic algorithms.
This course is highly recommended for students looking to gain a deep understanding of algorithm design and analysis. It provides a solid foundation in the core concepts and techniques that are essential for success in computer science and software engineering. The course is suitable for both beginners and experienced learners, and the diverse range of topics covered makes it a valuable resource for anyone interested in improving their problem-solving and algorithmic skills.
Learn by Doing from Your Browser Sidebar
Simply install the browser extension and click to launch GetVM directly from your sidebar.
Choose your OS, IDE, or app from our playground library and launch it instantly.
Practice within the VM while following tutorials or videos side-by-side. Save your work with Pro for easy continuity.