When searching online, you’ll find a range of courses covering the dual topics of data structures and algorithms. Often, these courses emphasize the data structure first and the algorithm second. We flip that approach on its head in our Algorithms and Data Structures course, purposefully emphasizing algorithms as the primary concern. Why? This allows us to provide a problem-focused approach, giving you the insight you’ll need to analyze, evaluate, and create your own algorithms (and needed data structures) so you can solve the problems you’re likely to encounter in the real world.
More on how these two subjects fit together
When you want to accomplish some form of computation, you express it as an algorithm, or a series of steps that generally does something. If that algorithm relies on data to succeed, that data is normally structured in computer memory in a specific way (as a list, a tree, a graph, an array, a map, or some other structure). Data structures can exist without algorithms; however, without algorithms, maintaining data in a structure is just a wasted effort. This class provides an algorithms-first approach and presents supporting data structures to meet the needs of the algorithm.
Will I learn about specific algorithms and data structures in this class?
This class provides you with an intuitive understanding of the theory and applicability of many different algorithms. (For more on this, read a great blog post from Curtis Schlak, course instructor and our VP of Professional Development). These algorithms are used by companies to solve many modern problems including distributed search, text processing, social cluster analysis, process control, and compiler optimization.
Beyond these two subjects
In order to apply your new knowledge on the job, it’s also important that you grasp when and how to apply these fundamentals in your day-to-day computer programming. Our instructors will help you gain and apply an intuitive understanding of time and space complexity analysis so that you can talk Big-O with the best of them. You’ll break out of linked lists and binary trees to explore how to interact with multidimensional data, how to determine if you can easily solve a problem with a minimum spanning tree, and how to use probabilistic techniques to quickly determine optimal solutions.
Interested in learning more about this course? Visit the course page for information about upcoming course dates, instructors, projects, prerequisites, and more.