Artificial Neural Networks and Deep Learning