Loading...
Loading...
Learn to design algorithms, prove they are correct and analyse how fast they run, from sorting to NP-completeness.
Free, no-obligation chat · Affordable plans that fit your budget · Start this week
About this course
Design and analysis of algorithms asks you to do more than code a solution. You must prove it is correct, work out its running time and justify that nothing faster is likely. Students often get stuck on recurrences and the master theorem, spotting when to use greedy or dynamic programming, and writing reductions for NP-completeness.
This course follows the standard university syllabus used with the textbooks by Cormen, Leiserson, Rivest and Stein, by Kleinberg and Tardos and by Erickson: asymptotic analysis, recurrences and the master theorem, divide and conquer, greedy algorithms, dynamic programming, graph algorithms, network flow, NP-completeness, approximation and randomised algorithms.
Use our free Java data structures and algorithms lessons for extra practice, or learn with an affordable 1:1 mentor who explains your lectures, models proofs and analyses, and helps you prepare for problem sets and exams. Message us on WhatsApp or email, or fill in the short form, for a free, no-obligation chat. We will suggest a plan that fits your budget and flexible timings in your time zone, and you can start this week.
Outcomes
Detailed syllabus
Every module lists its topics and what you will be able to do. Where we have a matching free lesson, it is linked so you can study or revise on your own.
How to measure and compare the cost of algorithms.
By the end of this module you can
Covered in 1:1 mentoring sessions
Finding the running time of recursive algorithms.
By the end of this module you can
Covered in 1:1 mentoring sessions
Splitting a problem, solving the parts and combining the answers.
By the end of this module you can
Limits of comparison sorting and the structures used in algorithm design.
By the end of this module you can
Making the best local choice and proving it is globally optimal.
By the end of this module you can
Solving problems by combining answers to overlapping subproblems.
By the end of this module you can
Traversals, shortest paths and structure of graphs.
By the end of this module you can
Moving as much as possible through a network.
By the end of this module you can
Problems that are believed to have no fast exact algorithm.
By the end of this module you can
Covered in 1:1 mentoring sessions
Practical approaches when exact solutions are too slow.
By the end of this module you can
Covered in 1:1 mentoring sessions
Ways to learn
A mentor who knows this course plans sessions around your goal, explains each idea with fresh examples and checks your understanding. Personal attention, flexible timings in your time zone and affordable plans that fit your budget.
Talk to our teamShort lessons in plain English with examples you run in your browser, quizzes and practice. Learn at your pace, and add a mentor whenever you want help.
How it works
Four simple steps to start Algorithms and Complexity with a mentor. A real person replies to you; there is no booking system.
Message us on WhatsApp or email, or fill in the short form. The first chat is free, with no obligation.
We listen to your goal, level and deadlines, then suggest a plan that fits your budget and timings.
Online 1:1 sessions with a mentor who knows your course, explains clearly and checks your understanding.
Keep going between sessions with practice, and watch your confidence grow week by week.
Learn by doing
Implement merge sort, quicksort and heap sort, time them on different inputs and compare the results with the theory.
Collect ten recurrences, solve each by the method that suits it and write a short guide on choosing the method.
Solve knapsack, LCS and edit distance with a table, print the table and rebuild the optimal answer.
Implement Edmonds-Karp and use it to solve a small bipartite assignment problem, then verify the min cut.
Write careful NP-completeness proofs for three problems, each with the reduction, correctness in both directions and the running time.
Your progress
Milestones from the start, middle and end of the syllabus.
Classify functions by growth rate and prove asymptotic bounds
Early on
Write the recurrence, base cases and table order for a DP problem
Halfway
Analyse the approximation ratio of a simple algorithm
By the end
FAQs
Free, no-obligation chat
Tell us what you need. Our support team replies within one working day, by email or WhatsApp, whichever you prefer, and arranges your mentor.
Prefer to talk first?
Message the support team directly. We usually reply the same day.
Our mentors teach and explain. They never complete graded work, tests or assessments for students.
Keep going
Complexity, arrays, lists, trees, graphs, sorting, greedy and dynamic programming.
Logic, proofs, sets, relations, counting, probability, graphs and recurrences.
Finite automata, regular and context-free languages, Turing machines, decidability and NP.
Contest techniques: fast input, patterns, graphs, DP, number theory and practice.
Patterns, core questions, communication and mock rounds for coding interviews.
Last reviewed
Message us on WhatsApp or email, or fill in the short form. Our team replies with a plan that fits your goal and budget, and you can start this week.
Talk to us about a mentor