Neural Networks: Algorithms, Applications and Programming Techniques