This course is about data structures and algorithms. We are going to implement the problems in Java, but I try to do it as generic as possible: so the core of the algorithms can be used in C++ or Python. The course takes approximately 11 hours to complete. I highly recommend typing out these data structures several times on your own in order to get a good grasp of it.
In the first part of the course we are going to learn about basic data structures such as linked lists, stacks and queues, heaps and some advanced ones such as AVL trees, red-black trees or hash tables. We will try to optimize each data structure ( for example avoiding obsolete references ) as much as possible.
In each chapter I am going to talk about the theoretical background of each algorithm or data structure, then we are going to write the code on a step by step basis in Eclipse, Java.
Most of the advanced algorithms relies heavily on these topics so it is definitely worth understanding the basics. These principles can be used in several fields: in investment banking, artificial intelligence or electronic trading algorithms on the stock market.
What are the requirements?
- Core java
- Eclipse or other IDE
What am I going to get from this course?
- grasp the fundamentals of algorithms and data structures
- develop your own algorithms that best fit to the personal need
- detect non-optimal code snippets
- get to know basic complexity related definitions
- get to know linked lists
- get to know arrays
- get to know balanced trees: AVL trees and red-black trees
- get to know hash tables
What is the target audience?
- This course is meant for everyone from scientists to software developers who want to get closer to algorithmic thinking in the main