Basic Multithreading and algorithm development independent learning