Neural Network Programming