• Mohamed Amneh

Data Structures and Algorithms Specialization

Master Algorithmic Programming Techniques. Advance your Software Engineering or Data Science Career by Learning Algorithms through Programming and Puzzle Solving. Ace coding interviews by implementing each algorithmic challenge in this Specialization. Apply the newly-learned algorithmic techniques to real-life problems, such as analyzing a huge social network or sequencing a genome of a deadly pathogen.

There are 6 Courses in this Specialization

  1. Algorithms on Graphs

  2. Algorithmic Toolbox

  3. Algorithms on Strings

  4. Advanced Algorithms and Complexity

  5. Genome Assembly Programming Challenge

  6. Data Structures


  • Play with 50 algorithmic puzzles on your smartphone to develop your algorithmic intuition! Apply algorithmic techniques (greedy algorithms, binary search, dynamic programming, etc.) and data structures (stacks, queues, trees, graphs, etc.) to solve 100 programming challenges that often appear at interviews at high-tech companies. Get an instant feedback on whether your solution is correct.

  • Apply the newly learned algorithms to solve real-world challenges: navigating in a Big Network or assembling a genome of a deadly pathogen from millions of short substrings of its DNA.

  • Learn exactly the same material as undergraduate students in “Algorithms 101” at top universities and more! We are excited that students from various parts of the world are now studying our online materials in the Algorithms 101 classes at their universities. Here is a quote from the website of Professor Sauleh Eetemadi from Iran University of Science and Technology: “After examining syllabus and course material from top universities including Stanford, Princeton and MIT we have chosen to follow the Data Structures and Algorithms Specialization from UCSD and HSE due to excellent course material and its practical approach.”

  • If you decide to venture beyond Algorithms 101, try to solve more complex programming challenges (flows in networks, linear programming, streaming algorithms, etc.) and complete an equivalent of a graduate course in algorithms!


  • Debugging

  • Software Testing

  • Algorithms

  • Data Structure

  • Computer Programming

  • Dynamic Programming

  • Binary Search Tree

  • Priority Queue

  • Hash Table

  • Stack (Abstract Data Type)

  • List

  • Graph Theory

Intermediate Level Basic knowledge of at least one programming language: C++, Java, Python, C, C#, Javascript, Haskell, Kotlin, Ruby, Rust, Scala. Basic knowledge of discrete mathematics: proof by induction, proof by contradiction.

Approximately 8 months to complete Suggested pace of 6 hours/week

English Subtitles: English, Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, Spanish

38 views0 comments