Updated June 2018
If I had to pick the single most important topic in software development, it would be data structures and algorithms. Think of it as the fundamental tools available to every computer programmer. The better you get with these tools the more confident a programmer you’ll become. Software development is a vast field requiring all kinds of skill-sets but getting good at this single topic is a huge leap forward in your programming journey and it’ll certainly pave the way for a successful programming career.
The topics in this course are going to cover data structures such as lists, stacks, queues, trees and some of the most powerful sorting, searching, and graph algorithms that have revolutionized the field of computing. Throughout the course I keep things practical and provide real life examples of how all of these algorithms work and when & where they can be applied to write efficient computer programs.
I’ll be moving at a slow and steady pace introducing each topic followed by a PRACTICAL programming assignment so you can immediately apply what you learned. All homework assignments in the course will be accompanied with step by step solution videos demystifying each problem as I code up the solutions. My goal is to make sure, that after you complete this course you feel completely confident going into a coding interview because you will have built a solid foundation in computer programming. So go ahead and signup and I’ll see you in the course.
Prerequisite: Intro to Object Oriented Programming
Basic Data Structures
Linked Lists
Popular Searching Algorithms
Popular Sorting Algorithms
Binary Search Trees
-
24Selection Sort (Overview)
-
25Selection Sort (Java Practical) + HW
-
26Insertion Sort (Overview)
-
27Insertion Sort (Java Practical) + HW
-
28Merge Sort (Overview)
-
29Merge Sort Continued (The Merge Process)
-
30Merge Sort (Java Practical) + HW
-
31Quick Sort (Overview)
-
32Quick Sort Continued
-
33Quick Sort (Java Practical) + HW