I am splitting up the site into several sections, based on the different data structures and algorithms, starting with basic array based algorithms and working my way to parallel computing. The material gets hard quickly so it's recommended that you are already knowledgeable in C or C++. There are several great sites with C++ tutorials to learn from first, one such instance can be found at thenewboston's tutorial website. With the exception of setting up the examples, I will not be using the standard template library or classes so knowing C++ is not required. For the Java users it should be pretty easy to follow along with the algorithms, the exception to this is the parallel computing section. With the exception of basic threading, the parallel platforms are not built for the Java platform and will not gain the necessary speed-up.
Each of the tutorials on this website have several sections to them. They all include an introduction, conclusion and a code example or library for you to use. Many of the examples will build off each other so they will also include a prerequisite section explaining which sections to read. The goal of these tutorials is to show you that there are multiple ways to answer a problem, that the standard isn't necessary the best or even the fastest. If you find an error, find a more efficient way to code these algorithms or want to see another algorithm added, feel free to contact me and I will update the site. Later on I will be creating tutorial videos to go along with these tutorials. With the exception of maybe assembly language or Haskell, I will not be making basic coding tutorials as there are plenty of those already out there.
Note: All example code and libraries were compiled and ran on Linux, they may need some modifications to work on Windows.
Now for the part everyone's been looking for. All examples and libraries attached to each tutorial are open source and free to use unless otherwise specified by a copyright notice/document. If you use any of the code, if it has an external copyright notice please leave it attached, if it doesn't please give me credit towards that part of the work. If you're using this for school or any other educational purposes please do not copy my code word for word, professors tend to look down on that. If you do use my code for educational purposes please cite it as such. Lastly, this site doesn't have any sponsors, there's no company running this in the background so there are no advertisements promoting this site. If you like what you see and want others to benefit from these tutorials, please pass this site around.