Structure and Setup
It’s about time for us to dive into the core content of this course. I can tell you’re fired up already! To help you follow along better, let us now examine the course structure as well as set up our development environment appropriately. 

How this Course is Structured

The Content

The algorithms and data structures covered in this course are organized in three levels:

  • Beginner
  • Intermediate
  • Advanced

This will ensure that we build up on previous knowledge, thus making it easier to digest the slightly complex content when we get to them. No need to quake with fear. 

  • Don't feel discouraged if some of these challenges are a little difficult, working through projects that we don't know at first, leads us to become better developers.

Make sure to have fun while at it.

Every article from this point will sufficiently explain one algorithm or data structure at a time, consider various implementations and test for efficiency under the following sections:

  • The Challenge
  • Here, we will introduce the problem and provide some premise to show it’s relevance to a software engineer.
  • Algorithmic Thinking
  • In this section, we will analyze the challenge extensively and explain what the solution would look like in very simple terms.
  • Code Implementation(s)
  • Next, we get technical and come up with various solutions in JavaScript, with each implementation fully explained.
  • Testing
  • Here, we’ll check if the algorithms pass with Jest and do a performance comparison to identify the most optimal solution.
  • Practical Application(s)
  • As one of the main reasons for this course is to help you apply the knowledge acquired to the real world, we will highlight cases where you might encounter the challenge considered.  
  • Conclusion
  • This is a summary of the entire article and highlight of the main points.
  • Further Reading
  • At the end of every article, you'll find helpful links to reliable content on the subject considered. This is to help you learn more, beyond the scope of this course.

The Code

All the code for this course can be found in this repository. Each algorithm and data structure will have it's own folder and in there you would find 3 files.


  • index-START.js 
  • This is an empty/skeletal file where you can write your own algorithms and test them out as you follow along with the course.
  • index-SOLUTION.js 
  • In here, you would find all the solutions for a particular challenge as discussed in the article.
  • test.js 
  • You would never have to edit this file. It contains the tests with which we would validate our algorithms to see if they pass for every case specified in there.

How to Run Tests
To run the tests for each algorithm in this course, open up your terminal and navigate to the root directory of the course codebase . Once inside, run the command below:

npm run test <folder name>