Episode 8 - Decorator Pattern
Today you'll learn how at runtime, you can enhance the behavior or existing objects using the decorator pattern. In this episode, we'll discuss the advantages of decorators over inheritance and look at two examples from real-life - implementing a network communication protocol and enriching user interface components.
Episode 7 - Tries
In the episode today, we'll talk about the trie data structure. You'll learn what tries are, how you can use them in practice, and how to implement them in your favorite programming language!
Episode 6 - Graphs and Graph Traversal
In this episode, we'll discuss graphs. You'll learn how this data structure looks like and what are its applications. Later on, we'll talk about algorithms for traversing graphs. You'll understand how breadth-first search and depth-first search work and when you should use one instead of the other. Topics we'll also touch on are chromatic graphs and finding the shortest path.
Episode 5 - Arrays and Linked Lists
In this episode, we'll discuss two fundamental data structures in computer science - arrays and linked lists. Their understanding is essential not only in your day to day job but also for performing well on your next coding interview. We'll discuss implementation details for both data structures, and we'll talk about when it's better to choose one instead of the other. Along the way, we'll touch on memory hierarchy, caching locality, and different interview problems.
Episode 4 - Quickselect
Today we're going to talk about quickselect. This algorithm helps us quickly find the n-th smallest element in unsorted arrays. It'll not only help you improve the performance of your applications, but it's also a very common white-board interview problem.