Algorithms and Data Structures

Understand how to construct efficient solutions for different problems in CS

RATIONALE

Algorithms are used everywhere in computer science. Being able to construct and optimise your own algorithms are crucial, especially if you're attempting to land a software engineering role at a large tech company. Having strong algorithmic knowledge opens doors in:

  • Software engineering
  • Algorithmic trading
  • Machine learning
  • Data science
  • Formal verification for software

RESOURCES

Courses School Prerequisites
Introduction to Algorithms MIT Maths for CS
Basic Algorithms Princeton Maths for CS
Advanced Algorithms Princeton Maths for CS

CHECKLIST SUMMARY

  • Complexity analysis
  • Recursion
  • Sorting
  • Searching
  • Stacks
  • Queues
  • Linked lists
  • Trees
  • Graphs
  • Dynamic programming