An introductory guided tour to the field of data structures, algorithms, and complexity analysis.
The phrase "Get Great Performance for Free!" sounds like a quote from bad commercial, but when it comes to algorithms and data structures, that may actually be the case. This introductory course shows how the use of common data structures may simplify and even significantly impact performance of solutions to typical real-life everyday programming problems. The course gently introduces the viewer for "complexity analysis" which makes it possible to spot a poorly (and a great) performing program, even without the need for executing it. Complexity analysis is an invaluable tool or "language" for discussing performance with colleagues - and it's not even difficult. After having covered the most common data structures, the course continues to describe some general strategies (algorithms) to efficiently solve more high-level problems. Like with data structures, it is shown how a careful choice of problem solving strategy can dramatically reduce computation time. The last part of the course shifts the focus a bit and shortly teases a few popular theoretical subjects and explains, at a purely intuitive level, what the complexity classes P, NP, and the famous problem, P = NP, is all about.
The phrase "Get Great Performance for Free!" sounds like a quote from bad commercial, but when it comes to algorithms and data structures, that may actually be the case. This introductory course shows how the use of common data structures may simplify and even significantly impact performance of solutions to typical real-life everyday programming problems. The course gently introduces the viewer for "complexity analysis" which makes it possible to spot a poorly (and a great) performing program, even without the need for executing it. Complexity analysis is an invaluable tool or "language" for discussing performance with colleagues - and it's not even difficult. After having covered the most common data structures, the course continues to describe some general strategies (algorithms) to efficiently solve more high-level problems. Like with data structures, it is shown how a careful choice of problem solving strategy can dramatically reduce computation time. The last part of the course shifts the focus a bit and shortly teases a few popular theoretical subjects and explains, at a purely intuitive level, what the complexity classes P, NP, and the famous problem, P = NP, is all about.