Fundamentals of artificial neural networks and deep learning