These are some of the courses from me that you can embark on right now, for free!

## Playlists on YouTube

While sorting seems like a fairly intuitive process to us, it’s rather involved for computers! In this series, let’s delve into how computers perform sorting, studying all the classics like **Bubble Sort**, **Quicksort** and **Mergesort**, while also picking up key computing skills like **Recursion** and **Time Complexity**!

In addition to the basic Sorting Algorithms discussed above, more complex algorithms exist, making use of specialized **Data Structures** to get the job done efficiently! This series delves into data structures like **Balanced Binary Search Trees **and **Binary Heaps**.

Graphs are one of Computing’s most powerful data structures, capable of modelling problems in predictable and efficient ways. In this series, we delve into what graphs are, and what algorithms we can perform on them. From simple **breadth / depth first search** to more complex ideas like **pathfinding** with **Dijkstra’s Algorithm **and **Topological Sorting**. We’ll also take a closer look at **Dynamic Programming** in this series!

**Logic Gates** form the basis of much of computation today. In this series, we delve deeper into how the different types of logic gates behave, and how they can be combined to create more complex components like **Encoders**, **Multiplexers**, and **Flip-Flops**!

Delving even deeper past **Logic Gates**, we study the components that make *them* work – The **transistors** inside! In this series, we study how NPN and PNP transistors are used in circuits. We’ll build logic gates and other components like a **Bistable Multivibrator** and a **Pulse Detector** using transistors and capacitors.

We take a closer look at **SQL**, the **Structured Query Language**, a declarative programming language used to interact with databases. In this short series, we look at the operations that can be performed on a database and just what makes databases so powerful!